Query structured spec data via REST or MCP. Get exactly what your agent needs.
https://app.asana.com/api/1.0
/allocations
Returns a list of allocations filtered to a specific project or user.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| parent | query | optional | string | Globally unique identifier for the project to filter allocations by. |
| assignee | query | optional | string | Globally unique identifier for the user the allocation is assigned to. |
| workspace | query | optional | string | Globally unique identifier for the workspace. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested allocations.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The request was valid, but the queried object or object mutation specified in the request is above your current premium level.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /allocations
/allocations/{allocation_gid}
Returns the complete allocation record for a single allocation.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| allocation_gid | path | optional | string | Globally unique identifier for the allocation. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the record for a single allocation.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The request was valid, but the queried object or object mutation specified in the request is above your current premium level.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /allocations/{allocation_gid}
/attachments
Returns the compact records for all attachments on the object.
There are three possible parent values for this request: project, project_brief, and task. For a project, an attachment refers to a file uploaded to the “Key resources” section in the project Overview. For a project brief, an attachment refers to inline files in the project brief itself. For a task, an attachment refers to a file directly associated to that task.
Note that within the Asana app, inline images in the task description do not appear in the index of image thumbnails nor as stories in the task. However, requests made to GET /attachments for a task will return all of the images in the task, including inline images.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| parent | query | required | string | Globally unique identifier for object to fetch statuses from. Must be a GID for a |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the specified object’s attachments.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /attachments
/attachments/{attachment_gid}
Get the full record for a single attachment.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| attachment_gid | path | optional | string | Globally unique identifier for the attachment. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the record for a single attachment.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The request was valid, but the queried object or object mutation specified in the request is above your current premium level.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
You have exceeded one of the enforced rate limits in the API. See the documentation on rate limiting for more information.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
There is an issue between the load balancers and Asana’s API.
Either the upstream service is unavailable to the API, or the API has been intentionally shut off.
This request took too long to complete.
GET /attachments/{attachment_gid}
/workspaces/{workspace_gid}/audit_log_events
Retrieve the audit log events that have been captured in your domain.
This endpoint will return a list of AuditLogEvent objects, sorted by creation time in ascending order. Note that the Audit Log API captures events from October 8th, 2021 and later. Queries for events before this date will not return results.
There are a number of query parameters (below) that can be used to filter the set of AuditLogEvent objects that are returned in the response. Any combination of query parameters is valid. When no filters are provided, all of the events that have been captured in your domain will match.
The list of events will always be paginated. The default limit is 1000 events. The next set of events can be retrieved using the offset from the previous response. If there are no events that match the provided filters in your domain, the endpoint will return null for the next_page field. Querying again with the same filters may return new events if they were captured after the last request. Once a response includes a next_page with an offset, subsequent requests can be made with the latest offset to poll for new events that match the provided filters.
Note: If the filters you provided match events in your domain and next_page is present in the response, we will continue to send next_page on subsequent requests even when there are no more events that match the filters. This was put in place so that you can implement an audit log stream that will return future events that match these filters. If you are not interested in future events that match the filters you have defined, you can rely on checking empty data response for the end of current events that match your filters.
When no offset is provided, the response will begin with the oldest events that match the provided filters. It is important to note that AuditLogEvent objects will be permanently deleted from our systems after 90 days. If you wish to keep a permanent record of these events, we recommend using a SIEM tool to ingest and store these logs.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| workspace_gid | path | optional | string | Globally unique identifier for the workspace or organization. |
| start_at | query | optional | string | Filter to events created after this time (inclusive). |
| end_at | query | optional | string | Filter to events created before this time (exclusive). |
| event_type | query | optional | string | Filter to events of this type. |
| actor_type | query | optional | string | Filter to events with an actor of this type. |
| actor_gid | query | optional | string | Filter to events triggered by the actor with this ID. |
| resource_gid | query | optional | string | Filter to events with this resource ID. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
AuditLogEvents were successfully retrieved.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /workspaces/{workspace_gid}/audit_log_events
/portfolios/{portfolio_gid}/custom_field_settings
Returns a list of all of the custom fields settings on a portfolio, in compact form.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| portfolio_gid | path | optional | string | Globally unique identifier for the portfolio. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved custom field settings objects for a portfolio.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /portfolios/{portfolio_gid}/custom_field_settings
/projects/{project_gid}/custom_field_settings
Returns a list of all of the custom fields settings on a project, in compact form. Note that, as in all queries to collections which return compact representation, opt_fields can be used to include more data than is returned in the compact representation. See the documentation for input/output options for more information.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project_gid | path | optional | string | Globally unique identifier for the project. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved custom field settings objects for a project.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /projects/{project_gid}/custom_field_settings
/custom_fields/{custom_field_gid}
Get the complete definition of a custom field’s metadata.
Since custom fields can be defined for one of a number of types, and
these types have different data and behaviors, there are fields that are
relevant to a particular type. For instance, as noted above, enum_options
is only relevant for the enum type and defines the set of choices that
the enum could represent. The examples below show some of these
type-specific custom field definitions.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| custom_field_gid | path | optional | string | Globally unique identifier for the custom field. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the complete definition of a custom field’s metadata.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /custom_fields/{custom_field_gid}
/workspaces/{workspace_gid}/custom_fields
Returns a list of the compact representation of all of the custom fields in a workspace.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| workspace_gid | path | optional | string | Globally unique identifier for the workspace or organization. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved all custom fields for the given workspace.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /workspaces/{workspace_gid}/custom_fields
/events
Returns the full record for all events that have occurred since the sync
token was created.
A GET request to the endpoint /[path_to_resource]/events can be made in
lieu of including the resource ID in the data for the request.
Asana limits a single sync token to 100 events. If more than 100 events exist
for a given resource, has_more: true will be returned in the response, indicating
that there are more events to pull.
Note: The resource returned will be the resource that triggered the
event. This may be different from the one that the events were requested
for. For example, a subscription to a project will contain events for
tasks contained within the project.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| resource | query | required | string | A resource ID to subscribe to. The resource can be a task, project, or goal. |
| sync | query | optional | string | A sync token received from the last request, or none on first sync. Events will be returned from the point in time that the sync token was generated. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved events.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
The request is missing or has an expired sync token.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /events
/goal_relationships
Returns compact goal relationship records.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| supported_goal | query | required | string | Globally unique identifier for the supported goal in the goal relationship. |
| resource_subtype | query | optional | string | If provided, filter to goal relationships with a given resource_subtype. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested goal relationships.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /goal_relationships
/goal_relationships/{goal_relationship_gid}
Returns the complete updated goal relationship record for a single goal relationship.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| goal_relationship_gid | path | optional | string | Globally unique identifier for the goal relationship. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the record for the goal relationship.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /goal_relationships/{goal_relationship_gid}
/goals
Returns compact goal records.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| portfolio | query | optional | string | Globally unique identifier for supporting portfolio. |
| project | query | optional | string | Globally unique identifier for supporting project. |
| task | query | optional | string | Globally unique identifier for supporting task. |
| is_workspace_level | query | optional | boolean | Filter to goals with is_workspace_level set to query value. Must be used with the workspace parameter. |
| team | query | optional | string | Globally unique identifier for the team. |
| workspace | query | optional | string | Globally unique identifier for the workspace. |
| time_periods | query | optional | array | Globally unique identifiers for the time periods. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested goals.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The request was valid, but the queried object or object mutation specified in the request is above your current premium level.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /goals
/goals/{goal_gid}
Returns the complete goal record for a single goal.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| goal_gid | path | optional | string | Globally unique identifier for the goal. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the record for a single goal.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The request was valid, but the queried object or object mutation specified in the request is above your current premium level.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /goals/{goal_gid}
/goals/{goal_gid}/parentGoals
Returns a compact representation of all of the parent goals of a goal.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| goal_gid | path | optional | string | Globally unique identifier for the goal. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the specified goal’s parent goals.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The request was valid, but the queried object or object mutation specified in the request is above your current premium level.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /goals/{goal_gid}/parentGoals
/jobs/{job_gid}
Returns the full record for a job.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| job_gid | path | optional | string | Globally unique identifier for the job. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved Job.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /jobs/{job_gid}
/memberships
Returns compact goal_membership or project_membership records. The possible types for parent in this request are goal or project. An additional member (user GID or team GID) can be passed in to filter to a specific membership.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| parent | query | optional | string | Globally unique identifier for |
| member | query | optional | string | Globally unique identifier for |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested membership.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /memberships
/memberships/{membership_gid}
Returns compact project_membership record for a single membership. GET only supports project memberships currently
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| membership_gid | path | optional | string | Globally unique identifier for the membership. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the record for a single membership.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /memberships/{membership_gid}
/organization_exports/{organization_export_gid}
Returns details of a previously-requested Organization export.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| organization_export_gid | path | optional | string | Globally unique identifier for the organization export. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved organization export object.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /organization_exports/{organization_export_gid}
/portfolio_memberships
Returns a list of portfolio memberships in compact representation. You must specify portfolio, portfolio and user, or workspace and user.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| portfolio | query | optional | string | The portfolio to filter results on. |
| workspace | query | optional | string | The workspace to filter results on. |
| user | query | optional | string | A string identifying a user. This can either be the string “me”, an email, or the gid of a user. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved portfolio memberships.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /portfolio_memberships
/portfolio_memberships/{portfolio_membership_gid}
Returns the complete portfolio record for a single portfolio membership.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| portfolio_membership_gid | path | optional | string | — |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested portfolio membership.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /portfolio_memberships/{portfolio_membership_gid}
/portfolios/{portfolio_gid}/portfolio_memberships
Returns the compact portfolio membership records for the portfolio.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| portfolio_gid | path | optional | string | Globally unique identifier for the portfolio. |
| user | query | optional | string | A string identifying a user. This can either be the string “me”, an email, or the gid of a user. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested portfolio’s memberships.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /portfolios/{portfolio_gid}/portfolio_memberships
/portfolios
Returns a list of the portfolios in compact representation that are owned by the current API user.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| workspace | query | required | string | The workspace or organization to filter portfolios on. |
| owner | query | optional | string | The user who owns the portfolio. Currently, API users can only get a list of portfolios that they themselves own, unless the request is made from a Service Account. In the case of a Service Account, if this parameter is specified, then all portfolios owned by this parameter are returned. Otherwise, all portfolios across the workspace are returned. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved portfolios.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /portfolios
/portfolios/{portfolio_gid}
Returns the complete portfolio record for a single portfolio.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| portfolio_gid | path | optional | string | Globally unique identifier for the portfolio. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested portfolio.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /portfolios/{portfolio_gid}
/portfolios/{portfolio_gid}/items
Get a list of the items in compact form in a portfolio.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| portfolio_gid | path | optional | string | Globally unique identifier for the portfolio. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested portfolio’s items.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /portfolios/{portfolio_gid}/items
/project_briefs/{project_brief_gid}
Get the full record for a project brief.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project_brief_gid | path | optional | string | Globally unique identifier for the project brief. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the record for a project brief.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The request was valid, but the queried object or object mutation specified in the request is above your current premium level.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
You have exceeded one of the enforced rate limits in the API. See the documentation on rate limiting for more information.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
There is an issue between the load balancers and Asana’s API.
Either the upstream service is unavailable to the API, or the API has been intentionally shut off.
This request took too long to complete.
GET /project_briefs/{project_brief_gid}
/project_memberships/{project_membership_gid}
Returns the complete project record for a single project membership.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project_membership_gid | path | optional | string | — |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested project membership.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /project_memberships/{project_membership_gid}
/projects/{project_gid}/project_memberships
Returns the compact project membership records for the project.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project_gid | path | optional | string | Globally unique identifier for the project. |
| user | query | optional | string | A string identifying a user. This can either be the string “me”, an email, or the gid of a user. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested project’s memberships.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /projects/{project_gid}/project_memberships
/project_statuses/{project_status_gid}
Deprecated: new integrations should prefer the /status_updates/{status_gid} route.
Returns the complete record for a single status update.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project_status_gid | path | optional | string | The project status update to get. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the specified project’s status updates.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /project_statuses/{project_status_gid}
/projects/{project_gid}/project_statuses
Deprecated: new integrations should prefer the /status_updates route.
Returns the compact project status update records for all updates on the project.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project_gid | path | optional | string | Globally unique identifier for the project. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| project_gid | path | optional | string | Globally unique identifier for the project. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the specified project’s status updates.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /projects/{project_gid}/project_statuses
/project_templates
Returns the compact project template records for all project templates in the given team or workspace.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| workspace | query | optional | string | The workspace to filter results on. |
| team | query | optional | string | The team to filter projects on. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested team’s or workspace’s project templates.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /project_templates
/project_templates/{project_template_gid}
Returns the complete project template record for a single project template.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project_template_gid | path | optional | string | Globally unique identifier for the project template. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested project template.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /project_templates/{project_template_gid}
/teams/{team_gid}/project_templates
Returns the compact project template records for all project templates in the team.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| team_gid | path | optional | string | Globally unique identifier for the team. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested team’s project templates.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /teams/{team_gid}/project_templates
/projects
Returns the compact project records for some filtered set of projects. Use one or more of the parameters provided to filter the projects returned.
Note: This endpoint may timeout for large domains. Try filtering by team!
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| workspace | query | optional | string | The workspace or organization to filter projects on. |
| team | query | optional | string | The team to filter projects on. |
| archived | query | optional | boolean | Only return projects whose |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved projects.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /projects
/projects/{project_gid}
Returns the complete project record for a single project.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project_gid | path | optional | string | Globally unique identifier for the project. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested project.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /projects/{project_gid}
/projects/{project_gid}/task_counts
Get an object that holds task count fields. All fields are excluded by default. You must opt in using opt_fields to get any information from this endpoint.
This endpoint has an additional rate limit and each field counts especially high against our cost limits.
Milestones are just tasks, so they are included in the num_tasks, num_incomplete_tasks, and num_completed_tasks counts.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project_gid | path | optional | string | Globally unique identifier for the project. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested project’s task counts.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /projects/{project_gid}/task_counts
/tasks/{task_gid}/projects
Returns a compact representation of all of the projects the task is in.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| task_gid | path | optional | string | The task to operate on. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the projects for the given task.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /tasks/{task_gid}/projects
/teams/{team_gid}/projects
Returns the compact project records for all projects in the team.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| team_gid | path | optional | string | Globally unique identifier for the team. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| archived | query | optional | boolean | Only return projects whose |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested team’s projects.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /teams/{team_gid}/projects
/workspaces/{workspace_gid}/projects
Returns the compact project records for all projects in the workspace.
Note: This endpoint may timeout for large domains. Prefer the /teams/{team_gid}/projects endpoint.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| workspace_gid | path | optional | string | Globally unique identifier for the workspace or organization. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| archived | query | optional | boolean | Only return projects whose |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested workspace’s projects.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /workspaces/{workspace_gid}/projects
/sections/{section_gid}
Returns the complete record for a single section.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| section_gid | path | optional | string | The globally unique identifier for the section. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved section.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /sections/{section_gid}
/projects/{project_gid}/sections
Returns the compact records for all sections in the specified project.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| project_gid | path | optional | string | Globally unique identifier for the project. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved sections in project.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /projects/{project_gid}/sections
/status_updates
Returns the compact status update records for all updates on the object.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| parent | query | required | string | Globally unique identifier for object to fetch statuses from. Must be a GID for a project, portfolio, or goal. |
| created_since | query | optional | string | Only return statuses that have been created since the given time. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the specified object’s status updates.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /status_updates
/status_updates/{status_update_gid}
Returns the complete record for a single status update.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| status_update_gid | path | optional | string | The status update to get. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the specified object’s status updates.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /status_updates/{status_update_gid}
/stories/{story_gid}
Returns the full record for a single story.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| story_gid | path | optional | string | Globally unique identifier for the story. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the specified story.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /stories/{story_gid}
/tasks/{task_gid}/stories
Returns the compact records for all stories on the task.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| task_gid | path | optional | string | The task to operate on. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the specified task’s stories.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /tasks/{task_gid}/stories
/tags
Returns the compact tag records for some filtered set of tags. Use one or more of the parameters provided to filter the tags returned.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| workspace | query | optional | string | The workspace to filter tags on. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the specified set of tags.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /tags
/tags/{tag_gid}
Returns the complete tag record for a single tag.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| tag_gid | path | optional | string | Globally unique identifier for the tag. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the specified tag.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /tags/{tag_gid}
/tasks/{task_gid}/tags
Get a compact representation of all of the tags the task has.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| task_gid | path | optional | string | The task to operate on. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the tags for the given task.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /tasks/{task_gid}/tags
/workspaces/{workspace_gid}/tags
Returns the compact tag records for some filtered set of tags. Use one or more of the parameters provided to filter the tags returned.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| workspace_gid | path | optional | string | Globally unique identifier for the workspace or organization. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the specified set of tags.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /workspaces/{workspace_gid}/tags
/task_templates
Returns the compact task template records for some filtered set of task templates. You must specify a project
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| project | query | optional | string | The project to filter task templates on. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved requested task templates
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /task_templates
/task_templates/{task_template_gid}
Returns the complete task template record for a single task template.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| task_template_gid | path | optional | string | Globally unique identifier for the task template. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved requested task template
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /task_templates/{task_template_gid}
/tasks
Returns the compact task records for some filtered set of tasks. Use one or more of the parameters provided to filter the tasks returned. You must specify a project or tag if you do not specify assignee and workspace.
For more complex task retrieval, use workspaces/{workspace_gid}/tasks/search.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| assignee | query | optional | string | The assignee to filter tasks on. If searching for unassigned tasks, assignee.any = null can be specified. |
| project | query | optional | string | The project to filter tasks on. |
| section | query | optional | string | The section to filter tasks on. |
| workspace | query | optional | string | The workspace to filter tasks on. |
| completed_since | query | optional | string | Only return tasks that are either incomplete or that have been completed since this time. |
| modified_since | query | optional | string | Only return tasks that have been modified since the given time. Note: A task is considered “modified” if any of its properties |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved requested tasks.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /tasks
/tasks/{task_gid}
Returns the complete task record for a single task.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| task_gid | path | optional | string | The task to operate on. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the specified task.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /tasks/{task_gid}
/tasks/{task_gid}/dependencies
Returns the compact representations of all of the dependencies of a task.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| task_gid | path | optional | string | The task to operate on. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the specified task’s dependencies.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The request was valid, but the queried object or object mutation specified in the request is above your current premium level.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /tasks/{task_gid}/dependencies
/tasks/{task_gid}/dependents
Returns the compact representations of all of the dependents of a task.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| task_gid | path | optional | string | The task to operate on. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the specified dependents of the task.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The request was valid, but the queried object or object mutation specified in the request is above your current premium level.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /tasks/{task_gid}/dependents
/tasks/{task_gid}/subtasks
Returns a compact representation of all of the subtasks of a task.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| task_gid | path | optional | string | The task to operate on. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the specified task’s subtasks.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /tasks/{task_gid}/subtasks
/projects/{project_gid}/tasks
Returns the compact task records for all tasks within the given project, ordered by their priority within the project. Tasks can exist in more than one project at a time.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| completed_since | query | optional | string | Only return tasks that are either incomplete or that have been completed since this time. Accepts a date-time string or the keyword now. |
| project_gid | path | optional | string | Globally unique identifier for the project. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested project’s tasks.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /projects/{project_gid}/tasks
/sections/{section_gid}/tasks
Board view only: Returns the compact section records for all tasks within the given section.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| section_gid | path | optional | string | The globally unique identifier for the section. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| completed_since | query | optional | string | Only return tasks that are either incomplete or that have been completed since this time. Accepts a date-time string or the keyword now. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the section’s tasks.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /sections/{section_gid}/tasks
/tags/{tag_gid}/tasks
Returns the compact task records for all tasks with the given tag. Tasks can have more than one tag at a time.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| tag_gid | path | optional | string | Globally unique identifier for the tag. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the tasks associated with the specified tag.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /tags/{tag_gid}/tasks
/user_task_lists/{user_task_list_gid}/tasks
Returns the compact list of tasks in a user’s My Tasks list.
Note: Access control is enforced for this endpoint as with all Asana API endpoints, meaning a user’s private tasks will be filtered out if the API-authenticated user does not have access to them.
Note: Both complete and incomplete tasks are returned by default unless they are filtered out (for example, setting completed_since=now will return only incomplete tasks, which is the default view for “My Tasks” in Asana.)
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| completed_since | query | optional | string | Only return tasks that are either incomplete or that have been completed since this time. Accepts a date-time string or the keyword now. |
| user_task_list_gid | path | optional | string | Globally unique identifier for the user task list. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the user task list’s tasks.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /user_task_lists/{user_task_list_gid}/tasks
/workspaces/{workspace_gid}/tasks/custom_id/{custom_id}
Returns a task given a custom ID shortcode.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| workspace_gid | path | optional | string | Globally unique identifier for the workspace or organization. |
| custom_id | path | optional | string | Generated custom ID for a task. |
Successfully retrieved task for given custom ID.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /workspaces/{workspace_gid}/tasks/custom_id/{custom_id}
/workspaces/{workspace_gid}/tasks/search
To mirror the functionality of the Asana web app’s advanced search feature, the Asana API has a task search endpoint that allows you to build complex filters to find and retrieve the exact data you need.
Like the Asana web product’s advance search feature, this search endpoint will only be available to premium Asana users. A user is premium if any of the following is true:
Even if a user is only a member of a premium team inside a non-premium workspace, search will allow them to find data anywhere in the workspace, not just inside the premium team. Making a search request using credentials of a non-premium user will result in a 402 Payment Required error.
Search results are not stable; repeating the same query multiple times may return the data in a different order, even if the data do not change. Because of this, the traditional pagination available elsewhere in the Asana API is not available here. However, you can paginate manually by sorting the search results by their creation time and then modifying each subsequent query to exclude data you have already seen. Page sizes are limited to a maximum of 100 items, and can be specified by the limit query parameter.
Changes in Asana (regardless of whether they’re made though the web product or the API) are forwarded to our search infrastructure to be indexed. This process can take between 10 and 60 seconds to complete under normal operation, and longer during some production incidents. Making a change to a task that would alter its presence in a particular search query will not be reflected immediately. This is also true of the advanced search feature in the web product.
You may receive a 429 Too Many Requests response if you hit any of our rate limits.
| Parameter name | Custom field type | Accepted type |
|—|—|—|
| custom_fields.{gid}.is_set | All | Boolean |
| custom_fields.{gid}.value | Text | String |
| custom_fields.{gid}.value | Number | Number |
| custom_fields.{gid}.value | Enum | Enum option ID |
| custom_fields.{gid}.starts_with | Text only | String |
| custom_fields.{gid}.ends_with | Text only | String |
| custom_fields.{gid}.contains | Text only | String |
| custom_fields.{gid}.less_than | Number only | Number |
| custom_fields.{gid}.greater_than | Number only | Number |
For example, if the gid of the custom field is 12345, these query parameter to find tasks where it is set would be custom_fields.12345.is_set=true. To match an exact value for an enum custom field, use the gid of the desired enum option and not the name of the enum option: custom_fields.12345.value=67890.
Not Supported: searching for multiple exact matches of a custom field, searching for multi-enum custom field
Note: If you specify projects.any and sections.any, you will receive tasks for the project and tasks for the section. If you’re looking for only tasks in a section, omit the projects.any from the request.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| workspace_gid | path | optional | string | Globally unique identifier for the workspace or organization. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| text | query | optional | string | Performs full-text search on both task name and description |
| resource_subtype | query | optional | string | Filters results by the task’s resource_subtype |
| assignee.any | query | optional | string | Comma-separated list of user identifiers |
| assignee.not | query | optional | string | Comma-separated list of user identifiers |
| portfolios.any | query | optional | string | Comma-separated list of portfolio IDs |
| projects.any | query | optional | string | Comma-separated list of project IDs |
| projects.not | query | optional | string | Comma-separated list of project IDs |
| projects.all | query | optional | string | Comma-separated list of project IDs |
| sections.any | query | optional | string | Comma-separated list of section or column IDs |
| sections.not | query | optional | string | Comma-separated list of section or column IDs |
| sections.all | query | optional | string | Comma-separated list of section or column IDs |
| tags.any | query | optional | string | Comma-separated list of tag IDs |
| tags.not | query | optional | string | Comma-separated list of tag IDs |
| tags.all | query | optional | string | Comma-separated list of tag IDs |
| teams.any | query | optional | string | Comma-separated list of team IDs |
| followers.not | query | optional | string | Comma-separated list of user identifiers |
| created_by.any | query | optional | string | Comma-separated list of user identifiers |
| created_by.not | query | optional | string | Comma-separated list of user identifiers |
| assigned_by.any | query | optional | string | Comma-separated list of user identifiers |
| assigned_by.not | query | optional | string | Comma-separated list of user identifiers |
| liked_by.not | query | optional | string | Comma-separated list of user identifiers |
| commented_on_by.not | query | optional | string | Comma-separated list of user identifiers |
| due_on.before | query | optional | string | ISO 8601 date string |
| due_on.after | query | optional | string | ISO 8601 date string |
| due_on | query | optional | string | ISO 8601 date string or |
| due_at.before | query | optional | string | ISO 8601 datetime string |
| due_at.after | query | optional | string | ISO 8601 datetime string |
| start_on.before | query | optional | string | ISO 8601 date string |
| start_on.after | query | optional | string | ISO 8601 date string |
| start_on | query | optional | string | ISO 8601 date string or |
| created_on.before | query | optional | string | ISO 8601 date string |
| created_on.after | query | optional | string | ISO 8601 date string |
| created_on | query | optional | string | ISO 8601 date string or |
| created_at.before | query | optional | string | ISO 8601 datetime string |
| created_at.after | query | optional | string | ISO 8601 datetime string |
| completed_on.before | query | optional | string | ISO 8601 date string |
| completed_on.after | query | optional | string | ISO 8601 date string |
| completed_on | query | optional | string | ISO 8601 date string or |
| completed_at.before | query | optional | string | ISO 8601 datetime string |
| completed_at.after | query | optional | string | ISO 8601 datetime string |
| modified_on.before | query | optional | string | ISO 8601 date string |
| modified_on.after | query | optional | string | ISO 8601 date string |
| modified_on | query | optional | string | ISO 8601 date string or |
| modified_at.before | query | optional | string | ISO 8601 datetime string |
| modified_at.after | query | optional | string | ISO 8601 datetime string |
| is_blocking | query | optional | boolean | Filter to incomplete tasks with dependents |
| is_blocked | query | optional | boolean | Filter to tasks with incomplete dependencies |
| has_attachment | query | optional | boolean | Filter to tasks with attachments |
| completed | query | optional | boolean | Filter to completed tasks |
| is_subtask | query | optional | boolean | Filter to subtasks |
| sort_by | query | optional | string | One of |
| sort_ascending | query | optional | boolean | Default |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the section’s tasks.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /workspaces/{workspace_gid}/tasks/search
/team_memberships
Returns compact team membership records.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| team | query | optional | string | Globally unique identifier for the team. |
| user | query | optional | string | A string identifying a user. This can either be the string “me”, an email, or the gid of a user. This parameter must be used with the workspace parameter. |
| workspace | query | optional | string | Globally unique identifier for the workspace. This parameter must be used with the user parameter. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested team memberships.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /team_memberships
/team_memberships/{team_membership_gid}
Returns the complete team membership record for a single team membership.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| team_membership_gid | path | optional | string | — |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested team membership.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /team_memberships/{team_membership_gid}
/teams/{team_gid}/team_memberships
Returns the compact team memberships for the team.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| team_gid | path | optional | string | Globally unique identifier for the team. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested team’s memberships.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /teams/{team_gid}/team_memberships
/users/{user_gid}/team_memberships
Returns the compact team membership records for the user.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_gid | path | optional | string | A string identifying a user. This can either be the string “me”, an email, or the gid of a user. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| workspace | query | required | string | Globally unique identifier for the workspace. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested users’s memberships.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /users/{user_gid}/team_memberships
/teams/{team_gid}
Returns the full record for a single team.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| team_gid | path | optional | string | Globally unique identifier for the team. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the record for a single team.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /teams/{team_gid}
/users/{user_gid}/teams
Returns the compact records for all teams to which the given user is assigned.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_gid | path | optional | string | A string identifying a user. This can either be the string “me”, an email, or the gid of a user. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| organization | query | required | string | The workspace or organization to filter teams on. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Returns the team records for all teams in the organization or workspace to which the given user is assigned.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /users/{user_gid}/teams
/workspaces/{workspace_gid}/teams
Returns the compact records for all teams in the workspace visible to the authorized user.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| workspace_gid | path | optional | string | Globally unique identifier for the workspace or organization. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Returns the team records for all teams in the organization or workspace accessible to the authenticated user.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /workspaces/{workspace_gid}/teams
/time_periods
Returns compact time period records.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| start_on | query | optional | string | ISO 8601 date string |
| end_on | query | optional | string | ISO 8601 date string |
| workspace | query | required | string | Globally unique identifier for the workspace. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested time periods.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /time_periods
/time_periods/{time_period_gid}
Returns the full record for a single time period.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| time_period_gid | path | optional | string | Globally unique identifier for the time period. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the record for a single time period.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /time_periods/{time_period_gid}
/time_tracking_entries/{time_tracking_entry_gid}
Returns the complete time tracking entry record for a single time tracking entry.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| time_tracking_entry_gid | path | optional | string | Globally unique identifier for the time tracking entry. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested time tracking entry.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /time_tracking_entries/{time_tracking_entry_gid}
/tasks/{task_gid}/time_tracking_entries
Returns time tracking entries for a given task.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| task_gid | path | optional | string | The task to operate on. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested time tracking entries.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /tasks/{task_gid}/time_tracking_entries
/workspaces/{workspace_gid}/typeahead
Retrieves objects in the workspace based via an auto-completion/typeahead
search algorithm. This feature is meant to provide results quickly, so do
not rely on this API to provide extremely accurate search results. The
result set is limited to a single page of results with a maximum size, so
you won’t be able to fetch large numbers of results.
The typeahead search API provides search for objects from a single
workspace. This endpoint should be used to query for objects when
creating an auto-completion/typeahead search feature. This API is meant
to provide results quickly and should not be relied upon for accurate or
exhaustive search results. The results sets are limited in size and
cannot be paginated.
Queries return a compact representation of each object which is typically
the gid and name fields. Interested in a specific set of fields or all of
the fields?! Of course you are. Use field selectors to manipulate what
data is included in a response.
Resources with type user are returned in order of most contacted to
least contacted. This is determined by task assignments, adding the user
to projects, and adding the user as a follower to tasks, messages,
etc.
Resources with type project are returned in order of recency. This is
determined when the user visits the project, is added to the project, and
completes tasks in the project.
Resources with type task are returned with priority placed on tasks
the user is following, but no guarantee on the order of those tasks.
Resources with type project_template are returned with priority
placed on favorited project templates.
Leaving the query string empty or omitted will give you results, still
following the resource ordering above. This could be used to list users or
projects that are relevant for the requesting user’s api token.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| workspace_gid | path | optional | string | Globally unique identifier for the workspace or organization. |
| resource_type | query | required | string | The type of values the typeahead should return. You can choose from one of the following: |
| type | query | optional | string | Deprecated: new integrations should prefer the resource_type field. |
| query | query | optional | string | The string that will be used to search for relevant objects. If an empty string is passed in, the API will return results. |
| count | query | optional | integer | The number of results to return. The default is 20 if this parameter is omitted, with a minimum of 1 and a maximum of 100. If there are fewer results found than requested, all will be returned. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved objects via a typeahead search algorithm.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /workspaces/{workspace_gid}/typeahead
/user_task_lists/{user_task_list_gid}
Returns the full record for a user task list.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_task_list_gid | path | optional | string | Globally unique identifier for the user task list. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the user task list.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /user_task_lists/{user_task_list_gid}
/users/{user_gid}/user_task_list
Returns the full record for a user’s task list.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_gid | path | optional | string | A string identifying a user. This can either be the string “me”, an email, or the gid of a user. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| workspace | query | required | string | The workspace in which to get the user task list. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the user’s task list.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /users/{user_gid}/user_task_list
/users
Returns the user records for all users in all workspaces and organizations accessible to the authenticated user. Accepts an optional workspace ID parameter.
Results are sorted by user ID.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| workspace | query | optional | string | The workspace or organization ID to filter users on. |
| team | query | optional | string | The team ID to filter users on. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /users
/users/{user_gid}
Returns the full user record for the single user with the provided ID.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_gid | path | optional | string | A string identifying a user. This can either be the string “me”, an email, or the gid of a user. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Returns the user specified.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /users/{user_gid}
/users/{user_gid}/favorites
Returns all of a user’s favorites in the given workspace, of the given type.
Results are given in order (The same order as Asana’s sidebar).
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_gid | path | optional | string | A string identifying a user. This can either be the string “me”, an email, or the gid of a user. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| resource_type | query | required | string | The resource type of favorites to be returned. |
| workspace | query | required | string | The workspace in which to get favorites. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Returns the specified user’s favorites.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /users/{user_gid}/favorites
/teams/{team_gid}/users
Returns the compact records for all users that are members of the team.
Results are sorted alphabetically and limited to 2000. For more results use the /users endpoint.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| team_gid | path | optional | string | Globally unique identifier for the team. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Returns the user records for all the members of the team, including guests and limited access users
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /teams/{team_gid}/users
/workspaces/{workspace_gid}/users
Returns the compact records for all users in the specified workspace or organization.
Results are sorted alphabetically and limited to 2000. For more results use the /users endpoint.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| workspace_gid | path | optional | string | Globally unique identifier for the workspace or organization. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Return the users in the specified workspace or org.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /workspaces/{workspace_gid}/users
/webhooks
Get the compact representation of all webhooks your app has registered for the authenticated user in the given workspace.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| workspace | query | required | string | The workspace to query for webhooks in. |
| resource | query | optional | string | Only return webhooks for the given resource. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested webhooks.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /webhooks
/webhooks/{webhook_gid}
Returns the full record for the given webhook.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| webhook_gid | path | optional | string | Globally unique identifier for the webhook. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested webhook.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /webhooks/{webhook_gid}
/workspace_memberships/{workspace_membership_gid}
Returns the complete workspace record for a single workspace membership.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| workspace_membership_gid | path | optional | string | — |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested workspace membership.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /workspace_memberships/{workspace_membership_gid}
/users/{user_gid}/workspace_memberships
Returns the compact workspace membership records for the user.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_gid | path | optional | string | A string identifying a user. This can either be the string “me”, an email, or the gid of a user. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested user’s workspace memberships.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /users/{user_gid}/workspace_memberships
/workspaces/{workspace_gid}/workspace_memberships
Returns the compact workspace membership records for the workspace.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| workspace_gid | path | optional | string | Globally unique identifier for the workspace or organization. |
| user | query | optional | string | A string identifying a user. This can either be the string “me”, an email, or the gid of a user. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Successfully retrieved the requested workspace’s memberships.
GET /workspaces/{workspace_gid}/workspace_memberships
/workspaces
Returns the compact records for all workspaces visible to the authorized user.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| limit | query | optional | integer | Results per page. |
| offset | query | optional | string | Offset token. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Return all workspaces visible to the authorized user.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /workspaces
/workspaces/{workspace_gid}
Returns the full workspace record for a single workspace.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| workspace_gid | path | optional | string | Globally unique identifier for the workspace or organization. |
| opt_pretty | query | optional | boolean | Provides “pretty” output. |
| opt_fields | query | optional | array | This endpoint returns a compact resource, which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include. |
Return the full workspace record.
This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again.
A valid authentication token was not provided with the request, so the API could not associate a user with the request.
The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to.
Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist.
There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase.
GET /workspaces/{workspace_gid}
AddCustomFieldSettingRequest
{
"type": "object",
"required": [
"custom_field"
],
"properties": {
"custom_field": {
"type": "string",
"example": "14916",
"description": "The custom field to associate with this container."
},
"insert_after": {
"type": "string",
"example": "1331",
"description": "A gid of a Custom Field Setting on this container, after which the new Custom Field Setting will be added. `insert_before` and `insert_after` parameters cannot both be specified."
},
"is_important": {
"type": "boolean",
"example": true,
"description": "Whether this field should be considered important to this container (for instance, to display in the list view of items in the container)."
},
"insert_before": {
"type": "string",
"example": "1331",
"description": "A gid of a Custom Field Setting on this container, before which the new Custom Field Setting will be added. `insert_before` and `insert_after` parameters cannot both be specified."
}
}
}
AddFollowersRequest
{
"type": "object",
"required": [
"followers"
],
"properties": {
"followers": {
"type": "string",
"example": 521621621373,
"description": "An array of strings identifying users. These can either be the string \"me\", an email, or the gid of a user."
}
}
}
AddMembersRequest
{
"type": "object",
"required": [
"members"
],
"properties": {
"members": {
"type": "string",
"example": 521621621373,
"description": "An array of strings identifying users. These can either be the string \"me\", an email, or the gid of a user."
}
}
}
AllocationBase
{
"allOf": [
{
"$ref": "#/components/schemas/AsanaResource"
},
{
"type": "object",
"properties": {
"effort": {
"type": "object",
"nullable": true,
"properties": {
"type": {
"enum": [
"hours",
"percent"
],
"type": "string",
"description": "The units used for tracking effort on an allocation, either \"hours\" or \"percent\"."
},
"value": {
"type": "number",
"example": 50,
"description": "The numeric effort value on the allocation."
}
},
"description": "The amount of time associated with the allocation, represented as a percentage or number of hours"
},
"end_date": {
"type": "string",
"format": "date",
"example": "2024-02-28",
"description": "The localized day on which the allocation ends."
},
"start_date": {
"type": "string",
"format": "date",
"example": "2024-02-28",
"description": "The localized day on which the allocation starts."
}
},
"x-docs-overrides": {
"properties.resource_type.example": "allocation"
}
}
]
}
AllocationRequest
{
"allOf": [
{
"$ref": "#/components/schemas/AllocationBase"
},
{
"type": "object",
"properties": {
"parent": {
"type": "string",
"description": "Globally unique identifier for the project the allocation is on."
},
"assignee": {
"type": "string",
"description": "Globally unique identifier for the user who is assigned to the allocation."
}
}
}
]
}
AllocationResponse
{
"allOf": [
{
"$ref": "#/components/schemas/AllocationBase"
},
{
"type": "object",
"properties": {
"parent": {
"$ref": "#/components/schemas/ProjectCompact",
"type": "object",
"description": "The project the allocation is on."
},
"assignee": {
"$ref": "#/components/schemas/UserCompact",
"type": "object",
"description": "The user who is assigned to the allocation."
},
"created_by": {
"$ref": "#/components/schemas/UserCompact",
"type": "object",
"description": "The user who created the allocation."
},
"resource_subtype": {
"type": "string",
"example": "project_allocation",
"description": "The subtype of the allocation."
}
}
}
]
}
AllocationsCreateRecordRequest
{
"type": "object",
"properties": {
"data": {
"allOf": [
{
"$ref": "#/components/schemas/AllocationRequest"
},
{
"type": "object",
"required": [
"assignee",
"end_date",
"parent",
"start_date"
]
}
]
}
}
}
AllocationsCreateRecordResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/AllocationResponse"
}
}
}
AllocationsDeleteAllocationByIdResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/EmptyResponse"
}
}
}
AllocationsGetMultipleResponse
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AllocationResponse"
}
},
"next_page": {
"$ref": "#/components/schemas/NextPage"
}
}
}
AllocationsGetRecordByIdResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/AllocationResponse"
}
}
}
AllocationsUpdateRecordByIdRequest
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/AllocationRequest"
}
}
}
AllocationsUpdateRecordByIdResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/AllocationResponse"
}
}
}
AsanaNamedResource
{
"allOf": [
{
"$ref": "#/components/schemas/AsanaResource"
},
{
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "Bug Task",
"description": "The name of the object."
}
}
}
]
}
AsanaResource
{
"type": "object",
"properties": {
"gid": {
"type": "string",
"example": "12345",
"readOnly": true,
"description": "Globally unique identifier of the resource, as a string.",
"x-insert-after": false
},
"resource_type": {
"type": "string",
"example": "task",
"readOnly": true,
"description": "The base type of this resource.",
"x-insert-after": "gid"
}
},
"description": "A generic Asana Resource, containing a globally unique identifier."
}
AttachmentCompact
{
"allOf": [
{
"$ref": "#/components/schemas/AsanaResource"
},
{
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "Screenshot.png",
"readOnly": true,
"description": "The name of the file."
},
"resource_subtype": {
"type": "string",
"example": "dropbox",
"description": "The service hosting the attachment. Valid values are `asana`, `dropbox`, `gdrive`, `onedrive`, `box`, `vimeo`, and `external`."
}
},
"description": "An *attachment* object represents any file attached to a task in Asana, whether it’s an uploaded file or one associated via a third-party service such as Dropbox or Google Drive.",
"x-docs-overrides": {
"properties.resource_type.example": "attachment"
}
}
]
}
AttachmentRequest
{
"type": "object",
"required": [
"parent"
],
"properties": {
"url": {
"type": "string",
"description": "The URL of the external resource being attached. Required for attachments of type `external`.\n"
},
"file": {
"type": "string",
"format": "binary",
"description": "Required for `asana` attachments.\n"
},
"name": {
"type": "string",
"description": "The name of the external resource being attached. Required for attachments of type `external`.\n"
},
"parent": {
"type": "string",
"description": "Required identifier of the parent task, project, or project_brief, as a string.\n"
},
"connect_to_app": {
"type": "boolean",
"description": "*Optional*. Only relevant for external attachments with a parent task. A boolean indicating whether the current app should be connected with the attachment for the purposes of showing an app components widget. Requires the app to have been added to a project the parent task is in.\n"
},
"resource_subtype": {
"enum": [
"asana",
"dropbox",
"gdrive",
"onedrive",
"box",
"vimeo",
"external"
],
"type": "string",
"example": "external",
"description": "The type of the attachment. Must be one of the given values. If not specified, a file attachment of type `asana` will be assumed. Note that if the value of `resource_subtype` is `external`, a `parent`, `name`, and `url` must also be provided.\n"
}
}
}
AttachmentResponse
{
"allOf": [
{
"$ref": "#/components/schemas/AttachmentCompact"
},
{
"type": "object",
"properties": {
"host": {
"type": "string",
"example": "dropbox",
"readOnly": true,
"description": "The service hosting the attachment. Valid values are `asana`, `dropbox`, `gdrive`, `box`, and `vimeo`."
},
"size": {
"type": "integer",
"example": 12345,
"readOnly": true,
"description": "The size of the attachment in bytes. Only present when the `resource_subtype` is `asana`."
},
"parent": {
"allOf": [
{
"$ref": "#/components/schemas/TaskCompact"
},
{
"type": "object",
"nullable": true,
"readOnly": true,
"properties": {
"resource_subtype": {
"type": "string",
"example": "default_task",
"nullable": true,
"description": "The resource subtype of the parent resource that the filter applies to."
}
},
"description": "The task this attachment is attached to."
}
]
},
"view_url": {
"type": "string",
"format": "uri",
"example": "https://www.dropbox.com/s/123/Screenshot.png",
"nullable": true,
"readOnly": true,
"description": "The URL where the attachment can be viewed, which may be friendlier to users in a browser than just directing them to a raw file. May be null if no view URL exists for the service."
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2012-02-22T02:06:58.147Z",
"readOnly": true,
"description": "The time at which this resource was created."
},
"download_url": {
"type": "string",
"format": "uri",
"example": "https://s3.amazonaws.com/assets/123/Screenshot.png",
"nullable": true,
"readOnly": true,
"description": "The URL containing the content of the attachment.\n*Note:* May be null if the attachment is hosted by [Box](https://www.box.com/) and will be null if the attachment is a Video Message hosted by [Vimeo](https://vimeo.com/). If present, this URL may only be valid for two minutes from the time of retrieval. You should avoid persisting this URL somewhere and just refresh it on demand to ensure you do not keep stale URLs."
},
"permanent_url": {
"type": "string",
"format": "uri",
"example": "https://s3.amazonaws.com/assets/123/Screenshot.png",
"nullable": true,
"readOnly": true,
"description": ""
},
"connected_to_app": {
"type": "boolean",
"readOnly": true,
"description": "Whether the attachment is connected to the app making the request for the purposes of showing an app components widget. Only present when the `resource_subtype` is `external` or `gdrive`."
}
}
}
]
}
AttachmentsDeleteSpecificResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/EmptyResponse"
}
}
}
AttachmentsGetAllForObjectResponse
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AttachmentCompact"
}
},
"next_page": {
"$ref": "#/components/schemas/NextPage"
}
}
}
AttachmentsGetAttachmentRecordResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/AttachmentResponse"
}
}
}
AttachmentsUploadAttachmentResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/AttachmentResponse"
}
}
}
AuditLogApiGetAuditLogEventsResponse
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AuditLogEvent"
}
},
"next_page": {
"$ref": "#/components/schemas/NextPage"
}
}
}
AuditLogEvent
{
"type": "object",
"properties": {
"gid": {
"type": "string",
"example": "12345",
"description": "Globally unique identifier of the `AuditLogEvent`, as a string.",
"x-insert-after": false
},
"actor": {
"$ref": "#/components/schemas/AuditLogEventActor"
},
"context": {
"$ref": "#/components/schemas/AuditLogEventContext"
},
"details": {
"$ref": "#/components/schemas/AuditLogEventDetails"
},
"resource": {
"$ref": "#/components/schemas/AuditLogEventResource"
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2021-01-01T00:00:00.000Z",
"description": "The time the event was created."
},
"event_type": {
"type": "string",
"example": "task_deleted",
"description": "The type of the event."
},
"event_category": {
"type": "string",
"example": "deletion",
"description": "The category that this `event_type` belongs to."
}
},
"description": "An object representing a single event within an Asana domain.\n\nEvery audit log event is comprised of an `event_type`, `actor`, `resource`, and `context`. Some events will include additional metadata about the event under `details`. See our [currently supported list of events](/docs/audit-log-events#supported-audit-log-events) for more details."
}
AuditLogEventActor
{
"type": "object",
"properties": {
"gid": {
"type": "string",
"example": "1111",
"description": "Globally unique identifier of the actor, if it is a user."
},
"name": {
"type": "string",
"example": "Greg Sanchez",
"description": "The name of the actor, if it is a user."
},
"email": {
"type": "string",
"example": "gregsanchez@example.com",
"description": "The email of the actor, if it is a user."
},
"actor_type": {
"enum": [
"user",
"asana",
"asana_support",
"anonymous",
"external_administrator"
],
"type": "string",
"example": "user",
"description": "The type of actor.\nCan be one of `user`, `asana`, `asana_support`, `anonymous`, or `external_administrator`."
}
},
"description": "The entity that triggered the event. Will typically be a user."
}
AuditLogEventContext
{
"type": "object",
"properties": {
"user_agent": {
"type": "string",
"example": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36",
"description": "The user agent of the client that initiated the event, if applicable."
},
"context_type": {
"enum": [
"web",
"desktop",
"mobile",
"asana_support",
"asana",
"email",
"api"
],
"type": "string",
"example": "web",
"description": "The type of context.\nCan be one of `web`, `desktop`, `mobile`, `asana_support`, `asana`, `email`, or `api`."
},
"oauth_app_name": {
"type": "string",
"description": "The name of the OAuth App that initiated the event.\nOnly present if the `api_authentication_method` is `oauth`."
},
"client_ip_address": {
"type": "string",
"example": "1.1.1.1",
"description": "The IP address of the client that initiated the event, if applicable."
},
"api_authentication_method": {
"enum": [
"cookie",
"oauth",
"personal_access_token",
"service_account"
],
"type": "string",
"description": "The authentication method used in the context of an API request.\nOnly present if the `context_type` is `api`. Can be one of `cookie`, `oauth`, `personal_access_token`, or `service_account`."
}
},
"description": "The context from which this event originated."
}
AuditLogEventDetails
{
"type": "object",
"properties": {
"group": {
"type": "object",
"additionalProperties": true
},
"new_value": {
"type": "string",
"nullable": true
},
"old_value": {
"type": "string",
"nullable": true
}
},
"description": "Event specific details. The schema will vary depending on the `event_type`.",
"additionalProperties": true
}
AuditLogEventResource
{
"type": "object",
"properties": {
"gid": {
"type": "string",
"example": "1111",
"description": "Globally unique identifier of the resource."
},
"name": {
"type": "string",
"example": "Example Task",
"nullable": true,
"description": "The name of the resource."
},
"email": {
"type": "string",
"description": "The email of the resource, if applicable."
},
"resource_type": {
"type": "string",
"example": "task",
"description": "The type of resource."
},
"resource_subtype": {
"type": "string",
"example": "milestone",
"description": "The subtype of resource. Most resources will not have a subtype."
}
},
"description": "The primary object that was affected by this event."
}
BatchApiSubmitParallelRequestsRequest
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/BatchRequest"
}
}
}
BatchApiSubmitParallelRequestsResponse
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BatchResponse"
}
}
}
}
BatchRequest
{
"type": "object",
"properties": {
"actions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BatchRequestAction"
}
}
},
"description": "A request object for use in a batch request."
}
BatchRequestAction
{
"type": "object",
"required": [
"relative_path",
"method"
],
"properties": {
"data": {
"type": "object",
"example": {
"assignee": "me",
"workspace": "1337"
},
"description": "For `GET` requests, this should be a map of query parameters you would have normally passed in the URL. Options and pagination are not accepted here; put them in `options` instead. For `POST`, `PATCH`, and `PUT` methods, this should be the content you would have normally put in the data field of the body."
},
"method": {
"enum": [
"get",
"post",
"put",
"delete",
"patch",
"head"
],
"type": "string",
"example": "get",
"description": "The HTTP method you wish to emulate for the action."
},
"options": {
"type": "object",
"example": {
"limit": 3,
"fields": [
"name",
"notes",
"completed"
]
},
"properties": {
"limit": {
"type": "integer",
"example": 50,
"description": "Pagination limit for the request."
},
"fields": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"name",
"gid",
"notes",
"completed"
],
"description": "The fields to retrieve in the request."
},
"offset": {
"type": "integer",
"example": null,
"description": "Pagination offset for the request."
}
},
"description": "Pagination (`limit` and `offset`) and output options (`fields` or `expand`) for the action. “Pretty” JSON output is not an available option on individual actions; if you want pretty output, specify that option on the parent request."
},
"relative_path": {
"type": "string",
"example": "/tasks/123",
"description": "The path of the desired endpoint relative to the API’s base URL. Query parameters are not accepted here; put them in `data` instead."
}
},
"description": "An action object for use in a batch request."
}
BatchResponse
{
"type": "object",
"properties": {
"body": {
"type": "object",
"example": {
"data": {
"gid": "1967",
"name": "Hello, world!",
"notes": "How are you today?",
"completed": false
}
},
"description": "The JSON body that the invoked endpoint returned."
},
"headers": {
"type": "object",
"example": {
"location": "/tasks/1234"
},
"description": "A map of HTTP headers specific to this result. This is primarily used for returning a `Location` header to accompany a `201 Created` result. The parent HTTP response will contain all common headers."
},
"status_code": {
"type": "integer",
"example": 200,
"description": "The HTTP status code that the invoked endpoint returned."
}
},
"description": "A response object returned from a batch request."
}
CreateMembershipRequest
{
"allOf": [
{
"$ref": "#/components/schemas/MembershipRequest"
},
{
"type": "object",
"properties": {
"role": {
"type": "string",
"example": "editor",
"deprecated": true,
"description": "*Deprecated: new integrations should use access_level* The role given to the member. Optional argument, will default to `commenter` for goals and the default project role for projects. Can be `editor` or `commenter` for goals. Can be `admin`,`editor` or `commenter` for projects."
},
"member": {
"type": "string",
"example": 12345,
"description": "The gid of the user or team."
},
"parent": {
"type": "string",
"example": "987654",
"description": "The gid of the `goal` or `project` to add the member to."
}
}
}
]
}
CreateTimeTrackingEntryRequest
{
"type": "object",
"properties": {
"entered_on": {
"type": "string",
"format": "date",
"example": "2023-03-19",
"description": "*Optional*. The day that this entry is logged on. Defaults to today if not specified"
},
"duration_minutes": {
"type": "integer",
"example": 12,
"description": "Time in minutes tracked by the entry. Must be greater than 0"
}
}
}
CustomFieldBase
{
"allOf": [
{
"$ref": "#/components/schemas/CustomFieldCompact"
},
{
"type": "object",
"properties": {
"format": {
"enum": [
"currency",
"identifier",
"percentage",
"custom",
"duration",
"none"
],
"type": "string",
"example": "custom",
"description": "The format of this custom field."
},
"precision": {
"type": "integer",
"example": 2,
"description": "Only relevant for custom fields of type ‘Number’. This field dictates the number of places after the decimal to round to, i.e. 0 is integer values, 1 rounds to the nearest tenth, and so on. Must be between 0 and 6, inclusive.\nFor percentage format, this may be unintuitive, as a value of 0.25 has a precision of 0, while a value of 0.251 has a precision of 1. This is due to 0.25 being displayed as 25%.\nThe identifier format will always have a precision of 0."
},
"description": {
"type": "string",
"example": "Development team priority",
"description": "[Opt In](https://raw.githubusercontent.com). The description of the custom field."
},
"custom_label": {
"type": "string",
"example": "gold pieces",
"nullable": true,
"description": "This is the string that appears next to the custom field value. This will be null if the `format` is not `custom`."
},
"enum_options": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EnumOption"
},
"description": "*Conditional*. Only relevant for custom fields of type `enum`. This array specifies the possible values which an `enum` custom field can adopt. To modify the enum options, refer to [working with enum options](https://raw.githubusercontent.com)."
},
"currency_code": {
"type": "string",
"example": "EUR",
"nullable": true,
"description": "ISO 4217 currency code to format this custom field. This will be null if the `format` is not `currency`."
},
"asana_created_field": {
"enum": [
"a_v_requirements",
"account_name",
"actionable",
"align_shipping_link",
"align_status",
"allotted_time",
"appointment",
"approval_stage",
"approved",
"article_series",
"board_committee",
"browser",
"campaign_audience",
"campaign_project_status",
"campaign_regions",
"channel_primary",
"client_topic_type",
"complete_by",
"contact",
"contact_email_address",
"content_channels",
"content_channels_needed",
"content_stage",
"content_type",
"contract",
"contract_status",
"cost",
"creation_stage",
"creative_channel",
"creative_needed",
"creative_needs",
"data_sensitivity",
"deal_size",
"delivery_appt",
"delivery_appt_date",
"department",
"department_responsible",
"design_request_needed",
"design_request_type",
"discussion_category",
"do_this_task",
"editorial_content_status",
"editorial_content_tag",
"editorial_content_type",
"effort",
"effort_level",
"est_completion_date",
"estimated_time",
"estimated_value",
"expected_cost",
"external_steps_needed",
"favorite_idea",
"feedback_type",
"financial",
"funding_amount",
"grant_application_process",
"hiring_candidate_status",
"idea_status",
"ids_link",
"ids_patient_link",
"implementation_stage",
"insurance",
"interview_area",
"interview_question_score",
"itero_scan_link",
"job_s_applied_to",
"lab",
"launch_status",
"lead_status",
"localization_language",
"localization_market_team",
"localization_status",
"meeting_minutes",
"meeting_needed",
"minutes",
"mrr",
"must_localize",
"name_of_foundation",
"need_to_follow_up",
"next_appointment",
"next_steps_sales",
"num_people",
"number_of_user_reports",
"office_location",
"onboarding_activity",
"owner",
"participants_needed",
"patient_date_of_birth",
"patient_email",
"patient_phone",
"patient_status",
"phone_number",
"planning_category",
"point_of_contact",
"position",
"post_format",
"prescription",
"priority",
"priority_level",
"product",
"product_stage",
"progress",
"project_size",
"project_status",
"proposed_budget",
"publish_status",
"reason_for_scan",
"referral",
"request_type",
"research_status",
"responsible_department",
"responsible_team",
"risk_assessment_status",
"room_name",
"sales_counterpart",
"sentiment",
"shipping_link",
"social_channels",
"stage",
"status",
"status_design",
"status_of_initiative",
"system_setup",
"task_progress",
"team",
"team_marketing",
"team_responsible",
"time_it_takes_to_complete_tasks",
"timeframe",
"treatment_type",
"type_work_requests_it",
"use_agency",
"user_name",
"vendor_category",
"vendor_type",
"word_count",
null
],
"type": "string",
"example": "priority",
"nullable": true,
"readOnly": true,
"description": "*Conditional*. A unique identifier to associate this field with the template source of truth."
},
"custom_label_position": {
"enum": [
"prefix",
"suffix",
null
],
"type": "string",
"example": "suffix",
"nullable": true,
"description": "Only relevant for custom fields with `custom` format. This depicts where to place the custom label. This will be null if the `format` is not `custom`."
},
"is_global_to_workspace": {
"type": "boolean",
"example": true,
"readOnly": true,
"description": "This flag describes whether this custom field is available to every container in the workspace. Before project-specific custom fields, this field was always true."
},
"has_notifications_enabled": {
"type": "boolean",
"example": true,
"description": "*Conditional*. This flag describes whether a follower of a task with this field should receive inbox notifications from changes to this field."
}
}
}
]
}
CustomFieldCompact
{
"allOf": [
{
"$ref": "#/components/schemas/AsanaResource"
},
{
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "Status",
"description": "The name of the custom field."
},
"type": {
"enum": [
"text",
"enum",
"multi_enum",
"number",
"date",
"people"
],
"type": "string",
"readOnly": true,
"description": "*Deprecated: new integrations should prefer the resource_subtype field.* The type of the custom field. Must be one of the given values.\n"
},
"enabled": {
"type": "boolean",
"example": true,
"readOnly": true,
"description": "*Conditional*. Determines if the custom field is enabled or not."
},
"id_prefix": {
"type": "string",
"example": "ID",
"nullable": true,
"description": "This field is the unique custom ID string for the custom field."
},
"date_value": {
"type": "object",
"nullable": true,
"properties": {
"date": {
"type": "string",
"example": "2024-08-23",
"description": "A string representing the date in YYYY-MM-DD format."
},
"date_time": {
"type": "string",
"example": "2024-08-23T22:00:00.000Z",
"description": "A string representing the date in ISO 8601 format. If no time value is selected, the value of `date-time` will be `null`."
}
},
"description": "*Conditional*. Only relevant for custom fields of type `date`. This object reflects the chosen date (and optionally, time) value of a `date` custom field. If no date is selected, the value of `date_value` will be `null`."
},
"enum_value": {
"allOf": [
{
"$ref": "#/components/schemas/EnumOption"
},
{
"type": "object",
"nullable": true,
"description": "*Conditional*. Only relevant for custom fields of type `enum`. This object is the chosen value of an `enum` custom field."
}
]
},
"text_value": {
"type": "string",
"example": "Some Value",
"nullable": true,
"description": "*Conditional*. This string is the value of a `text` custom field."
},
"enum_options": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EnumOption"
},
"description": "*Conditional*. Only relevant for custom fields of type `enum`. This array specifies the possible values which an `enum` custom field can adopt. To modify the enum options, refer to [working with enum options](https://raw.githubusercontent.com)."
},
"number_value": {
"type": "number",
"example": 5.2,
"nullable": true,
"description": "*Conditional*. This number is the value of a `number` custom field."
},
"display_value": {
"type": "string",
"example": "blue",
"nullable": true,
"readOnly": true,
"description": "A string representation for the value of the custom field. Integrations that don't require the underlying type should use this field to read values. Using this field will future-proof an app against new custom field types."
},
"is_formula_field": {
"type": "boolean",
"example": false,
"description": "*Conditional*. This flag describes whether a custom field is a formula custom field."
},
"resource_subtype": {
"enum": [
"text",
"enum",
"multi_enum",
"number",
"date",
"people"
],
"type": "string",
"example": "text",
"readOnly": true,
"description": "The type of the custom field. Must be one of the given values.\n"
},
"multi_enum_values": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EnumOption"
},
"description": "*Conditional*. Only relevant for custom fields of type `multi_enum`. This object is the chosen values of a `multi_enum` custom field."
},
"representation_type": {
"enum": [
"text",
"enum",
"multi_enum",
"number",
"date",
"people",
"formula",
"custom_id"
],
"type": "string",
"example": "number",
"readOnly": true,
"description": "This field tells the type of the custom field."
}
},
"description": "Custom Fields store the metadata that is used in order to add user-specified information to tasks in Asana. Be sure to reference the [custom fields](https://raw.githubusercontent.com) developer documentation for more information about how custom fields relate to various resources in Asana.\n\nUsers in Asana can [lock custom fields](https://asana.com/guide/help/premium/custom-fields#gl-lock-fields), which will make them read-only when accessed by other users. Attempting to edit a locked custom field will return HTTP error code `403 Forbidden`.",
"x-docs-overrides": {
"properties.resource_type.example": "custom_field"
}
}
]
}
CustomFieldRequest
{
"allOf": [
{
"$ref": "#/components/schemas/CustomFieldBase"
},
{
"type": "object",
"required": [
"workspace"
],
"properties": {
"workspace": {
"type": "string",
"example": "1331",
"description": "*Create-Only* The workspace to create a custom field in."
},
"owned_by_app": {
"type": "boolean",
"description": "*Allow-listed*. Instructs the API that this Custom Field is app-owned. This parameter is allow-listed to specific apps at this point in time. For apps that are not allow-listed, providing this parameter will result in a `403 Forbidden`."
},
"people_value": {
"type": "array",
"items": {
"type": "string",
"description": "The GID of a user."
},
"example": [
"12345"
],
"description": "*Conditional*. Only relevant for custom fields of type `people`. This array of user GIDs reflects the users to be written to a `people` custom field. Note that *write* operations will replace existing users (if any) in the custom field with the users specified in this array."
}
}
}
]
}
CustomFieldResponse
{
"allOf": [
{
"$ref": "#/components/schemas/CustomFieldBase"
},
{
"type": "object",
"properties": {
"id_prefix": {
"type": "string",
"example": "ID",
"nullable": true,
"description": "This field is the unique custom ID string for the custom field."
},
"created_by": {
"allOf": [
{
"$ref": "#/components/schemas/UserCompact"
},
{
"nullable": true
}
]
},
"people_value": {
"type": "array",
"items": {
"$ref": "#/components/schemas/UserCompact"
},
"description": "*Conditional*. Only relevant for custom fields of type `people`. This array of [compact user](https://raw.githubusercontent.com) objects reflects the values of a `people` custom field."
},
"is_formula_field": {
"type": "boolean",
"example": false,
"description": "*Conditional*. This flag describes whether a custom field is a formula custom field."
},
"is_value_read_only": {
"type": "boolean",
"example": false,
"description": "*Conditional*. This flag describes whether a custom field is read only."
},
"representation_type": {
"enum": [
"text",
"enum",
"multi_enum",
"number",
"date",
"people",
"formula",
"custom_id"
],
"type": "string",
"example": "number",
"readOnly": true,
"description": "This field tells the type of the custom field."
}
}
}
]
}
CustomFieldSettingCompact
{
"allOf": [
{
"$ref": "#/components/schemas/AsanaResource"
},
{
"type": "object",
"description": "Custom Fields Settings objects represent the many-to-many join of the Custom Field and Project as well as stores information that is relevant to that particular pairing.",
"x-docs-overrides": {
"properties.resource_type.example": "custom_field_setting"
}
}
]
}
CustomFieldSettingResponse
{
"allOf": [
{
"$ref": "#/components/schemas/CustomFieldSettingCompact"
},
{
"type": "object",
"properties": {
"parent": {
"allOf": [
{
"$ref": "#/components/schemas/ProjectCompact"
},
{
"type": "object",
"readOnly": true,
"description": "The parent to which the custom field is applied. This can be a project or portfolio and indicates that the tasks or projects that the parent contains may be given custom field values for this custom field."
}
]
},
"project": {
"allOf": [
{
"$ref": "#/components/schemas/ProjectCompact"
},
{
"type": "object",
"readOnly": true,
"description": "*Deprecated: new integrations should prefer the `parent` field.* The id of the project that this custom field settings refers to."
}
]
},
"custom_field": {
"allOf": [
{
"$ref": "#/components/schemas/CustomFieldResponse"
},
{
"type": "object",
"readOnly": true,
"description": "The custom field that is applied to the `parent`."
}
]
},
"is_important": {
"type": "boolean",
"example": false,
"readOnly": true,
"description": "`is_important` is used in the Asana web application to determine if this custom field is displayed in the list/grid view of a project or portfolio."
}
}
}
]
}
CustomFieldSettingsGetPortfolioCustomFieldSettingsResponse
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CustomFieldSettingResponse"
}
},
"next_page": {
"$ref": "#/components/schemas/NextPage"
}
}
}
CustomFieldSettingsGetProjectCustomFieldSettingsResponse
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CustomFieldSettingResponse"
}
},
"next_page": {
"$ref": "#/components/schemas/NextPage"
}
}
}
CustomFieldsAddEnumOptionRequest
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/EnumOptionRequest"
}
}
}
CustomFieldsAddEnumOptionResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/EnumOption"
}
}
}
CustomFieldsCreateNewFieldRecordRequest
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/CustomFieldRequest"
}
}
}
CustomFieldsCreateNewFieldRecordResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/CustomFieldResponse"
}
}
}
CustomFieldsDeleteFieldRecordResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/EmptyResponse"
}
}
}
CustomFieldsGetMetadataResponse
{
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/CustomFieldResponse"
}
}
}
CustomFieldsListWorkspaceCustomFieldsResponse
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CustomFieldResponse"
}
},
"next_page": {
"$ref": "#/components/schemas/NextPage"
}
}
}
| Version | Endpoints | Schemas | Ingested | Status |
|---|---|---|---|---|
| 1.0 | 189 | 435 | 2026-05-11 | current |
| 1.0 | 189 | 435 | 2026-04-16 |