Asana
Connect to Asana to manage tasks, projects, teams, goals, portfolios, and workspaces.
Authentication
| Method | Kind | Status | Details |
|---|---|---|---|
| OAuth 2.0 | oauth2 | available | — |
Call a tool
import { createClient } from "@open-connector/sdk";const oc = createClient({ baseUrl: "https://api.openconnector.dev", apiKey: process.env.OPEN_CONNECTOR_API_KEY!,});const result = await oc.executeTool({ slug: "ASANA_ADD_CUSTOM_FIELD_SETTING_FOR_GOAL", connectedAccountId: "conn_...", arguments: { /* match this tool's input schema */ },});import Composio from "@composio/client";const composio = new Composio({ baseURL: "https://api.openconnector.dev/composio", apiKey: process.env.OPEN_CONNECTOR_API_KEY!,});const result = await composio.tools.execute("ASANA_ADD_CUSTOM_FIELD_SETTING_FOR_GOAL", { connected_account_id: "conn_...", arguments: { /* match this tool's input schema */ },});oc tools execute ASANA_ADD_CUSTOM_FIELD_SETTING_FOR_GOAL --data '{ }'Tool catalog
Available tools
249 callable operations
Add a custom field to a goalASANA_ADD_CUSTOM_FIELD_SETTING_FOR_GOAL<b>Required scope: </b><code>goals:write</code> Custom fields are associated with goals by way of custom field settings. This method creates a setting for the goal.Connection1 scope
<b>Required scope: </b><code>goals:write</code> Custom fields are associated with goals by way of custom field settings. This method creates a setting for the goal.
Authentication
Connected account requiredScopes
goals:writeTags
Add a custom field to a portfolioASANA_ADD_CUSTOM_FIELD_SETTING_FOR_PORTFOLIO<b>Required scope: </b><code>portfolios:write</code> Custom fields are associated with portfolios by way of custom field settings. This method creates a setting for the portfolio.Connection1 scope
<b>Required scope: </b><code>portfolios:write</code> Custom fields are associated with portfolios by way of custom field settings. This method creates a setting for the portfolio.
Authentication
Connected account requiredScopes
portfolios:writeTags
Add a custom field to a projectASANA_ADD_CUSTOM_FIELD_SETTING_FOR_PROJECT<b>Required scope: </b><code>projects:write</code> Custom fields are associated with projects by way of custom field settings. This method creates a setting for the project.Connection1 scope
<b>Required scope: </b><code>projects:write</code> Custom fields are associated with projects by way of custom field settings. This method creates a setting for the project.
Authentication
Connected account requiredScopes
projects:writeTags
Set dependencies for a taskASANA_ADD_DEPENDENCIES_FOR_TASK<b>Required scope: </b><code>tasks:write</code> Marks a set of tasks as dependencies of this task, if they are not already dependencies. *A task can have at most 30 dependents and dependencies combined*.Connection1 scope
<b>Required scope: </b><code>tasks:write</code> Marks a set of tasks as dependencies of this task, if they are not already dependencies. *A task can have at most 30 dependents and dependencies combined*.
Authentication
Connected account requiredScopes
tasks:writeTags
Set dependents for a taskASANA_ADD_DEPENDENTS_FOR_TASK<b>Required scope: </b><code>tasks:write</code> Marks a set of tasks as dependents of this task, if they are not already dependents. *A task can have at most 30 dependents and dependencies combined*.Connection1 scope
<b>Required scope: </b><code>tasks:write</code> Marks a set of tasks as dependents of this task, if they are not already dependents. *A task can have at most 30 dependents and dependencies combined*.
Authentication
Connected account requiredScopes
tasks:writeTags
Add a collaborator to a goalASANA_ADD_FOLLOWERSAdds followers to a goal. Returns the goal the followers were added to. Each goal can be associated with zero or more followers in the system. Requests to add/remove followers, if successful, will return the complete updated goal record, described above.Connection
Adds followers to a goal. Returns the goal the followers were added to. Each goal can be associated with zero or more followers in the system. Requests to add/remove followers, if successful, will return the complete updated goal record, described above.
Authentication
Connected account requiredTags
Add followers to a projectASANA_ADD_FOLLOWERS_FOR_PROJECTAdds the specified list of users as followers to the project. Followers are a subset of members who have opted in to receive "tasks added" notifications for a project. Therefore, if the users are not already members of the project, they will also become members as a result of this operation. Returns the updated project record.Connection
Adds the specified list of users as followers to the project. Followers are a subset of members who have opted in to receive "tasks added" notifications for a project. Therefore, if the users are not already members of the project, they will also become members as a result of this operation. Returns the updated project record.
Authentication
Connected account requiredTags
Add followers to a taskASANA_ADD_FOLLOWERS_FOR_TASK<b>Required scope: </b><code>tasks:write</code> Adds followers to a task. Returns an empty data block. Each task can be associated with zero or more followers in the system. Requests to add/remove followers, if successful, will return the complete updated task record, described above.Connection1 scope
<b>Required scope: </b><code>tasks:write</code> Adds followers to a task. Returns an empty data block. Each task can be associated with zero or more followers in the system. Requests to add/remove followers, if successful, will return the complete updated task record, described above.
Authentication
Connected account requiredScopes
tasks:writeTags
Add a portfolio itemASANA_ADD_ITEM_FOR_PORTFOLIO<b>Required scope: </b><code>portfolios:write</code> Add an item to a portfolio. Returns an empty data block.Connection1 scope
<b>Required scope: </b><code>portfolios:write</code> Add an item to a portfolio. Returns an empty data block.
Authentication
Connected account requiredScopes
portfolios:writeTags
Add users to a portfolioASANA_ADD_MEMBERS_FOR_PORTFOLIOAdds the specified list of users as members of the portfolio. Returns the updated portfolio record.Connection
Adds the specified list of users as members of the portfolio. Returns the updated portfolio record.
Authentication
Connected account requiredTags
Add users to a projectASANA_ADD_MEMBERS_FOR_PROJECTAdds the specified list of users as members of the project. Note that a user being added as a member may also be added as a *follower* as a result of this operation. This is because the user's default notification settings (i.e., in the "Notifications" tab of "My Profile Settings") will override this endpoint's default behavior of setting "Tasks added" notifications to `false`. Returns the updated project record.Connection
Adds the specified list of users as members of the project. Note that a user being added as a member may also be added as a *follower* as a result of this operation. This is because the user's default notification settings (i.e., in the "Notifications" tab of "My Profile Settings") will override this endpoint's default behavior of setting "Tasks added" notifications to `false`. Returns the updated project record.
Authentication
Connected account requiredTags
Add a project to a taskASANA_ADD_PROJECT_FOR_TASK<b>Required scope: </b><code>tasks:write</code> Adds the task to the specified project, in the optional location specified. If no location arguments are given, the task will be added to the end of the project. `addProject` can also be used to reorder a task within a project or section that already contains it. **Positioning the task:** - Use `insert_before` or `insert_after` with a task ID to position relative to another task - Use `section` alone to add the task to the end of a section - Use `section` with `insert_after: null` to add to the **beginning** of a section - Use `section` with `insert_before: null` to add to the **end** of a section - Use `section` with `insert_before` or `insert_after` (non-null) to position relative to a task within that section. The anchor task must be in the specified section. At most one of `insert_before` or `insert_after` should be specified (both cannot be used together). A task can have at most 20 projects multi-homed to it. Returns an empty data block.Connection1 scope
<b>Required scope: </b><code>tasks:write</code> Adds the task to the specified project, in the optional location specified. If no location arguments are given, the task will be added to the end of the project. `addProject` can also be used to reorder a task within a project or section that already contains it. **Positioning the task:** - Use `insert_before` or `insert_after` with a task ID to position relative to another task - Use `section` alone to add the task to the end of a section - Use `section` with `insert_after: null` to add to the **beginning** of a section - Use `section` with `insert_before: null` to add to the **end** of a section - Use `section` with `insert_before` or `insert_after` (non-null) to position relative to a task within that section. The anchor task must be in the specified section. At most one of `insert_before` or `insert_after` should be specified (both cannot be used together). A task can have at most 20 projects multi-homed to it. Returns an empty data block.
Authentication
Connected account requiredScopes
tasks:writeTags
Add a supporting goal relationshipASANA_ADD_SUPPORTING_RELATIONSHIPCreates a goal relationship by adding a supporting resource to a given goal. Returns the newly created goal relationship record.Connection
Creates a goal relationship by adding a supporting resource to a given goal. Returns the newly created goal relationship record.
Authentication
Connected account requiredTags
Add a tag to a taskASANA_ADD_TAG_FOR_TASK<b>Required scope: </b><code>tasks:write</code> Adds a tag to a task. Returns an empty data block.Connection1 scope
<b>Required scope: </b><code>tasks:write</code> Adds a tag to a task. Returns an empty data block.
Authentication
Connected account requiredScopes
tasks:writeTags
Add task to sectionASANA_ADD_TASK_FOR_SECTION<b>Required scope: </b><code>tasks:write</code> Add a task to a specific, existing section. This will remove the task from other sections of the project. The task will be inserted at the top of a section unless an insert_before or insert_after parameter is declared. This does not work for separators (tasks with the resource_subtype of section).Connection1 scope
<b>Required scope: </b><code>tasks:write</code> Add a task to a specific, existing section. This will remove the task from other sections of the project. The task will be inserted at the top of a section unless an insert_before or insert_after parameter is declared. This does not work for separators (tasks with the resource_subtype of section).
Authentication
Connected account requiredScopes
tasks:writeTags
Add a user to a teamASANA_ADD_USER_FOR_TEAMThe user making this call must be a member of the team in order to add others. The user being added must exist in the same organization as the team. Returns the complete team membership record for the newly added user.Connection
The user making this call must be a member of the team in order to add others. The user being added must exist in the same organization as the team. Returns the complete team membership record for the newly added user.
Authentication
Connected account requiredTags
Add a user to a workspace or organizationASANA_ADD_USER_FOR_WORKSPACEAdd a user to a workspace or organization. The user can be referenced by their globally unique user ID or their email address. Returns the full user record for the invited user.Connection
Add a user to a workspace or organization. The user can be referenced by their globally unique user ID or their email address. Returns the full user record for the invited user.
Authentication
Connected account requiredTags
Approve an access requestASANA_APPROVE_ACCESS_REQUESTApproves an access request for a target object.Connection
Approves an access request for a target object.
Authentication
Connected account requiredTags
Create an access requestASANA_CREATE_ACCESS_REQUESTSubmits a new access request for a private object. Currently supports projects and portfolios.Connection
Submits a new access request for a private object. Currently supports projects and portfolios.
Authentication
Connected account requiredTags
Create an allocationASANA_CREATE_ALLOCATIONCreates a new allocation. Returns the full record of the newly created allocation.Connection
Creates a new allocation. Returns the full record of the newly created allocation.
Authentication
Connected account requiredTags
Upload an attachmentASANA_CREATE_ATTACHMENT_FOR_OBJECT<b>Required scope: </b><code>attachments:write</code> Upload an attachment. This method uploads an attachment on an object and returns the compact record for the created attachment object. This is possible by either: - Providing the URL of the external resource being attached, or - Downloading the file content first and then uploading it as any other attachment. Note that it is not possible to attach files from third party services such as Dropbox, Box, Vimeo & Google Drive via the API The 100MB size limit on attachments in Asana is enforced on this endpoint. This endpoint expects a multipart/form-data encoded request containing the full contents of the file to be uploaded. Requests made should follow the HTTP/1.1 specification that line terminators are of the form `CRLF` or `\r\n` outlined [here](http://www.w3.org/Protocols/HTTP/1.1/draft-ietf-http-v11-spec-01#Basic-Rules) in order for the server to reliably and properly handle the request. For file names that contain non-ASCII characters, the file name should be URL-encoded. For example, a file named `résumé.pdf` should be encoded as `r%C3%A9sum%C3%A9.pdf` and the `filename` parameter in the `Content-Disposition` header should be set to the encoded file name. Below is an example of a cURL request with the `Content-Disposition` header: ``` export ASANA_PAT="<YOUR_ASANA_PERSONAL_ACCESS_TOKEN>" export PARENT_ID="<PARENT_GID>" export ENCODED_NAME="r%C3%A9sum%C3%A9.pdf" curl --location 'https://app.asana.com/api/1.0/attachments' \ --header 'Content-Type: multipart/form-data' \ --header 'Accept: application/json' \ --header "Authorization: Bearer $ASANA_PAT" \ --form "parent=$PARENT_ID" \ --form "file=@/Users/exampleUser/Downloads/résumé.pdf;headers=\"Content-Disposition: form-data; name="file"; filename="$ENCODED_NAME.pdf"; filename*=UTF-8''$ENCODED_NAME.pdf\"" ```Connection1 scope
<b>Required scope: </b><code>attachments:write</code> Upload an attachment. This method uploads an attachment on an object and returns the compact record for the created attachment object. This is possible by either: - Providing the URL of the external resource being attached, or - Downloading the file content first and then uploading it as any other attachment. Note that it is not possible to attach files from third party services such as Dropbox, Box, Vimeo & Google Drive via the API The 100MB size limit on attachments in Asana is enforced on this endpoint. This endpoint expects a multipart/form-data encoded request containing the full contents of the file to be uploaded. Requests made should follow the HTTP/1.1 specification that line terminators are of the form `CRLF` or `\r\n` outlined [here](http://www.w3.org/Protocols/HTTP/1.1/draft-ietf-http-v11-spec-01#Basic-Rules) in order for the server to reliably and properly handle the request. For file names that contain non-ASCII characters, the file name should be URL-encoded. For example, a file named `résumé.pdf` should be encoded as `r%C3%A9sum%C3%A9.pdf` and the `filename` parameter in the `Content-Disposition` header should be set to the encoded file name. Below is an example of a cURL request with the `Content-Disposition` header: ``` export ASANA_PAT="<YOUR_ASANA_PERSONAL_ACCESS_TOKEN>" export PARENT_ID="<PARENT_GID>" export ENCODED_NAME="r%C3%A9sum%C3%A9.pdf" curl --location 'https://app.asana.com/api/1.0/attachments' \ --header 'Content-Type: multipart/form-data' \ --header 'Accept: application/json' \ --header "Authorization: Bearer $ASANA_PAT" \ --form "parent=$PARENT_ID" \ --form "file=@/Users/exampleUser/Downloads/résumé.pdf;headers=\"Content-Disposition: form-data; name="file"; filename="$ENCODED_NAME.pdf"; filename*=UTF-8''$ENCODED_NAME.pdf\"" ```
Authentication
Connected account requiredScopes
attachments:writeTags
Submit parallel requestsASANA_CREATE_BATCH_REQUESTMake multiple requests in parallel to Asana's API.Connection
Make multiple requests in parallel to Asana's API.
Authentication
Connected account requiredTags
Create a budgetASANA_CREATE_BUDGETCreates a new budget.Connection
Creates a new budget.
Authentication
Connected account requiredTags
Create a custom fieldASANA_CREATE_CUSTOM_FIELD<b>Required scope: </b><code>custom_fields:write</code> Creates a new custom field in a workspace. Every custom field is required to be created in a specific workspace, and this workspace cannot be changed once set. A custom field’s name must be unique within a workspace and not conflict with names of existing task properties such as `Due Date` or `Assignee`. A custom field’s type must be one of `text`, `enum`, `multi_enum`, `number`, `date`, or `people`. Returns the full record of the newly created custom field.Connection1 scope
<b>Required scope: </b><code>custom_fields:write</code> Creates a new custom field in a workspace. Every custom field is required to be created in a specific workspace, and this workspace cannot be changed once set. A custom field’s name must be unique within a workspace and not conflict with names of existing task properties such as `Due Date` or `Assignee`. A custom field’s type must be one of `text`, `enum`, `multi_enum`, `number`, `date`, or `people`. Returns the full record of the newly created custom field.
Authentication
Connected account requiredScopes
custom_fields:writeTags
Create an enum optionASANA_CREATE_ENUM_OPTION_FOR_CUSTOM_FIELD<b>Required scope: </b><code>custom_fields:write</code> Creates an enum option and adds it to this custom field’s list of enum options. A custom field can have at most 500 enum options (including disabled options). By default new enum options are inserted at the end of a custom field’s list. Locked custom fields can only have enum options added by the user who locked the field. Returns the full record of the newly created enum option.Connection1 scope
<b>Required scope: </b><code>custom_fields:write</code> Creates an enum option and adds it to this custom field’s list of enum options. A custom field can have at most 500 enum options (including disabled options). By default new enum options are inserted at the end of a custom field’s list. Locked custom fields can only have enum options added by the user who locked the field. Returns the full record of the newly created enum option.
Authentication
Connected account requiredScopes
custom_fields:writeTags
Create a goalASANA_CREATE_GOALCreates a new goal in a workspace or team. Returns the full record of the newly created goal.Connection
Creates a new goal in a workspace or team. Returns the full record of the newly created goal.
Authentication
Connected account requiredTags
Create a goal metricASANA_CREATE_GOAL_METRICCreates and adds a goal metric to a specified goal. Note that this replaces an existing goal metric if one already exists.Connection
Creates and adds a goal metric to a specified goal. Note that this replaces an existing goal metric if one already exists.
Authentication
Connected account requiredTags
Initiate a graph exportASANA_CREATE_GRAPH_EXPORTInitiates a graph export job for a given parent object (goal, team, portfolio, or project). The export will be processed asynchronously. Once initiated, use the [jobs](/reference/getjob) endpoint to monitor progress. **Export Caching:** When exporting more than 1,000 tasks, the results are cached for 4 hours. Any new export requests made within this 4-hour window will return the same cached results rather than generating a fresh export.Connection
Initiates a graph export job for a given parent object (goal, team, portfolio, or project). The export will be processed asynchronously. Once initiated, use the [jobs](/reference/getjob) endpoint to monitor progress. **Export Caching:** When exporting more than 1,000 tasks, the results are cached for 4 hours. Any new export requests made within this 4-hour window will return the same cached results rather than generating a fresh export.
Authentication
Connected account requiredTags
Create a membershipASANA_CREATE_MEMBERSHIPCreates a new membership in a `goal`, `project`, `portfolio`, `custom_type`, or `custom_field`, where members can be Teams or Users. Returns the full record of the newly created membership.Connection
Creates a new membership in a `goal`, `project`, `portfolio`, `custom_type`, or `custom_field`, where members can be Teams or Users. Returns the full record of the newly created membership.
Authentication
Connected account requiredTags
Create an OOO entryASANA_CREATE_OOO_ENTRY<b>Required scope: </b><code>ooo_entries:write</code> Creates a new OOO entry. Returns the full record of the newly created OOO entry.Connection1 scope
<b>Required scope: </b><code>ooo_entries:write</code> Creates a new OOO entry. Returns the full record of the newly created OOO entry.
Authentication
Connected account requiredScopes
ooo_entries:writeTags
Create an organization export requestASANA_CREATE_ORGANIZATION_EXPORTThis method creates a request to export an Organization. Asana will complete the export at some point after you create the request.Connection
This method creates a request to export an Organization. Asana will complete the export at some point after you create the request.
Authentication
Connected account requiredTags
Create a portfolioASANA_CREATE_PORTFOLIO<b>Required scope: </b><code>portfolios:write</code> Creates a new portfolio in the given workspace with the supplied name. Note that portfolios created in the Asana UI may have some state (like the “Priority” custom field) which is automatically added to the portfolio when it is created. Portfolios created via our API will *not* be created with the same initial state to allow integrations to create their own starting state on a portfolio.Connection1 scope
<b>Required scope: </b><code>portfolios:write</code> Creates a new portfolio in the given workspace with the supplied name. Note that portfolios created in the Asana UI may have some state (like the “Priority” custom field) which is automatically added to the portfolio when it is created. Portfolios created via our API will *not* be created with the same initial state to allow integrations to create their own starting state on a portfolio.
Authentication
Connected account requiredScopes
portfolios:writeTags
Create a projectASANA_CREATE_PROJECT<b>Required scope: </b><code>projects:write</code> Create a new project in a workspace or team. Every project is required to be created in a specific workspace or organization, and this cannot be changed once set. Note that you can use the `workspace` parameter regardless of whether or not it is an organization. If the workspace for your project is an organization, you must also supply a `team` to share the project with. Returns the full record of the newly created project. **Deprecation notice:** The `team` parameter and the `private_to_team` value for `privacy_setting` are deprecated. When either is included in the request, the `Asana-Change` response header will indicate an affected deprecation. Clients should switch to using `POST /memberships` with `{ parent: project, member: team }` to share a project with a team after creation.Connection1 scope
<b>Required scope: </b><code>projects:write</code> Create a new project in a workspace or team. Every project is required to be created in a specific workspace or organization, and this cannot be changed once set. Note that you can use the `workspace` parameter regardless of whether or not it is an organization. If the workspace for your project is an organization, you must also supply a `team` to share the project with. Returns the full record of the newly created project. **Deprecation notice:** The `team` parameter and the `private_to_team` value for `privacy_setting` are deprecated. When either is included in the request, the `Asana-Change` response header will indicate an affected deprecation. Clients should switch to using `POST /memberships` with `{ parent: project, member: team }` to share a project with a team after creation.
Authentication
Connected account requiredScopes
projects:writeTags
Create a project briefASANA_CREATE_PROJECT_BRIEFCreates a new project brief. Returns the full record of the newly created project brief.Connection
Creates a new project brief. Returns the full record of the newly created project brief.
Authentication
Connected account requiredTags
Create a project in a teamASANA_CREATE_PROJECT_FOR_TEAM<b>Required scope: </b><code>projects:write</code> Creates a project shared with the given team. Returns the full record of the newly created project.Connection1 scope
<b>Required scope: </b><code>projects:write</code> Creates a project shared with the given team. Returns the full record of the newly created project.
Authentication
Connected account requiredScopes
projects:writeTags
Create a project in a workspaceASANA_CREATE_PROJECT_FOR_WORKSPACE<b>Required scope: </b><code>projects:write</code> Creates a project in the workspace. If the workspace for your project is an organization, you must also supply a team to share the project with. Returns the full record of the newly created project.Connection1 scope
<b>Required scope: </b><code>projects:write</code> Creates a project in the workspace. If the workspace for your project is an organization, you must also supply a team to share the project with. Returns the full record of the newly created project.
Authentication
Connected account requiredScopes
projects:writeTags
Create a project statusASANA_CREATE_PROJECT_STATUS_FOR_PROJECT*Deprecated: new integrations should prefer the `/status_updates` route.* Creates a new status update on the project. Returns the full record of the newly created project status update.Connection
*Deprecated: new integrations should prefer the `/status_updates` route.* Creates a new status update on the project. Returns the full record of the newly created project status update.
Authentication
Connected account requiredTags
Create a rateASANA_CREATE_RATECreates a new rate for a `parent` + `resource` combination.Connection
Creates a new rate for a `parent` + `resource` combination.
Authentication
Connected account requiredTags
Initiate a resource exportASANA_CREATE_RESOURCE_EXPORTInitiates a bulk export of resources for a workspace. The export will be processed asynchronously. Once the export has been requested, its progress can be monitored using the [jobs](/reference/getjob) endpoint. ## Supported resource types This endpoint currently supports exporting tasks, teams and messages within a workspace. Resources can be requested to be part of the export by providing the `export_request_parameters` parameter. The following resource types are supported: ### Tasks: Tasks are formatted for exports with some differences from their documented [schema](/reference/tasks): - `attachments` are included by default and returns an array of associated attachments. - Attachment objects do not include `download_url` or `view_url`. The `attachments` [endpoint](/reference/attachment) should be queried for up-to-date URLs. - `stories` are included by default and returns an array of comments and other changes made to a task ### Teams: Teams are formatted for exports with these differences from their documented [schema](/reference/teams): - `members` are included by default and returns an array of Users that are members of the team - Filtering is not supported for teams. ### Messages: The returned schema encompasses both default messages and status updates and is similar to the status update schema. The available fields for messages are: - `gid` - The globally unique identifier for the message. - `resource_type` - The type of resource, which is always "message". - `resource_subtype` - Optional. The subtype of the message, which can be "default" or "status_update". - `status_type` - The type associated with the status update. This can be one of: “on_track”, “at_risk”, “off_track”, “on_hold”, “complete”, “achieved”, “partial”, “missed”, “dropped” - `created_by` - The user who created the message. - `created_at` - The time at which this resource was created and sent available to other users. - `modified_at` - The time at which this resource was last modified. - `title` - The title of the message. - `text` - The text content of the message. - `html_notes` - The text content of the message with formatting as HTML. Not included by default. Can be included by using “fields” in the initial request. - `num_likes` - The number of users who have liked this message. - `likes` - An array of users who have liked this message. - `stories` - Optional. Array of stories applied to the message. - `attachments` - Optional. Array of attachments added to the message. - `followers` - Optional. Array of users currently following the message. Users that were sent the message are treated as followers. - `parents` - Array of objects the message was sent to. Can be a Project, Portfolio, Team or Goal. Limited to a single object for status updates. ## Export file The final export file will be in JSON Lines format and compressed in a gzip container. Objects are formatted according to their corresponding API schema, or limited to the fields included in the `fields` parameter. Exports currently include undeleted objects. An object in the export will be up to date anywhere between the exports `created_at` and `completed_at`. There is no guaranteed ordering of objects in the export. Access to the export file expires 30 days after its completion. ## Exporting specific fields By default, each object in an export includes a predefined set of fields based on its schema. If a more limited set of fields or fields not included by default are required, the Export API allows for specifying which fields to include in the requested export. Fields can be specified using the `fields` parameter. The fields parameter conforms to the fields optional parameter available for all Asana endpoints which is documented [here](https://developers.asana.com/docs/inputoutput-options). Utilizing the `fields` parameter is recommended if the full object is not required, especially when a large number of objects are being exported, to reduce the overall export time. ## Filtering resources A disjunction of two or more filters can be achieved by providing multiple `export_request_parameters` for the same resource, each with different filters. However, this approach may result in duplicate resources being returned. ## Rate Limits A workspace is currently limited to *one* in progress export request at a given time. The request will return with a 403 Forbidden status code if the limit is exceeded.Connection
Initiates a bulk export of resources for a workspace. The export will be processed asynchronously. Once the export has been requested, its progress can be monitored using the [jobs](/reference/getjob) endpoint. ## Supported resource types This endpoint currently supports exporting tasks, teams and messages within a workspace. Resources can be requested to be part of the export by providing the `export_request_parameters` parameter. The following resource types are supported: ### Tasks: Tasks are formatted for exports with some differences from their documented [schema](/reference/tasks): - `attachments` are included by default and returns an array of associated attachments. - Attachment objects do not include `download_url` or `view_url`. The `attachments` [endpoint](/reference/attachment) should be queried for up-to-date URLs. - `stories` are included by default and returns an array of comments and other changes made to a task ### Teams: Teams are formatted for exports with these differences from their documented [schema](/reference/teams): - `members` are included by default and returns an array of Users that are members of the team - Filtering is not supported for teams. ### Messages: The returned schema encompasses both default messages and status updates and is similar to the status update schema. The available fields for messages are: - `gid` - The globally unique identifier for the message. - `resource_type` - The type of resource, which is always "message". - `resource_subtype` - Optional. The subtype of the message, which can be "default" or "status_update". - `status_type` - The type associated with the status update. This can be one of: “on_track”, “at_risk”, “off_track”, “on_hold”, “complete”, “achieved”, “partial”, “missed”, “dropped” - `created_by` - The user who created the message. - `created_at` - The time at which this resource was created and sent available to other users. - `modified_at` - The time at which this resource was last modified. - `title` - The title of the message. - `text` - The text content of the message. - `html_notes` - The text content of the message with formatting as HTML. Not included by default. Can be included by using “fields” in the initial request. - `num_likes` - The number of users who have liked this message. - `likes` - An array of users who have liked this message. - `stories` - Optional. Array of stories applied to the message. - `attachments` - Optional. Array of attachments added to the message. - `followers` - Optional. Array of users currently following the message. Users that were sent the message are treated as followers. - `parents` - Array of objects the message was sent to. Can be a Project, Portfolio, Team or Goal. Limited to a single object for status updates. ## Export file The final export file will be in JSON Lines format and compressed in a gzip container. Objects are formatted according to their corresponding API schema, or limited to the fields included in the `fields` parameter. Exports currently include undeleted objects. An object in the export will be up to date anywhere between the exports `created_at` and `completed_at`. There is no guaranteed ordering of objects in the export. Access to the export file expires 30 days after its completion. ## Exporting specific fields By default, each object in an export includes a predefined set of fields based on its schema. If a more limited set of fields or fields not included by default are required, the Export API allows for specifying which fields to include in the requested export. Fields can be specified using the `fields` parameter. The fields parameter conforms to the fields optional parameter available for all Asana endpoints which is documented [here](https://developers.asana.com/docs/inputoutput-options). Utilizing the `fields` parameter is recommended if the full object is not required, especially when a large number of objects are being exported, to reduce the overall export time. ## Filtering resources A disjunction of two or more filters can be achieved by providing multiple `export_request_parameters` for the same resource, each with different filters. However, this approach may result in duplicate resources being returned. ## Rate Limits A workspace is currently limited to *one* in progress export request at a given time. The request will return with a 403 Forbidden status code if the limit is exceeded.
Authentication
Connected account requiredTags
Create a roleASANA_CREATE_ROLE<b>Required scope: </b><code>roles:write</code> Creates a new RBAC role in the workspace.Connection1 scope
<b>Required scope: </b><code>roles:write</code> Creates a new RBAC role in the workspace.
Authentication
Connected account requiredScopes
roles:writeTags
Create a section in a projectASANA_CREATE_SECTION_FOR_PROJECTCreates a new section in a project. Returns the full record of the newly created section.Connection
Creates a new section in a project. Returns the full record of the newly created section.
Authentication
Connected account requiredTags
Create a status updateASANA_CREATE_STATUS_FOR_OBJECTCreates a new status update on an object. Returns the full record of the newly created status update.Connection
Creates a new status update on an object. Returns the full record of the newly created status update.
Authentication
Connected account requiredTags
Create a story on a goalASANA_CREATE_STORY_FOR_GOAL<b>Required scope: </b><code>stories:write</code> Adds a story to a goal. This endpoint currently only allows for comment stories to be created. The comment will be authored by the currently authenticated user, and timestamped when the server receives the request. Returns the full record for the new story added to the goal.Connection1 scope
<b>Required scope: </b><code>stories:write</code> Adds a story to a goal. This endpoint currently only allows for comment stories to be created. The comment will be authored by the currently authenticated user, and timestamped when the server receives the request. Returns the full record for the new story added to the goal.
Authentication
Connected account requiredScopes
stories:writeTags
Create a story on a taskASANA_CREATE_STORY_FOR_TASK<b>Required scope: </b><code>stories:write</code> Adds a story to a task. This endpoint currently only allows for comment stories to be created. The comment will be authored by the currently authenticated user, and timestamped when the server receives the request. Returns the full record for the new story added to the task.Connection1 scope
<b>Required scope: </b><code>stories:write</code> Adds a story to a task. This endpoint currently only allows for comment stories to be created. The comment will be authored by the currently authenticated user, and timestamped when the server receives the request. Returns the full record for the new story added to the task.
Authentication
Connected account requiredScopes
stories:writeTags
Create a subtaskASANA_CREATE_SUBTASK_FOR_TASK<b>Required scope: </b><code>tasks:write</code> Creates a new subtask and adds it to the parent task. Returns the full record for the newly created subtask.Connection1 scope
<b>Required scope: </b><code>tasks:write</code> Creates a new subtask and adds it to the parent task. Returns the full record for the newly created subtask.
Authentication
Connected account requiredScopes
tasks:writeTags
Create a tagASANA_CREATE_TAG<b>Required scope: </b><code>tags:write</code> Creates a new tag in a workspace or organization. Every tag is required to be created in a specific workspace or organization, and this cannot be changed once set. Note that you can use the workspace parameter regardless of whether or not it is an organization. Returns the full record of the newly created tag.Connection1 scope
<b>Required scope: </b><code>tags:write</code> Creates a new tag in a workspace or organization. Every tag is required to be created in a specific workspace or organization, and this cannot be changed once set. Note that you can use the workspace parameter regardless of whether or not it is an organization. Returns the full record of the newly created tag.
Authentication
Connected account requiredScopes
tags:writeTags
Create a tag in a workspaceASANA_CREATE_TAG_FOR_WORKSPACE<b>Required scope: </b><code>tags:write</code> Creates a new tag in a workspace or organization. Every tag is required to be created in a specific workspace or organization, and this cannot be changed once set. Note that you can use the workspace parameter regardless of whether or not it is an organization. Returns the full record of the newly created tag.Connection1 scope
<b>Required scope: </b><code>tags:write</code> Creates a new tag in a workspace or organization. Every tag is required to be created in a specific workspace or organization, and this cannot be changed once set. Note that you can use the workspace parameter regardless of whether or not it is an organization. Returns the full record of the newly created tag.
Authentication
Connected account requiredScopes
tags:writeTags
Create a taskASANA_CREATE_TASK<b>Required scope: </b><code>tasks:write</code> Creating a new task is as easy as POSTing to the `/tasks` endpoint with a data block containing the fields you’d like to set on the task. Any unspecified fields will take on default values. Every task is required to be created in a specific workspace, and this workspace cannot be changed once set. The workspace need not be set explicitly if you specify `projects` or a `parent` task instead.Connection1 scope
<b>Required scope: </b><code>tasks:write</code> Creating a new task is as easy as POSTing to the `/tasks` endpoint with a data block containing the fields you’d like to set on the task. Any unspecified fields will take on default values. Every task is required to be created in a specific workspace, and this workspace cannot be changed once set. The workspace need not be set explicitly if you specify `projects` or a `parent` task instead.
Authentication
Connected account requiredScopes
tasks:writeTags
Create a teamASANA_CREATE_TEAMCreates a team within the current workspace.Connection
Creates a team within the current workspace.
Authentication
Connected account requiredTags
Create a time tracking categoryASANA_CREATE_TIME_TRACKING_CATEGORY<b>Required scope: </b><code>time_tracking_categories:write</code> Creates a new time tracking category in a given workspace. Returns the record of the newly created time tracking category.Connection1 scope
<b>Required scope: </b><code>time_tracking_categories:write</code> Creates a new time tracking category in a given workspace. Returns the record of the newly created time tracking category.
Authentication
Connected account requiredScopes
time_tracking_categories:writeTags
Create a time tracking entryASANA_CREATE_TIME_TRACKING_ENTRYCreates a time tracking entry on a given task. Returns the record of the newly created time tracking entry. #### Access requirements Access to this endpoint has two levels: - **Endpoint access** requires time tracking to be available through the domain's plan or add-ons. A request from a domain without time tracking access returns a `402 Payment Required` error for every request to this endpoint. - **Field access** for some request fields requires the Timesheets and Budgets add-on. Fields with this requirement are noted in the request schema. Including one of these fields without the add-on returns a `402 Payment Required` error, even when the rest of the request is valid. Because the field-level requirement is separate, the same endpoint may return `201` or `402` for the same domain depending on which fields are sent: a request that only uses fields available with endpoint access succeeds on any domain that meets the endpoint requirement, while a request that includes a field requiring the add-on also requires the add-on.Connection
Creates a time tracking entry on a given task. Returns the record of the newly created time tracking entry. #### Access requirements Access to this endpoint has two levels: - **Endpoint access** requires time tracking to be available through the domain's plan or add-ons. A request from a domain without time tracking access returns a `402 Payment Required` error for every request to this endpoint. - **Field access** for some request fields requires the Timesheets and Budgets add-on. Fields with this requirement are noted in the request schema. Including one of these fields without the add-on returns a `402 Payment Required` error, even when the rest of the request is valid. Because the field-level requirement is separate, the same endpoint may return `201` or `402` for the same domain depending on which fields are sent: a request that only uses fields available with endpoint access succeeds on any domain that meets the endpoint requirement, while a request that includes a field requiring the add-on also requires the add-on.
Authentication
Connected account requiredTags
Create a timesheet approval statusASANA_CREATE_TIMESHEET_APPROVAL_STATUS<b>Required scope: </b><code>timesheet_approval_statuses:write</code> Creates a new timesheet approval status for a user's timesheet week. The start_date must be a Monday or Sunday, and end_date must be the last day of that week (Sunday for a Monday start, Saturday for a Sunday start). Returns the created timesheet approval status record.Connection1 scope
<b>Required scope: </b><code>timesheet_approval_statuses:write</code> Creates a new timesheet approval status for a user's timesheet week. The start_date must be a Monday or Sunday, and end_date must be the last day of that week (Sunday for a Monday start, Saturday for a Sunday start). Returns the created timesheet approval status record.
Authentication
Connected account requiredScopes
timesheet_approval_statuses:writeTags
Establish a webhookASANA_CREATE_WEBHOOK<b>Required scope: </b><code>webhooks:write</code> Establishing a webhook is a two-part process. First, a simple HTTP POST request initiates the creation similar to creating any other resource. Next, in the middle of this request comes the confirmation handshake. When a webhook is created, we will send a test POST to the target with an `X-Hook-Secret` header. The target must respond with a `200 OK` or `204 No Content` and a matching `X-Hook-Secret` header to confirm that this webhook subscription is indeed expected. We strongly recommend storing this secret to be used to verify future webhook event signatures. The POST request to create the webhook will then return with the status of the request. If you do not acknowledge the webhook’s confirmation handshake it will fail to setup, and you will receive an error in response to your attempt to create it. This means you need to be able to receive and complete the webhook *while* the POST request is in-flight (in other words, have a server that can handle requests asynchronously). Invalid hostnames like localhost will receive a 403 Forbidden status code. ``` # Request curl -H "Authorization: Bearer <personal_access_token>" \ -X POST https://app.asana.com/api/1.0/webhooks \ -d "resource=8675309" \ -d "target=https://example.com/receive-webhook/7654" ``` ``` # Handshake sent to https://example.com/ POST /receive-webhook/7654 X-Hook-Secret: b537207f20cbfa02357cf448134da559e8bd39d61597dcd5631b8012eae53e81 ``` ``` # Handshake response sent by example.com HTTP/1.1 200 X-Hook-Secret: b537207f20cbfa02357cf448134da559e8bd39d61597dcd5631b8012eae53e81 ``` ``` # Response HTTP/1.1 201 { "data": { "gid": "43214", "resource": { "gid": "8675309", "name": "Bugs" }, "target": "https://example.com/receive-webhook/7654", "active": false, "last_success_at": null, "last_failure_at": null, "last_failure_content": null }, "X-Hook-Secret": "b537207f20cbfa02357cf448134da559e8bd39d61597dcd5631b8012eae53e81" } ```Connection1 scope
<b>Required scope: </b><code>webhooks:write</code> Establishing a webhook is a two-part process. First, a simple HTTP POST request initiates the creation similar to creating any other resource. Next, in the middle of this request comes the confirmation handshake. When a webhook is created, we will send a test POST to the target with an `X-Hook-Secret` header. The target must respond with a `200 OK` or `204 No Content` and a matching `X-Hook-Secret` header to confirm that this webhook subscription is indeed expected. We strongly recommend storing this secret to be used to verify future webhook event signatures. The POST request to create the webhook will then return with the status of the request. If you do not acknowledge the webhook’s confirmation handshake it will fail to setup, and you will receive an error in response to your attempt to create it. This means you need to be able to receive and complete the webhook *while* the POST request is in-flight (in other words, have a server that can handle requests asynchronously). Invalid hostnames like localhost will receive a 403 Forbidden status code. ``` # Request curl -H "Authorization: Bearer <personal_access_token>" \ -X POST https://app.asana.com/api/1.0/webhooks \ -d "resource=8675309" \ -d "target=https://example.com/receive-webhook/7654" ``` ``` # Handshake sent to https://example.com/ POST /receive-webhook/7654 X-Hook-Secret: b537207f20cbfa02357cf448134da559e8bd39d61597dcd5631b8012eae53e81 ``` ``` # Handshake response sent by example.com HTTP/1.1 200 X-Hook-Secret: b537207f20cbfa02357cf448134da559e8bd39d61597dcd5631b8012eae53e81 ``` ``` # Response HTTP/1.1 201 { "data": { "gid": "43214", "resource": { "gid": "8675309", "name": "Bugs" }, "target": "https://example.com/receive-webhook/7654", "active": false, "last_success_at": null, "last_failure_at": null, "last_failure_content": null }, "X-Hook-Secret": "b537207f20cbfa02357cf448134da559e8bd39d61597dcd5631b8012eae53e81" } ```
Authentication
Connected account requiredScopes
webhooks:writeTags
Delete an allocationASANA_DELETE_ALLOCATIONA specific, existing allocation can be deleted by making a DELETE request on the URL for that allocation. Returns an empty data record.Connection
A specific, existing allocation can be deleted by making a DELETE request on the URL for that allocation. Returns an empty data record.
Authentication
Connected account requiredTags
Delete an attachmentASANA_DELETE_ATTACHMENT<b>Required scope: </b><code>attachments:delete</code> Deletes a specific, existing attachment. Returns an empty data record.Connection1 scope
<b>Required scope: </b><code>attachments:delete</code> Deletes a specific, existing attachment. Returns an empty data record.
Authentication
Connected account requiredScopes
attachments:deleteTags
Delete a budgetASANA_DELETE_BUDGETA specific, existing budget can be deleted by making a DELETE request on the URL for that budget. Returns an empty data record.Connection
A specific, existing budget can be deleted by making a DELETE request on the URL for that budget. Returns an empty data record.
Authentication
Connected account requiredTags
Delete a custom fieldASANA_DELETE_CUSTOM_FIELDA specific, existing custom field can be deleted by making a DELETE request on the URL for that custom field. Locked custom fields can only be deleted by the user who locked the field. Returns an empty data record.Connection
A specific, existing custom field can be deleted by making a DELETE request on the URL for that custom field. Locked custom fields can only be deleted by the user who locked the field. Returns an empty data record.
Authentication
Connected account requiredTags
Delete a goalASANA_DELETE_GOALA specific, existing goal can be deleted by making a DELETE request on the URL for that goal. Returns an empty data record.Connection
A specific, existing goal can be deleted by making a DELETE request on the URL for that goal. Returns an empty data record.
Authentication
Connected account requiredTags
Delete a membershipASANA_DELETE_MEMBERSHIPA specific, existing membership for a `goal`, `project`, `portfolio`, `custom_type`, or `custom_field` can be deleted by making a `DELETE` request on the URL for that membership. Returns an empty data record.Connection
A specific, existing membership for a `goal`, `project`, `portfolio`, `custom_type`, or `custom_field` can be deleted by making a `DELETE` request on the URL for that membership. Returns an empty data record.
Authentication
Connected account requiredTags
Delete an OOO entryASANA_DELETE_OOO_ENTRY<b>Required scope: </b><code>ooo_entries:delete</code> A specific, existing OOO entry can be deleted by making a DELETE request on the URL for that OOO entry. Returns an empty data record.Connection1 scope
<b>Required scope: </b><code>ooo_entries:delete</code> A specific, existing OOO entry can be deleted by making a DELETE request on the URL for that OOO entry. Returns an empty data record.
Authentication
Connected account requiredScopes
ooo_entries:deleteTags
Delete a portfolioASANA_DELETE_PORTFOLIOAn existing portfolio can be deleted by making a DELETE request on the URL for that portfolio. Returns an empty data record.Connection
An existing portfolio can be deleted by making a DELETE request on the URL for that portfolio. Returns an empty data record.
Authentication
Connected account requiredTags
Delete a projectASANA_DELETE_PROJECT<b>Required scope: </b><code>projects:delete</code> A specific, existing project can be deleted by making a DELETE request on the URL for that project. Returns an empty data record.Connection1 scope
<b>Required scope: </b><code>projects:delete</code> A specific, existing project can be deleted by making a DELETE request on the URL for that project. Returns an empty data record.
Authentication
Connected account requiredScopes
projects:deleteTags
Delete a project briefASANA_DELETE_PROJECT_BRIEFDeletes a specific, existing project brief. Returns an empty data record.Connection
Deletes a specific, existing project brief. Returns an empty data record.
Authentication
Connected account requiredTags
Delete a project statusASANA_DELETE_PROJECT_STATUS*Deprecated: new integrations should prefer the `/status_updates/{status_gid}` route.* Deletes a specific, existing project status update. Returns an empty data record.Connection
*Deprecated: new integrations should prefer the `/status_updates/{status_gid}` route.* Deletes a specific, existing project status update. Returns an empty data record.
Authentication
Connected account requiredTags
Delete a project templateASANA_DELETE_PROJECT_TEMPLATEA specific, existing project template can be deleted by making a DELETE request on the URL for that project template. Returns an empty data record.Connection
A specific, existing project template can be deleted by making a DELETE request on the URL for that project template. Returns an empty data record.
Authentication
Connected account requiredTags
Delete a rateASANA_DELETE_RATEDeletes a rate.Connection
Deletes a rate.
Authentication
Connected account requiredTags
Delete a roleASANA_DELETE_ROLE<b>Required scope: </b><code>roles:delete</code> Deletes a role from a workspace.Connection1 scope
<b>Required scope: </b><code>roles:delete</code> Deletes a role from a workspace.
Authentication
Connected account requiredScopes
roles:deleteTags
Delete a sectionASANA_DELETE_SECTIONA specific, existing section can be deleted by making a DELETE request on the URL for that section. Note that sections must be empty to be deleted. The last remaining section cannot be deleted. Returns an empty data block.Connection
A specific, existing section can be deleted by making a DELETE request on the URL for that section. Note that sections must be empty to be deleted. The last remaining section cannot be deleted. Returns an empty data block.
Authentication
Connected account requiredTags
Delete a status updateASANA_DELETE_STATUSDeletes a specific, existing status update. Returns an empty data record.Connection
Deletes a specific, existing status update. Returns an empty data record.
Authentication
Connected account requiredTags
Delete a storyASANA_DELETE_STORY<b>Required scope: </b><code>stories:delete</code> Deletes a story. A user can only delete stories they have created. Returns an empty data record.Connection1 scope
<b>Required scope: </b><code>stories:delete</code> Deletes a story. A user can only delete stories they have created. Returns an empty data record.
Authentication
Connected account requiredScopes
stories:deleteTags
Delete a tagASANA_DELETE_TAGA specific, existing tag can be deleted by making a DELETE request on the URL for that tag. Returns an empty data record.Connection
A specific, existing tag can be deleted by making a DELETE request on the URL for that tag. Returns an empty data record.
Authentication
Connected account requiredTags
Delete a taskASANA_DELETE_TASK<b>Required scope: </b><code>tasks:delete</code> A specific, existing task can be deleted by making a DELETE request on the URL for that task. Deleted tasks go into the “trash” of the user making the delete request. Tasks can be recovered from the trash within a period of 30 days; afterward they are completely removed from the system. Returns an empty data record.Connection1 scope
<b>Required scope: </b><code>tasks:delete</code> A specific, existing task can be deleted by making a DELETE request on the URL for that task. Deleted tasks go into the “trash” of the user making the delete request. Tasks can be recovered from the trash within a period of 30 days; afterward they are completely removed from the system. Returns an empty data record.
Authentication
Connected account requiredScopes
tasks:deleteTags
Delete a task templateASANA_DELETE_TASK_TEMPLATEA specific, existing task template can be deleted by making a DELETE request on the URL for that task template. Returns an empty data record.Connection
A specific, existing task template can be deleted by making a DELETE request on the URL for that task template. Returns an empty data record.
Authentication
Connected account requiredTags
Delete a time tracking categoryASANA_DELETE_TIME_TRACKING_CATEGORY<b>Required scope: </b><code>time_tracking_categories:delete</code> Deletes a specific, existing time tracking category. Returns an empty data record.Connection1 scope
<b>Required scope: </b><code>time_tracking_categories:delete</code> Deletes a specific, existing time tracking category. Returns an empty data record.
Authentication
Connected account requiredScopes
time_tracking_categories:deleteTags
Delete a time tracking entryASANA_DELETE_TIME_TRACKING_ENTRYA specific, existing time tracking entry can be deleted by making a `DELETE` request on the URL for that time tracking entry. Returns an empty data record. #### Access requirements This endpoint is available only when time tracking is available through the domain's plan or add-ons. A request from a domain without time tracking access returns a `402 Payment Required` error.Connection
A specific, existing time tracking entry can be deleted by making a `DELETE` request on the URL for that time tracking entry. Returns an empty data record. #### Access requirements This endpoint is available only when time tracking is available through the domain's plan or add-ons. A request from a domain without time tracking access returns a `402 Payment Required` error.
Authentication
Connected account requiredTags
Delete a webhookASANA_DELETE_WEBHOOK<b>Required scope: </b><code>webhooks:delete</code> This method *permanently* removes a webhook. Note that it may be possible to receive a request that was already in flight after deleting the webhook, but no further requests will be issued.Connection1 scope
<b>Required scope: </b><code>webhooks:delete</code> This method *permanently* removes a webhook. Note that it may be possible to receive a request that was already in flight after deleting the webhook, but no further requests will be issued.
Authentication
Connected account requiredScopes
webhooks:deleteTags
Duplicate a portfolioASANA_DUPLICATE_PORTFOLIO<b>Required scope: </b><code>portfolios:write</code> Creates and returns a job that will asynchronously handle the duplication.Connection1 scope
<b>Required scope: </b><code>portfolios:write</code> Creates and returns a job that will asynchronously handle the duplication.
Authentication
Connected account requiredScopes
portfolios:writeTags
Duplicate a projectASANA_DUPLICATE_PROJECT<b>Required scope: </b><code>projects:write</code> Creates and returns a job that will asynchronously handle the duplication.Connection1 scope
<b>Required scope: </b><code>projects:write</code> Creates and returns a job that will asynchronously handle the duplication.
Authentication
Connected account requiredScopes
projects:writeTags
Duplicate a taskASANA_DUPLICATE_TASK<b>Required scope: </b><code>tasks:write</code> Creates and returns a job that will asynchronously handle the duplication.Connection1 scope
<b>Required scope: </b><code>tasks:write</code> Creates and returns a job that will asynchronously handle the duplication.
Authentication
Connected account requiredScopes
tasks:writeTags
Get access requestsASANA_GET_ACCESS_REQUESTSReturns the pending access requests for a target object or a target object filtered by user.Connection
Returns the pending access requests for a target object or a target object filtered by user.
Authentication
Connected account requiredTags
Get an agentASANA_GET_AGENTReturns the complete record for a single agent (AI Teammate).Connection
Returns the complete record for a single agent (AI Teammate).
Authentication
Connected account requiredTags
Get a list of agents in a workspaceASANA_GET_AGENTS_FOR_WORKSPACEReturns the compact records of agents (AI Teammates) configured. Use `opt_fields` to request additional fields in the workspace.Connection
Returns the compact records of agents (AI Teammates) configured. Use `opt_fields` to request additional fields in the workspace.
Authentication
Connected account requiredTags
Get AI Studio credit utilizationASANA_GET_AI_STUDIO_RUNSReturns one row per AI Studio run (rule execution) for the workspace, in ascending order (oldest first) so that incremental consumers can poll forward. Each row describes what ran, who it is attributed to, the model used, and the credits consumed. Credit data is available from January 8th, 2025 onward, and is queryable for the full history since then (there is no limit on how far back you can query). A `start_at` earlier than January 8th, 2025 is silently clamped; it is not an error. The list is always [paginated](/docs/pagination). When more results exist, the response includes a `next_page` with an `offset` that can be used to retrieve the next set of rows. The row `gid` is stable and can be used to de-duplicate rows across incremental loads. This endpoint is restricted to [service accounts](https://help.asana.com/s/article/service-accounts) in organizations licensed for AI Studio.Connection
Returns one row per AI Studio run (rule execution) for the workspace, in ascending order (oldest first) so that incremental consumers can poll forward. Each row describes what ran, who it is attributed to, the model used, and the credits consumed. Credit data is available from January 8th, 2025 onward, and is queryable for the full history since then (there is no limit on how far back you can query). A `start_at` earlier than January 8th, 2025 is silently clamped; it is not an error. The list is always [paginated](/docs/pagination). When more results exist, the response includes a `next_page` with an `offset` that can be used to retrieve the next set of rows. The row `gid` is stable and can be used to de-duplicate rows across incremental loads. This endpoint is restricted to [service accounts](https://help.asana.com/s/article/service-accounts) in organizations licensed for AI Studio.
Authentication
Connected account requiredTags
Get AI Studio seatsASANA_GET_AI_STUDIO_SEATSReturns a current snapshot of AI Studio seat allocations for the workspace — who has access, at what license tier, and the state of each seat. This is a point-in-time snapshot; customers build their own history tables on top of periodic pulls. The list is always [paginated](/docs/pagination). When more results exist, the response includes a `next_page` with an `offset` that can be used to retrieve the next set of rows. This endpoint is restricted to [service accounts](https://help.asana.com/s/article/service-accounts) in organizations licensed for AI Studio.Connection
Returns a current snapshot of AI Studio seat allocations for the workspace — who has access, at what license tier, and the state of each seat. This is a point-in-time snapshot; customers build their own history tables on top of periodic pulls. The list is always [paginated](/docs/pagination). When more results exist, the response includes a `next_page` with an `offset` that can be used to retrieve the next set of rows. This endpoint is restricted to [service accounts](https://help.asana.com/s/article/service-accounts) in organizations licensed for AI Studio.
Authentication
Connected account requiredTags
Get an allocationASANA_GET_ALLOCATIONReturns the complete allocation record for a single allocation.Connection
Returns the complete allocation record for a single allocation.
Authentication
Connected account requiredTags
Get multiple allocationsASANA_GET_ALLOCATIONSReturns a list of allocations filtered to a specific project, user or placeholder.Connection
Returns a list of allocations filtered to a specific project, user or placeholder.
Authentication
Connected account requiredTags
Get an attachmentASANA_GET_ATTACHMENT<b>Required scope: </b><code>attachments:read</code> Get the full record for a single attachment.Connection1 scope
<b>Required scope: </b><code>attachments:read</code> Get the full record for a single attachment.
Authentication
Connected account requiredScopes
attachments:readTags
Get attachments from an objectASANA_GET_ATTACHMENTS_FOR_OBJECT<b>Required scope: </b><code>attachments:read</code> 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.Connection1 scope
<b>Required scope: </b><code>attachments:read</code> 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.
Authentication
Connected account requiredScopes
attachments:readTags
Get audit log eventsASANA_GET_AUDIT_LOG_EVENTSRetrieve the audit log events that have been captured in your domain. This endpoint will return a list of [AuditLogEvent](/reference/audit-log-api) 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](/reference/audit-log-api) 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](/docs/pagination). 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](/reference/audit-log-api) 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.Connection
Retrieve the audit log events that have been captured in your domain. This endpoint will return a list of [AuditLogEvent](/reference/audit-log-api) 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](/reference/audit-log-api) 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](/docs/pagination). 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](/reference/audit-log-api) 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.
Authentication
Connected account requiredTags
Get a budgetASANA_GET_BUDGETReturns the complete budget record for a single budget.Connection
Returns the complete budget record for a single budget.
Authentication
Connected account requiredTags
Get all budgetsASANA_GET_BUDGETSGets all budgets for a given *parent*. This will at most return a list of size 1 for a given *parent*.Connection
Gets all budgets for a given *parent*. This will at most return a list of size 1 for a given *parent*.
Authentication
Connected account requiredTags
Get a custom fieldASANA_GET_CUSTOM_FIELD<b>Required scope: </b><code>custom_fields:read</code> 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.Connection1 scope
<b>Required scope: </b><code>custom_fields:read</code> 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.
Authentication
Connected account requiredScopes
custom_fields:readTags
Get a goal's custom fieldsASANA_GET_CUSTOM_FIELD_SETTINGS_FOR_GOAL<b>Required scope: </b><code>goals:read</code> Returns a list of all of the custom fields settings on a goal, 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](https://developers.asana.com/docs/inputoutput-options) for more information.Connection1 scope
<b>Required scope: </b><code>goals:read</code> Returns a list of all of the custom fields settings on a goal, 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](https://developers.asana.com/docs/inputoutput-options) for more information.
Authentication
Connected account requiredScopes
goals:readTags
Get a portfolio's custom fieldsASANA_GET_CUSTOM_FIELD_SETTINGS_FOR_PORTFOLIO<b>Required scope: </b><code>portfolios:read</code> Returns a list of all of the custom fields settings on a portfolio, in compact form.Connection1 scope
<b>Required scope: </b><code>portfolios:read</code> Returns a list of all of the custom fields settings on a portfolio, in compact form.
Authentication
Connected account requiredScopes
portfolios:readTags
Get a project's custom fieldsASANA_GET_CUSTOM_FIELD_SETTINGS_FOR_PROJECT<b>Required scope: </b><code>projects:read</code> 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](https://developers.asana.com/docs/inputoutput-options) for more information.Connection1 scope
<b>Required scope: </b><code>projects:read</code> 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](https://developers.asana.com/docs/inputoutput-options) for more information.
Authentication
Connected account requiredScopes
projects:readTags
Get a team's custom fieldsASANA_GET_CUSTOM_FIELD_SETTINGS_FOR_TEAM<b>Required scope: </b><code>teams:read</code> Returns a list of all of the custom fields settings on a team, 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](https://developers.asana.com/docs/inputoutput-options) for more information.Connection1 scope
<b>Required scope: </b><code>teams:read</code> Returns a list of all of the custom fields settings on a team, 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](https://developers.asana.com/docs/inputoutput-options) for more information.
Authentication
Connected account requiredScopes
teams:readTags
Get a workspace's custom fieldsASANA_GET_CUSTOM_FIELDS_FOR_WORKSPACE<b>Required scope: </b><code>custom_fields:read</code> Returns a list of the compact representation of all of the custom fields in a workspace.Connection1 scope
<b>Required scope: </b><code>custom_fields:read</code> Returns a list of the compact representation of all of the custom fields in a workspace.
Authentication
Connected account requiredScopes
custom_fields:readTags
Get a custom typeASANA_GET_CUSTOM_TYPEReturns the complete custom type record for a single custom type.Connection
Returns the complete custom type record for a single custom type.
Authentication
Connected account requiredTags
Get all custom types associated with an objectASANA_GET_CUSTOM_TYPESReturns a list of all of the custom types associated with an object. Currently, only projects are supported. 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](https://developers.asana.com/docs/inputoutput-options) for more information.Connection
Returns a list of all of the custom types associated with an object. Currently, only projects are supported. 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](https://developers.asana.com/docs/inputoutput-options) for more information.
Authentication
Connected account requiredTags
Get dependencies from a taskASANA_GET_DEPENDENCIES_FOR_TASK<b>Required scope: </b><code>tasks:read</code> Returns the compact representations of all of the dependencies of a task.Connection1 scope
<b>Required scope: </b><code>tasks:read</code> Returns the compact representations of all of the dependencies of a task.
Authentication
Connected account requiredScopes
tasks:readTags
Get dependents from a taskASANA_GET_DEPENDENTS_FOR_TASK<b>Required scope: </b><code>tasks:read</code> Returns the compact representations of all of the dependents of a task.Connection1 scope
<b>Required scope: </b><code>tasks:read</code> Returns the compact representations of all of the dependents of a task.
Authentication
Connected account requiredScopes
tasks:readTags
Get events on a resourceASANA_GET_EVENTSReturns 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.*Connection
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.*
Authentication
Connected account requiredTags
Get a user's favoritesASANA_GET_FAVORITES_FOR_USER<b>Required scope: </b><code>users:read</code> Returns all of a user's favorites within a specified workspace and of a given type. The results are ordered exactly as they appear in the user's Asana sidebar in the web application. Note that this endpoint currently only returns favorites for the current user (i.e., the user associated with the authentication token).Connection1 scope
<b>Required scope: </b><code>users:read</code> Returns all of a user's favorites within a specified workspace and of a given type. The results are ordered exactly as they appear in the user's Asana sidebar in the web application. Note that this endpoint currently only returns favorites for the current user (i.e., the user associated with the authentication token).
Authentication
Connected account requiredScopes
users:readTags
Get a goalASANA_GET_GOAL<b>Required scope: </b><code>goals:read</code> <table> <tr> <th>Field</th> <th>Required Scope</th> </tr> <tr> <td><code>time_period</code></td> <td><code>time_periods:read</code></td> </tr> </table> Returns the complete goal record for a single goal.Connection1 scope
<b>Required scope: </b><code>goals:read</code> <table> <tr> <th>Field</th> <th>Required Scope</th> </tr> <tr> <td><code>time_period</code></td> <td><code>time_periods:read</code></td> </tr> </table> Returns the complete goal record for a single goal.
Authentication
Connected account requiredScopes
goals:readTags
Get a goal relationshipASANA_GET_GOAL_RELATIONSHIPReturns the complete updated goal relationship record for a single goal relationship.Connection
Returns the complete updated goal relationship record for a single goal relationship.
Authentication
Connected account requiredTags
Get goal relationshipsASANA_GET_GOAL_RELATIONSHIPSReturns compact goal relationship records.Connection
Returns compact goal relationship records.
Authentication
Connected account requiredTags
Get goalsASANA_GET_GOALS<b>Required scope: </b><code>goals:read</code> Returns compact goal records.Connection1 scope
<b>Required scope: </b><code>goals:read</code> Returns compact goal records.
Authentication
Connected account requiredScopes
goals:readTags
Get portfolio itemsASANA_GET_ITEMS_FOR_PORTFOLIO<b>Required scope: </b><code>portfolios:read</code> Get a list of the items in compact form in a portfolio.Connection1 scope
<b>Required scope: </b><code>portfolios:read</code> Get a list of the items in compact form in a portfolio.
Authentication
Connected account requiredScopes
portfolios:readTags
Get a job by idASANA_GET_JOB<b>Required scope: </b><code>jobs:read</code> <table> <tr> <th>Field</th> <th>Required Scope</th> </tr> <tr> <td><code>new_task_template</code></td> <td><code>task_templates:read</code></td> </tr> <tr> <td><code>new_portfolio</code></td> <td><code>portfolios:read</code></td> </tr> <tr> <td><code>new_project</code></td> <td><code>projects:read</code></td> </tr> <tr> <td><code>new_task</code></td> <td><code>tasks:read</code></td> </tr> <tr> <td><code>new_project_template</code></td> <td><code>project_templates:read</code></td> </tr> </table> Returns the full record for a job.Connection1 scope
<b>Required scope: </b><code>jobs:read</code> <table> <tr> <th>Field</th> <th>Required Scope</th> </tr> <tr> <td><code>new_task_template</code></td> <td><code>task_templates:read</code></td> </tr> <tr> <td><code>new_portfolio</code></td> <td><code>portfolios:read</code></td> </tr> <tr> <td><code>new_project</code></td> <td><code>projects:read</code></td> </tr> <tr> <td><code>new_task</code></td> <td><code>tasks:read</code></td> </tr> <tr> <td><code>new_project_template</code></td> <td><code>project_templates:read</code></td> </tr> </table> Returns the full record for a job.
Authentication
Connected account requiredScopes
jobs:readTags
Get a membershipASANA_GET_MEMBERSHIPReturns a `project_membership`, `goal_membership`, `portfolio_membership`, `custom_type_membership`, or `custom_field_membership` record for a membership id.Connection
Returns a `project_membership`, `goal_membership`, `portfolio_membership`, `custom_type_membership`, or `custom_field_membership` record for a membership id.
Authentication
Connected account requiredTags
Get multiple membershipsASANA_GET_MEMBERSHIPSReturns compact `goal_membership`, `project_membership`, `portfolio_membership`, `custom_type_membership`, or `custom_field_membership` records. The possible types for `parent` in this request are `goal`, `project`, `portfolio`, `custom_type`, or `custom_field`. An additional member (user GID or team GID) can be passed in to filter to a specific membership. Alternatively, when `parent` is absent, you can use the `member` and `resource_subtype` parameters together to fetch all memberships of a specific type for a given member. For example, passing `member` as a team GID and `resource_subtype` as `project_membership` will return all project memberships for that team.Connection
Returns compact `goal_membership`, `project_membership`, `portfolio_membership`, `custom_type_membership`, or `custom_field_membership` records. The possible types for `parent` in this request are `goal`, `project`, `portfolio`, `custom_type`, or `custom_field`. An additional member (user GID or team GID) can be passed in to filter to a specific membership. Alternatively, when `parent` is absent, you can use the `member` and `resource_subtype` parameters together to fetch all memberships of a specific type for a given member. For example, passing `member` as a team GID and `resource_subtype` as `project_membership` will return all project memberships for that team.
Authentication
Connected account requiredTags
Get OOO entries for a userASANA_GET_OOO_ENTRIES<b>Required scope: </b><code>ooo_entries:read</code> Returns a list of OOO entries for the specified user.Connection1 scope
<b>Required scope: </b><code>ooo_entries:read</code> Returns a list of OOO entries for the specified user.
Authentication
Connected account requiredScopes
ooo_entries:readTags
Get an OOO entryASANA_GET_OOO_ENTRY<b>Required scope: </b><code>ooo_entries:read</code> Returns the complete OOO entry record for a single OOO entry.Connection1 scope
<b>Required scope: </b><code>ooo_entries:read</code> Returns the complete OOO entry record for a single OOO entry.
Authentication
Connected account requiredScopes
ooo_entries:readTags
Get details on an org export requestASANA_GET_ORGANIZATION_EXPORTReturns details of a previously-requested Organization export.Connection
Returns details of a previously-requested Organization export.
Authentication
Connected account requiredTags
Get parent goals from a goalASANA_GET_PARENT_GOALS_FOR_GOAL<b>Required scope: </b><code>goals:read</code> Returns a compact representation of all of the parent goals of a goal.Connection1 scope
<b>Required scope: </b><code>goals:read</code> Returns a compact representation of all of the parent goals of a goal.
Authentication
Connected account requiredScopes
goals:readTags
Get a portfolioASANA_GET_PORTFOLIO<b>Required scope: </b><code>portfolios:read</code> Returns the complete portfolio record for a single portfolio.Connection1 scope
<b>Required scope: </b><code>portfolios:read</code> Returns the complete portfolio record for a single portfolio.
Authentication
Connected account requiredScopes
portfolios:readTags
Get a portfolio membershipASANA_GET_PORTFOLIO_MEMBERSHIPReturns the complete portfolio record for a single portfolio membership.Connection
Returns the complete portfolio record for a single portfolio membership.
Authentication
Connected account requiredTags
Get multiple portfolio membershipsASANA_GET_PORTFOLIO_MEMBERSHIPSReturns a list of portfolio memberships in compact representation. You must specify `portfolio`, `portfolio` and `user`, or `workspace` and `user`.Connection
Returns a list of portfolio memberships in compact representation. You must specify `portfolio`, `portfolio` and `user`, or `workspace` and `user`.
Authentication
Connected account requiredTags
Get memberships from a portfolioASANA_GET_PORTFOLIO_MEMBERSHIPS_FOR_PORTFOLIOReturns the compact portfolio membership records for the portfolio.Connection
Returns the compact portfolio membership records for the portfolio.
Authentication
Connected account requiredTags
Get multiple portfoliosASANA_GET_PORTFOLIOS<b>Required scope: </b><code>portfolios:read</code> Returns a list of the portfolios in compact representation. The portfolios are filtered based on the following criteria: - If the request is made from a regular API user (PAT or OAuth), then only portfolios owned by the current API user are returned. - If the request is made from a Service Account without the `owner` parameter, then all portfolios across the workspace are returned. - If the request is made from a Service Account with the `owner` parameter, then only portfolios owned by the specified user are returned.Connection1 scope
<b>Required scope: </b><code>portfolios:read</code> Returns a list of the portfolios in compact representation. The portfolios are filtered based on the following criteria: - If the request is made from a regular API user (PAT or OAuth), then only portfolios owned by the current API user are returned. - If the request is made from a Service Account without the `owner` parameter, then all portfolios across the workspace are returned. - If the request is made from a Service Account with the `owner` parameter, then only portfolios owned by the specified user are returned.
Authentication
Connected account requiredScopes
portfolios:readTags
Get a projectASANA_GET_PROJECT<b>Required scope: </b><code>projects:read</code> <table> <tr> <th>Field</th> <th>Required Scope</th> </tr> <tr> <td><code>team</code></td> <td><code>teams:read</code></td> </tr> </table> Returns the complete project record for a single project.Connection1 scope
<b>Required scope: </b><code>projects:read</code> <table> <tr> <th>Field</th> <th>Required Scope</th> </tr> <tr> <td><code>team</code></td> <td><code>teams:read</code></td> </tr> </table> Returns the complete project record for a single project.
Authentication
Connected account requiredScopes
projects:readTags
Get a project briefASANA_GET_PROJECT_BRIEFGet the full record for a project brief.Connection
Get the full record for a project brief.
Authentication
Connected account requiredTags
Get a project membershipASANA_GET_PROJECT_MEMBERSHIPReturns the complete project record for a single project membership.Connection
Returns the complete project record for a single project membership.
Authentication
Connected account requiredTags
Get memberships from a projectASANA_GET_PROJECT_MEMBERSHIPS_FOR_PROJECTReturns the compact project membership records for the project.Connection
Returns the compact project membership records for the project.
Authentication
Connected account requiredTags
Get a project portfolio settingASANA_GET_PROJECT_PORTFOLIO_SETTING<b>Required scope: </b><code>project_portfolio_settings:read</code> Returns the complete project portfolio setting record for a single project portfolio setting.Connection1 scope
<b>Required scope: </b><code>project_portfolio_settings:read</code> Returns the complete project portfolio setting record for a single project portfolio setting.
Authentication
Connected account requiredScopes
project_portfolio_settings:readTags
Get project portfolio settings for a portfolioASANA_GET_PROJECT_PORTFOLIO_SETTINGS_FOR_PORTFOLIO<b>Required scope: </b><code>project_portfolio_settings:read</code> Returns a compact representation of all of the project portfolio settings for the given portfolio.Connection1 scope
<b>Required scope: </b><code>project_portfolio_settings:read</code> Returns a compact representation of all of the project portfolio settings for the given portfolio.
Authentication
Connected account requiredScopes
project_portfolio_settings:readTags
Get project portfolio settings for a projectASANA_GET_PROJECT_PORTFOLIO_SETTINGS_FOR_PROJECT<b>Required scope: </b><code>project_portfolio_settings:read</code> Returns a compact representation of all of the project portfolio settings for the given project.Connection1 scope
<b>Required scope: </b><code>project_portfolio_settings:read</code> Returns a compact representation of all of the project portfolio settings for the given project.
Authentication
Connected account requiredScopes
project_portfolio_settings:readTags
Get a project statusASANA_GET_PROJECT_STATUS*Deprecated: new integrations should prefer the `/status_updates/{status_gid}` route.* Returns the complete record for a single status update.Connection
*Deprecated: new integrations should prefer the `/status_updates/{status_gid}` route.* Returns the complete record for a single status update.
Authentication
Connected account requiredTags
Get statuses from a projectASANA_GET_PROJECT_STATUSES_FOR_PROJECT*Deprecated: new integrations should prefer the `/status_updates` route.* Returns the compact project status update records for all updates on the project.Connection
*Deprecated: new integrations should prefer the `/status_updates` route.* Returns the compact project status update records for all updates on the project.
Authentication
Connected account requiredTags
Get a project templateASANA_GET_PROJECT_TEMPLATE<b>Required scope: </b><code>project_templates:read</code> Returns the complete project template record for a single project template.Connection1 scope
<b>Required scope: </b><code>project_templates:read</code> Returns the complete project template record for a single project template.
Authentication
Connected account requiredScopes
project_templates:readTags
Get multiple project templatesASANA_GET_PROJECT_TEMPLATES<b>Required scope: </b><code>project_templates:read</code> Returns the compact project template records for all project templates in the given team or workspace.Connection1 scope
<b>Required scope: </b><code>project_templates:read</code> Returns the compact project template records for all project templates in the given team or workspace.
Authentication
Connected account requiredScopes
project_templates:readTags
Get a team's project templatesASANA_GET_PROJECT_TEMPLATES_FOR_TEAM<b>Required scope: </b><code>project_templates:read</code> Returns the compact project template records for all project templates in the team.Connection1 scope
<b>Required scope: </b><code>project_templates:read</code> Returns the compact project template records for all project templates in the team.
Authentication
Connected account requiredScopes
project_templates:readTags
Get multiple projectsASANA_GET_PROJECTS<b>Required scope: </b><code>projects:read</code> 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!* **The `team` filter is deprecated.** Please use `GET /memberships` with `{ member: team, resource_subtype: project_membership }` to find projects shared with a team.Connection1 scope
<b>Required scope: </b><code>projects:read</code> 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!* **The `team` filter is deprecated.** Please use `GET /memberships` with `{ member: team, resource_subtype: project_membership }` to find projects shared with a team.
Authentication
Connected account requiredScopes
projects:readTags
Get projects a task is inASANA_GET_PROJECTS_FOR_TASK<b>Required scope: </b><code>projects:read</code> Returns a compact representation of all of the projects the task is in.Connection1 scope
<b>Required scope: </b><code>projects:read</code> Returns a compact representation of all of the projects the task is in.
Authentication
Connected account requiredScopes
projects:readTags
Get a team's projectsASANA_GET_PROJECTS_FOR_TEAM<b>Required scope: </b><code>projects:read</code> Returns the compact project records for all projects in the team.Connection1 scope
<b>Required scope: </b><code>projects:read</code> Returns the compact project records for all projects in the team.
Authentication
Connected account requiredScopes
projects:readTags
Get all projects in a workspaceASANA_GET_PROJECTS_FOR_WORKSPACE<b>Required scope: </b><code>projects:read</code> Returns the compact project records for all projects in the workspace. *Note: This endpoint may timeout for large domains. To fetch projects shared with a specific team, use `GET /memberships` with `member` set to the team GID and `resource_subtype` set to `project_membership`.*Connection1 scope
<b>Required scope: </b><code>projects:read</code> Returns the compact project records for all projects in the workspace. *Note: This endpoint may timeout for large domains. To fetch projects shared with a specific team, use `GET /memberships` with `member` set to the team GID and `resource_subtype` set to `project_membership`.*
Authentication
Connected account requiredScopes
projects:readTags
Get a rateASANA_GET_RATEReturns the complete rate record for a single rate.Connection
Returns the complete rate record for a single rate.
Authentication
Connected account requiredTags
Get multiple ratesASANA_GET_RATESReturns a list of `rate` records. The possible types for `parent` in this request are `project`. An additional `resource` (`user` GID or `placeholder` GID) can be passed in to filter to a specific rate. Modifying placeholder rates is only available for Enterprise and Enterprise+ users.Connection
Returns a list of `rate` records. The possible types for `parent` in this request are `project`. An additional `resource` (`user` GID or `placeholder` GID) can be passed in to filter to a specific rate. Modifying placeholder rates is only available for Enterprise and Enterprise+ users.
Authentication
Connected account requiredTags
Get reactions with an emoji base on an object.ASANA_GET_REACTIONS_ON_OBJECTReturns the reactions with a specified emoji base character on the object.Connection
Returns the reactions with a specified emoji base character on the object.
Authentication
Connected account requiredTags
Get a roleASANA_GET_ROLE<b>Required scope: </b><code>roles:read</code> Returns the complete role record for a single role.Connection1 scope
<b>Required scope: </b><code>roles:read</code> Returns the complete role record for a single role.
Authentication
Connected account requiredScopes
roles:readTags
Get multiple rolesASANA_GET_ROLES<b>Required scope: </b><code>roles:read</code> Returns all RBAC roles for a workspace.Connection1 scope
<b>Required scope: </b><code>roles:read</code> Returns all RBAC roles for a workspace.
Authentication
Connected account requiredScopes
roles:readTags
Get a sectionASANA_GET_SECTIONReturns the complete record for a single section.Connection
Returns the complete record for a single section.
Authentication
Connected account requiredTags
Get sections in a projectASANA_GET_SECTIONS_FOR_PROJECTReturns the compact records for all sections in the specified project.Connection
Returns the compact records for all sections in the specified project.
Authentication
Connected account requiredTags
Get a status updateASANA_GET_STATUSReturns the complete record for a single status update.Connection
Returns the complete record for a single status update.
Authentication
Connected account requiredTags
Get status updates from an objectASANA_GET_STATUSES_FOR_OBJECTReturns the compact status update records for all updates on the object.Connection
Returns the compact status update records for all updates on the object.
Authentication
Connected account requiredTags
Get stories from a goalASANA_GET_STORIES_FOR_GOAL<b>Required scope: </b><code>stories:read</code> Returns the compact records for all stories on the goal.Connection1 scope
<b>Required scope: </b><code>stories:read</code> Returns the compact records for all stories on the goal.
Authentication
Connected account requiredScopes
stories:readTags
Get stories from a taskASANA_GET_STORIES_FOR_TASK<b>Required scope: </b><code>stories:read</code> Returns the compact records for all stories on the task.Connection1 scope
<b>Required scope: </b><code>stories:read</code> Returns the compact records for all stories on the task.
Authentication
Connected account requiredScopes
stories:readTags
Get a storyASANA_GET_STORY<b>Required scope: </b><code>stories:read</code> <table> <tr> <th>Field</th> <th>Required Scope</th> </tr> <tr> <td><code>previews</code></td> <td><code>attachments:read</code></td> </tr> <tr> <td><code>attachments</code></td> <td><code>attachments:read</code></td> </tr> </table> Returns the full record for a single story.Connection1 scope
<b>Required scope: </b><code>stories:read</code> <table> <tr> <th>Field</th> <th>Required Scope</th> </tr> <tr> <td><code>previews</code></td> <td><code>attachments:read</code></td> </tr> <tr> <td><code>attachments</code></td> <td><code>attachments:read</code></td> </tr> </table> Returns the full record for a single story.
Authentication
Connected account requiredScopes
stories:readTags
Get subtasks from a taskASANA_GET_SUBTASKS_FOR_TASK<b>Required scope: </b><code>tasks:read</code> Returns a compact representation of all of the subtasks of a task.Connection1 scope
<b>Required scope: </b><code>tasks:read</code> Returns a compact representation of all of the subtasks of a task.
Authentication
Connected account requiredScopes
tasks:readTags
Get a tagASANA_GET_TAG<b>Required scope: </b><code>tags:read</code> Returns the complete tag record for a single tag.Connection1 scope
<b>Required scope: </b><code>tags:read</code> Returns the complete tag record for a single tag.
Authentication
Connected account requiredScopes
tags:readTags
Get multiple tagsASANA_GET_TAGS<b>Required scope: </b><code>tags:read</code> Returns the compact tag records for some filtered set of tags. Use one or more of the parameters provided to filter the tags returned.Connection1 scope
<b>Required scope: </b><code>tags:read</code> Returns the compact tag records for some filtered set of tags. Use one or more of the parameters provided to filter the tags returned.
Authentication
Connected account requiredScopes
tags:readTags
Get a task's tagsASANA_GET_TAGS_FOR_TASK<b>Required scope: </b><code>tags:read</code> Get a compact representation of all of the tags the task has.Connection1 scope
<b>Required scope: </b><code>tags:read</code> Get a compact representation of all of the tags the task has.
Authentication
Connected account requiredScopes
tags:readTags
Get tags in a workspaceASANA_GET_TAGS_FOR_WORKSPACE<b>Required scope: </b><code>tags:read</code> Returns the compact tag records for some filtered set of tags. Use one or more of the parameters provided to filter the tags returned.Connection1 scope
<b>Required scope: </b><code>tags:read</code> Returns the compact tag records for some filtered set of tags. Use one or more of the parameters provided to filter the tags returned.
Authentication
Connected account requiredScopes
tags:readTags
Get a taskASANA_GET_TASK<b>Required scope: </b><code>tasks:read</code> <table> <tr> <th>Field</th> <th>Required Scope</th> </tr> <tr> <td><code>memberships</code></td> <td><code>projects:read</code>, <code>project_sections:read</code></td> </tr> <tr> <td><code>actual_time_minutes</code></td> <td><code>time_tracking_entries:read</code></td> </tr> </table> Returns the complete task record for a single task.Connection1 scope
<b>Required scope: </b><code>tasks:read</code> <table> <tr> <th>Field</th> <th>Required Scope</th> </tr> <tr> <td><code>memberships</code></td> <td><code>projects:read</code>, <code>project_sections:read</code></td> </tr> <tr> <td><code>actual_time_minutes</code></td> <td><code>time_tracking_entries:read</code></td> </tr> </table> Returns the complete task record for a single task.
Authentication
Connected account requiredScopes
tasks:readTags
Get task count of a projectASANA_GET_TASK_COUNTS_FOR_PROJECT<b>Required scope: </b><code>projects:read</code> <table> <tr> <th>Field</th> <th>Required Scope</th> </tr> <tr> <td><code>team</code></td> <td><code>teams:read</code></td> </tr> </table> Get an object that holds task count fields. **All fields are excluded by default**. You must [opt in](/docs/inputoutput-options) using `opt_fields` to get any information from this endpoint. This endpoint has an additional [rate limit](/docs/rate-limits) and each field counts especially high against our [cost limits](/docs/rate-limits#cost-limits). Milestones are just tasks, so they are included in the `num_tasks`, `num_incomplete_tasks`, and `num_completed_tasks` counts.Connection1 scope
<b>Required scope: </b><code>projects:read</code> <table> <tr> <th>Field</th> <th>Required Scope</th> </tr> <tr> <td><code>team</code></td> <td><code>teams:read</code></td> </tr> </table> Get an object that holds task count fields. **All fields are excluded by default**. You must [opt in](/docs/inputoutput-options) using `opt_fields` to get any information from this endpoint. This endpoint has an additional [rate limit](/docs/rate-limits) and each field counts especially high against our [cost limits](/docs/rate-limits#cost-limits). Milestones are just tasks, so they are included in the `num_tasks`, `num_incomplete_tasks`, and `num_completed_tasks` counts.
Authentication
Connected account requiredScopes
projects:readTags
Get a task for a given custom IDASANA_GET_TASK_FOR_CUSTOM_ID<b>Required scope: </b><code>tasks:read</code> <table> <tr> <th>Field</th> <th>Required Scope</th> </tr> <tr> <td><code>memberships</code></td> <td><code>projects:read</code>, <code>project_sections:read</code></td> </tr> <tr> <td><code>actual_time_minutes</code></td> <td><code>time_tracking_entries:read</code></td> </tr> </table> Returns a task given a custom ID shortcode.Connection1 scope
<b>Required scope: </b><code>tasks:read</code> <table> <tr> <th>Field</th> <th>Required Scope</th> </tr> <tr> <td><code>memberships</code></td> <td><code>projects:read</code>, <code>project_sections:read</code></td> </tr> <tr> <td><code>actual_time_minutes</code></td> <td><code>time_tracking_entries:read</code></td> </tr> </table> Returns a task given a custom ID shortcode.
Authentication
Connected account requiredScopes
tasks:readTags
Get a task templateASANA_GET_TASK_TEMPLATE<b>Required scope: </b><code>task_templates:read</code> Returns the complete task template record for a single task template.Connection1 scope
<b>Required scope: </b><code>task_templates:read</code> Returns the complete task template record for a single task template.
Authentication
Connected account requiredScopes
task_templates:readTags
Get multiple task templatesASANA_GET_TASK_TEMPLATES<b>Required scope: </b><code>task_templates:read</code> Returns the compact task template records for some filtered set of task templates. You must specify a `project`Connection1 scope
<b>Required scope: </b><code>task_templates:read</code> Returns the compact task template records for some filtered set of task templates. You must specify a `project`
Authentication
Connected account requiredScopes
task_templates:readTags
Get multiple tasksASANA_GET_TASKS<b>Required scope: </b><code>tasks:read</code> 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](/reference/searchtasksforworkspace).Connection1 scope
<b>Required scope: </b><code>tasks:read</code> 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](/reference/searchtasksforworkspace).
Authentication
Connected account requiredScopes
tasks:readTags
Get tasks from a projectASANA_GET_TASKS_FOR_PROJECT<b>Required scope: </b><code>tasks:read</code> 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.Connection1 scope
<b>Required scope: </b><code>tasks:read</code> 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.
Authentication
Connected account requiredScopes
tasks:readTags
Get tasks from a sectionASANA_GET_TASKS_FOR_SECTION<b>Required scope: </b><code>tasks:read</code> *Board view only*: Returns the compact section records for all tasks within the given section.Connection1 scope
<b>Required scope: </b><code>tasks:read</code> *Board view only*: Returns the compact section records for all tasks within the given section.
Authentication
Connected account requiredScopes
tasks:readTags
Get tasks from a tagASANA_GET_TASKS_FOR_TAG<b>Required scope: </b><code>tasks:read</code> Returns the compact task records for all tasks with the given tag. Tasks can have more than one tag at a time.Connection1 scope
<b>Required scope: </b><code>tasks:read</code> Returns the compact task records for all tasks with the given tag. Tasks can have more than one tag at a time.
Authentication
Connected account requiredScopes
tasks:readTags
Get tasks from a user task listASANA_GET_TASKS_FOR_USER_TASK_LIST<b>Required scope: </b><code>tasks:read</code> 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.)*Connection1 scope
<b>Required scope: </b><code>tasks:read</code> 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.)*
Authentication
Connected account requiredScopes
tasks:readTags
Get a teamASANA_GET_TEAM<b>Required scope: </b><code>teams:read</code> Returns the full record for a single team.Connection1 scope
<b>Required scope: </b><code>teams:read</code> Returns the full record for a single team.
Authentication
Connected account requiredScopes
teams:readTags
Get a team membershipASANA_GET_TEAM_MEMBERSHIP<b>Required scope: </b><code>team_memberships:read</code> <table> <tr> <th>Field</th> <th>Required Scope</th> </tr> <tr> <td><code>team</code></td> <td><code>teams:read</code></td> </tr> </table> Returns the complete team membership record for a single team membership.Connection1 scope
<b>Required scope: </b><code>team_memberships:read</code> <table> <tr> <th>Field</th> <th>Required Scope</th> </tr> <tr> <td><code>team</code></td> <td><code>teams:read</code></td> </tr> </table> Returns the complete team membership record for a single team membership.
Authentication
Connected account requiredScopes
team_memberships:readTags
Get team membershipsASANA_GET_TEAM_MEMBERSHIPS<b>Required scope: </b><code>team_memberships:read</code> Returns compact team membership records.Connection1 scope
<b>Required scope: </b><code>team_memberships:read</code> Returns compact team membership records.
Authentication
Connected account requiredScopes
team_memberships:readTags
Get memberships from a teamASANA_GET_TEAM_MEMBERSHIPS_FOR_TEAM<b>Required scope: </b><code>team_memberships:read</code> Returns the compact team memberships for the team.Connection1 scope
<b>Required scope: </b><code>team_memberships:read</code> Returns the compact team memberships for the team.
Authentication
Connected account requiredScopes
team_memberships:readTags
Get memberships from a userASANA_GET_TEAM_MEMBERSHIPS_FOR_USER<b>Required scope: </b><code>team_memberships:read</code> Returns the compact team membership records for the user.Connection1 scope
<b>Required scope: </b><code>team_memberships:read</code> Returns the compact team membership records for the user.
Authentication
Connected account requiredScopes
team_memberships:readTags
Get teams for a userASANA_GET_TEAMS_FOR_USER<b>Required scope: </b><code>teams:read</code> Returns the compact records for all teams to which the given user is assigned.Connection1 scope
<b>Required scope: </b><code>teams:read</code> Returns the compact records for all teams to which the given user is assigned.
Authentication
Connected account requiredScopes
teams:readTags
Get teams in a workspaceASANA_GET_TEAMS_FOR_WORKSPACE<b>Required scope: </b><code>teams:read</code> Returns the compact records for all teams in the workspace visible to the authorized user.Connection1 scope
<b>Required scope: </b><code>teams:read</code> Returns the compact records for all teams in the workspace visible to the authorized user.
Authentication
Connected account requiredScopes
teams:readTags
Get a time periodASANA_GET_TIME_PERIODReturns the full record for a single time period.Connection
Returns the full record for a single time period.
Authentication
Connected account requiredTags
Get time periodsASANA_GET_TIME_PERIODSReturns compact time period records.Connection
Returns compact time period records.
Authentication
Connected account requiredTags
Get time tracking categories for a workspaceASANA_GET_TIME_TRACKING_CATEGORIES<b>Required scope: </b><code>time_tracking_categories:read</code> Returns a paginated list of time tracking categories for a given workspace.Connection1 scope
<b>Required scope: </b><code>time_tracking_categories:read</code> Returns a paginated list of time tracking categories for a given workspace.
Authentication
Connected account requiredScopes
time_tracking_categories:readTags
Get a time tracking categoryASANA_GET_TIME_TRACKING_CATEGORY<b>Required scope: </b><code>time_tracking_categories:read</code> Returns the complete time tracking category record for a single time tracking category.Connection1 scope
<b>Required scope: </b><code>time_tracking_categories:read</code> Returns the complete time tracking category record for a single time tracking category.
Authentication
Connected account requiredScopes
time_tracking_categories:readTags
Get multiple time tracking entriesASANA_GET_TIME_TRACKING_ENTRIES<b>Required scope: </b><code>time_tracking_entries:read</code> Returns a list of time tracking entries filtered to a task, attributed project, portfolio or user.Connection1 scope
<b>Required scope: </b><code>time_tracking_entries:read</code> Returns a list of time tracking entries filtered to a task, attributed project, portfolio or user.
Authentication
Connected account requiredScopes
time_tracking_entries:readTags
Get time tracking entries for a taskASANA_GET_TIME_TRACKING_ENTRIES_FOR_TASK<b>Required scope: </b><code>time_tracking_entries:read</code> Returns time tracking entries for a given task.Connection1 scope
<b>Required scope: </b><code>time_tracking_entries:read</code> Returns time tracking entries for a given task.
Authentication
Connected account requiredScopes
time_tracking_entries:readTags
Get time tracking entries for a time tracking categoryASANA_GET_TIME_TRACKING_ENTRIES_FOR_TIME_TRACKING_CATEGORY<b>Required scope: </b><code>time_tracking_categories:read</code> Returns a paginated list of time tracking entries filtered by a given time tracking category.Connection1 scope
<b>Required scope: </b><code>time_tracking_categories:read</code> Returns a paginated list of time tracking entries filtered by a given time tracking category.
Authentication
Connected account requiredScopes
time_tracking_categories:readTags
Get a time tracking entryASANA_GET_TIME_TRACKING_ENTRY<b>Required scope: </b><code>time_tracking_entries:read</code> Returns the complete time tracking entry record for a single time tracking entry.Connection1 scope
<b>Required scope: </b><code>time_tracking_entries:read</code> Returns the complete time tracking entry record for a single time tracking entry.
Authentication
Connected account requiredScopes
time_tracking_entries:readTags
Get a timesheet approval statusASANA_GET_TIMESHEET_APPROVAL_STATUS<b>Required scope: </b><code>timesheet_approval_statuses:read</code> Returns the complete timesheet approval status record for a single timesheet approval status.Connection1 scope
<b>Required scope: </b><code>timesheet_approval_statuses:read</code> Returns the complete timesheet approval status record for a single timesheet approval status.
Authentication
Connected account requiredScopes
timesheet_approval_statuses:readTags
Get multiple timesheet approval statusesASANA_GET_TIMESHEET_APPROVAL_STATUSES<b>Required scope: </b><code>timesheet_approval_statuses:read</code> Returns a list of timesheet approval statuses filtered by workspace and optionally by user, date range, or approval status.Connection1 scope
<b>Required scope: </b><code>timesheet_approval_statuses:read</code> Returns a list of timesheet approval statuses filtered by workspace and optionally by user, date range, or approval status.
Authentication
Connected account requiredScopes
timesheet_approval_statuses:readTags
Get a userASANA_GET_USER<b>Required scope: </b><code>users:read</code> Returns the full user record for the single user with the provided ID.Connection1 scope
<b>Required scope: </b><code>users:read</code> Returns the full user record for the single user with the provided ID.
Authentication
Connected account requiredScopes
users:readTags
Get a user in a workspace or organizationASANA_GET_USER_FOR_WORKSPACE<b>Required scope: </b><code>users:read</code> Returns the full user record for the single user with the provided ID in the specified workspace or organization.Connection1 scope
<b>Required scope: </b><code>users:read</code> Returns the full user record for the single user with the provided ID in the specified workspace or organization.
Authentication
Connected account requiredScopes
users:readTags
Get a user task listASANA_GET_USER_TASK_LIST<b>Required scope: </b><code>tasks:read</code> Returns the full record for a user task list.Connection1 scope
<b>Required scope: </b><code>tasks:read</code> Returns the full record for a user task list.
Authentication
Connected account requiredScopes
tasks:readTags
Get a user's task listASANA_GET_USER_TASK_LIST_FOR_USER<b>Required scope: </b><code>tasks:read</code> Returns the full record for a user's task list.Connection1 scope
<b>Required scope: </b><code>tasks:read</code> Returns the full record for a user's task list.
Authentication
Connected account requiredScopes
tasks:readTags
Get multiple usersASANA_GET_USERS<b>Required scope: </b><code>users:read</code> 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.Connection1 scope
<b>Required scope: </b><code>users:read</code> 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.
Authentication
Connected account requiredScopes
users:readTags
Get users in a teamASANA_GET_USERS_FOR_TEAM<b>Required scope: </b><code>users:read</code> 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.Connection1 scope
<b>Required scope: </b><code>users:read</code> 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.
Authentication
Connected account requiredScopes
users:readTags
Get users in a workspace or organizationASANA_GET_USERS_FOR_WORKSPACE<b>Required scope: </b><code>users:read</code> 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.Connection1 scope
<b>Required scope: </b><code>users:read</code> 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.
Authentication
Connected account requiredScopes
users:readTags
Get a webhookASANA_GET_WEBHOOK<b>Required scope: </b><code>webhooks:read</code> Returns the full record for the given webhook.Connection1 scope
<b>Required scope: </b><code>webhooks:read</code> Returns the full record for the given webhook.
Authentication
Connected account requiredScopes
webhooks:readTags
Get multiple webhooksASANA_GET_WEBHOOKS<b>Required scope: </b><code>webhooks:read</code> Get the compact representation of all webhooks your app has registered for the authenticated user in the given workspace.Connection1 scope
<b>Required scope: </b><code>webhooks:read</code> Get the compact representation of all webhooks your app has registered for the authenticated user in the given workspace.
Authentication
Connected account requiredScopes
webhooks:readTags
Get a workspaceASANA_GET_WORKSPACE<b>Required scope: </b><code>workspaces:read</code> Returns the full workspace record for a single workspace.Connection1 scope
<b>Required scope: </b><code>workspaces:read</code> Returns the full workspace record for a single workspace.
Authentication
Connected account requiredScopes
workspaces:readTags
Get workspace eventsASANA_GET_WORKSPACE_EVENTSReturns the full record for all events that have occurred since the sync token was created. The response is a list of events and the schema of each event is as described [here](/reference/events). Asana limits a single sync token to 1000 events. If more than 1000 events exist for a given domain, `has_more: true` will be returned in the response, indicating that there are more events to pull.Connection
Returns the full record for all events that have occurred since the sync token was created. The response is a list of events and the schema of each event is as described [here](/reference/events). Asana limits a single sync token to 1000 events. If more than 1000 events exist for a given domain, `has_more: true` will be returned in the response, indicating that there are more events to pull.
Authentication
Connected account requiredTags
Get a workspace membershipASANA_GET_WORKSPACE_MEMBERSHIPReturns the complete workspace record for a single workspace membership.Connection
Returns the complete workspace record for a single workspace membership.
Authentication
Connected account requiredTags
Get workspace memberships for a userASANA_GET_WORKSPACE_MEMBERSHIPS_FOR_USERReturns the compact workspace membership records for the user.Connection
Returns the compact workspace membership records for the user.
Authentication
Connected account requiredTags
Get the workspace memberships for a workspaceASANA_GET_WORKSPACE_MEMBERSHIPS_FOR_WORKSPACEReturns the compact workspace membership records for the workspace.Connection
Returns the compact workspace membership records for the workspace.
Authentication
Connected account requiredTags
Get multiple workspacesASANA_GET_WORKSPACES<b>Required scope: </b><code>workspaces:read</code> Returns the compact records for all workspaces visible to the authorized user.Connection1 scope
<b>Required scope: </b><code>workspaces:read</code> Returns the compact records for all workspaces visible to the authorized user.
Authentication
Connected account requiredScopes
workspaces:readTags
Reorder a custom field's enumASANA_INSERT_ENUM_OPTION_FOR_CUSTOM_FIELD<b>Required scope: </b><code>custom_fields:write</code> Moves a particular enum option to be either before or after another specified enum option in the custom field. Locked custom fields can only be reordered by the user who locked the field.Connection1 scope
<b>Required scope: </b><code>custom_fields:write</code> Moves a particular enum option to be either before or after another specified enum option in the custom field. Locked custom fields can only be reordered by the user who locked the field.
Authentication
Connected account requiredScopes
custom_fields:writeTags
Move or Insert sectionsASANA_INSERT_SECTION_FOR_PROJECTMove sections relative to each other. One of `before_section` or `after_section` is required. Sections cannot be moved between projects. Returns an empty data block.Connection
Move sections relative to each other. One of `before_section` or `after_section` is required. Sections cannot be moved between projects. Returns an empty data block.
Authentication
Connected account requiredTags
Instantiate a project from a project templateASANA_INSTANTIATE_PROJECT<b>Required scope: </b><code>projects:write</code> Creates and returns a job that will asynchronously handle the project instantiation. To form this request, it is recommended to first make a request to [get a project template](/reference/getprojecttemplate). Then, from the response, copy the `gid` from the object in the `requested_dates` array. This `gid` should be used in `requested_dates` to instantiate a project. _Note: The body of this request will differ if your workspace is an organization. To determine if your workspace is an organization, use the [is_organization](/reference/workspaces) parameter._Connection1 scope
<b>Required scope: </b><code>projects:write</code> Creates and returns a job that will asynchronously handle the project instantiation. To form this request, it is recommended to first make a request to [get a project template](/reference/getprojecttemplate). Then, from the response, copy the `gid` from the object in the `requested_dates` array. This `gid` should be used in `requested_dates` to instantiate a project. _Note: The body of this request will differ if your workspace is an organization. To determine if your workspace is an organization, use the [is_organization](/reference/workspaces) parameter._
Authentication
Connected account requiredScopes
projects:writeTags
Instantiate a task from a task templateASANA_INSTANTIATE_TASKCreates and returns a job that will asynchronously handle the task instantiation.Connection
Creates and returns a job that will asynchronously handle the task instantiation.
Authentication
Connected account requiredTags
Create a project template from a projectASANA_PROJECT_SAVE_AS_TEMPLATECreates and returns a job that will asynchronously handle the project template creation.Connection
Creates and returns a job that will asynchronously handle the project template creation.
Authentication
Connected account requiredTags
Reject an access requestASANA_REJECT_ACCESS_REQUESTRejects an access request for a target object.Connection
Rejects an access request for a target object.
Authentication
Connected account requiredTags
Remove a custom field from a goalASANA_REMOVE_CUSTOM_FIELD_SETTING_FOR_GOAL<b>Required scope: </b><code>goals:write</code> Removes a custom field setting from a goal.Connection1 scope
<b>Required scope: </b><code>goals:write</code> Removes a custom field setting from a goal.
Authentication
Connected account requiredScopes
goals:writeTags
Remove a custom field from a portfolioASANA_REMOVE_CUSTOM_FIELD_SETTING_FOR_PORTFOLIO<b>Required scope: </b><code>portfolios:write</code> Removes a custom field setting from a portfolio.Connection1 scope
<b>Required scope: </b><code>portfolios:write</code> Removes a custom field setting from a portfolio.
Authentication
Connected account requiredScopes
portfolios:writeTags
Remove a custom field from a projectASANA_REMOVE_CUSTOM_FIELD_SETTING_FOR_PROJECT<b>Required scope: </b><code>projects:write</code> Removes a custom field setting from a project.Connection1 scope
<b>Required scope: </b><code>projects:write</code> Removes a custom field setting from a project.
Authentication
Connected account requiredScopes
projects:writeTags
Unlink dependencies from a taskASANA_REMOVE_DEPENDENCIES_FOR_TASK<b>Required scope: </b><code>tasks:write</code> Unlinks a set of dependencies from this task.Connection1 scope
<b>Required scope: </b><code>tasks:write</code> Unlinks a set of dependencies from this task.
Authentication
Connected account requiredScopes
tasks:writeTags
Unlink dependents from a taskASANA_REMOVE_DEPENDENTS_FOR_TASK<b>Required scope: </b><code>tasks:write</code> Unlinks a set of dependents from this task.Connection1 scope
<b>Required scope: </b><code>tasks:write</code> Unlinks a set of dependents from this task.
Authentication
Connected account requiredScopes
tasks:writeTags
Remove followers from a taskASANA_REMOVE_FOLLOWER_FOR_TASK<b>Required scope: </b><code>tasks:write</code> Removes each of the specified followers from the task if they are following. Returns the complete, updated record for the affected task.Connection1 scope
<b>Required scope: </b><code>tasks:write</code> Removes each of the specified followers from the task if they are following. Returns the complete, updated record for the affected task.
Authentication
Connected account requiredScopes
tasks:writeTags
Remove a collaborator from a goalASANA_REMOVE_FOLLOWERSRemoves followers from a goal. Returns the goal the followers were removed from. Each goal can be associated with zero or more followers in the system. Requests to add/remove followers, if successful, will return the complete updated goal record, described above.Connection
Removes followers from a goal. Returns the goal the followers were removed from. Each goal can be associated with zero or more followers in the system. Requests to add/remove followers, if successful, will return the complete updated goal record, described above.
Authentication
Connected account requiredTags
Remove followers from a projectASANA_REMOVE_FOLLOWERS_FOR_PROJECTRemoves the specified list of users from following the project, this will not affect project membership status. Returns the updated project record.Connection
Removes the specified list of users from following the project, this will not affect project membership status. Returns the updated project record.
Authentication
Connected account requiredTags
Remove a portfolio itemASANA_REMOVE_ITEM_FOR_PORTFOLIO<b>Required scope: </b><code>portfolios:write</code> Remove an item from a portfolio. Returns an empty data block.Connection1 scope
<b>Required scope: </b><code>portfolios:write</code> Remove an item from a portfolio. Returns an empty data block.
Authentication
Connected account requiredScopes
portfolios:writeTags
Remove users from a portfolioASANA_REMOVE_MEMBERS_FOR_PORTFOLIORemoves the specified list of users from members of the portfolio. Returns the updated portfolio record.Connection
Removes the specified list of users from members of the portfolio. Returns the updated portfolio record.
Authentication
Connected account requiredTags
Remove users from a projectASANA_REMOVE_MEMBERS_FOR_PROJECTRemoves the specified list of users from members of the project. Returns the updated project record.Connection
Removes the specified list of users from members of the project. Returns the updated project record.
Authentication
Connected account requiredTags
Remove a project from a taskASANA_REMOVE_PROJECT_FOR_TASK<b>Required scope: </b><code>tasks:write</code> Removes the task from the specified project. The task will still exist in the system, but it will not be in the project anymore. Returns an empty data block.Connection1 scope
<b>Required scope: </b><code>tasks:write</code> Removes the task from the specified project. The task will still exist in the system, but it will not be in the project anymore. Returns an empty data block.
Authentication
Connected account requiredScopes
tasks:writeTags
Removes a supporting goal relationshipASANA_REMOVE_SUPPORTING_RELATIONSHIPRemoves a goal relationship for a given parent goal.Connection
Removes a goal relationship for a given parent goal.
Authentication
Connected account requiredTags
Remove a tag from a taskASANA_REMOVE_TAG_FOR_TASK<b>Required scope: </b><code>tasks:write</code> Removes a tag from a task. Returns an empty data block.Connection1 scope
<b>Required scope: </b><code>tasks:write</code> Removes a tag from a task. Returns an empty data block.
Authentication
Connected account requiredScopes
tasks:writeTags
Remove a user from a teamASANA_REMOVE_USER_FOR_TEAMThe user making this call must be a member of the team in order to remove themselves or others.Connection
The user making this call must be a member of the team in order to remove themselves or others.
Authentication
Connected account requiredTags
Remove a user from a workspace or organizationASANA_REMOVE_USER_FOR_WORKSPACERemove a user from a workspace or organization. The user making this call must be an admin in the workspace. The user can be referenced by their globally unique user ID or their email address. When invoked using a **Service Account Token (SAT)**, this endpoint follows the same behavior as the [SCIM API Delete endpoint](/docs/scim). To learn more about how Asana handles user deprovisioning, refer to our [Help Center article on deprovisioning users](https://help.asana.com/s/article/user-deprovisioning). When invoked using a **Personal Access Token (PAT)**, the endpoint behaves similarly, except that ownership of the user’s resources is transferred to the **PAT owner** instead of the admin [specified in the Admin Console](https://help.asana.com/s/article/user-deprovisioning#gl-deprovisioning). **Note:** If you wish to retain access to a user’s private resources (i.e., those visible only to that user), you have to make them public manually (or ask the user to do so) before removal. Returns an empty data record.Connection
Remove a user from a workspace or organization. The user making this call must be an admin in the workspace. The user can be referenced by their globally unique user ID or their email address. When invoked using a **Service Account Token (SAT)**, this endpoint follows the same behavior as the [SCIM API Delete endpoint](/docs/scim). To learn more about how Asana handles user deprovisioning, refer to our [Help Center article on deprovisioning users](https://help.asana.com/s/article/user-deprovisioning). When invoked using a **Personal Access Token (PAT)**, the endpoint behaves similarly, except that ownership of the user’s resources is transferred to the **PAT owner** instead of the admin [specified in the Admin Console](https://help.asana.com/s/article/user-deprovisioning#gl-deprovisioning). **Note:** If you wish to retain access to a user’s private resources (i.e., those visible only to that user), you have to make them public manually (or ask the user to do so) before removal. Returns an empty data record.
Authentication
Connected account requiredTags
Search projects in a workspaceASANA_SEARCH_PROJECTS_FOR_WORKSPACE<b>Required scope: </b><code>projects:read</code> To mirror the functionality of the Asana web app's advanced search feature, the Asana API has a project search endpoint that allows you to build complex filters to find and retrieve the exact data you need. #### Premium access 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: - The workspace in which the search is being performed is a premium workspace - The user is a member of a premium team inside the workspace 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. #### Pagination 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](/docs/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. #### Eventual consistency 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 project 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. Because of this delay, the search endpoint is not suited for use cases that require immediate consistency after writes. If you need read-your-write behavior or strongly consistent results, we recommend using [Get multiple projects](/reference/getprojects) instead. #### Rate limits You may receive a `429 Too Many Requests` response if you hit any of our [rate limits](/docs/rate-limits). #### Custom field parameters | 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, the query parameter to find projects 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 fieldConnection1 scope
<b>Required scope: </b><code>projects:read</code> To mirror the functionality of the Asana web app's advanced search feature, the Asana API has a project search endpoint that allows you to build complex filters to find and retrieve the exact data you need. #### Premium access 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: - The workspace in which the search is being performed is a premium workspace - The user is a member of a premium team inside the workspace 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. #### Pagination 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](/docs/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. #### Eventual consistency 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 project 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. Because of this delay, the search endpoint is not suited for use cases that require immediate consistency after writes. If you need read-your-write behavior or strongly consistent results, we recommend using [Get multiple projects](/reference/getprojects) instead. #### Rate limits You may receive a `429 Too Many Requests` response if you hit any of our [rate limits](/docs/rate-limits). #### Custom field parameters | 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, the query parameter to find projects 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
Authentication
Connected account requiredScopes
projects:readTags
Search tasks in a workspaceASANA_SEARCH_TASKS_FOR_WORKSPACE<b>Required scope: </b><code>tasks:read</code> 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. #### Premium access 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: - The workspace in which the search is being performed is a premium workspace - The user is a member of a premium team inside the workspace 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. #### Pagination 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](/docs/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. #### Eventual consistency 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. Because of this delay, the search endpoint is not suited for use cases that require immediate consistency after writes. If you need read-your-write behavior or strongly consistent results, we recommend using [Get multiple tasks](/reference/gettasks) instead. #### Rate limits You may receive a `429 Too Many Requests` response if you hit any of our [rate limits](/docs/rate-limits). #### Custom field parameters | 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}.value | Date | ISO 8601 date string (yyyy-mm-dd) | | 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 | | custom_fields.{gid}.before | Date only | ISO 8601 date string (yyyy-mm-dd) | | custom_fields.{gid}.after | Date only | ISO 8601 date string (yyyy-mm-dd) | For example, if the gid of the custom field is 12345, the 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`. To find tasks with a date custom field before April 21, 2026, use `custom_fields.12345.before=2026-04-21`. **Not Supported**: searching for multiple exact matches of a custom field, searching for multi-enum custom field #### Custom task type parameters | Parameter name | Accepted type | |---|---| | custom_types.{gid}.custom_type_status_option.gid | Enum option GID | This parameter filters tasks by their custom task status option. The `{gid}` is the GID of the custom task type, and the value is the GID of a valid status option for that type's status field. **Requirements**: - `resource_subtype=custom` must be set when using this parameter. - Only one `custom_types.*` parameter may be specified per request. - The provided custom task type GID must reference a valid custom object type. - The status option GID must be a valid option for the custom type's status field. - Cannot be combined with `custom_fields.{status_field_gid}.value` when `{status_field_gid}` is the status field belonging to the same custom task type. For example, to find custom tasks of type `12345` with status option `67890`: `custom_types.12345.custom_type_status_option.gid=67890&resource_subtype=custom`. *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.*Connection1 scope
<b>Required scope: </b><code>tasks:read</code> 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. #### Premium access 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: - The workspace in which the search is being performed is a premium workspace - The user is a member of a premium team inside the workspace 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. #### Pagination 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](/docs/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. #### Eventual consistency 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. Because of this delay, the search endpoint is not suited for use cases that require immediate consistency after writes. If you need read-your-write behavior or strongly consistent results, we recommend using [Get multiple tasks](/reference/gettasks) instead. #### Rate limits You may receive a `429 Too Many Requests` response if you hit any of our [rate limits](/docs/rate-limits). #### Custom field parameters | 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}.value | Date | ISO 8601 date string (yyyy-mm-dd) | | 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 | | custom_fields.{gid}.before | Date only | ISO 8601 date string (yyyy-mm-dd) | | custom_fields.{gid}.after | Date only | ISO 8601 date string (yyyy-mm-dd) | For example, if the gid of the custom field is 12345, the 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`. To find tasks with a date custom field before April 21, 2026, use `custom_fields.12345.before=2026-04-21`. **Not Supported**: searching for multiple exact matches of a custom field, searching for multi-enum custom field #### Custom task type parameters | Parameter name | Accepted type | |---|---| | custom_types.{gid}.custom_type_status_option.gid | Enum option GID | This parameter filters tasks by their custom task status option. The `{gid}` is the GID of the custom task type, and the value is the GID of a valid status option for that type's status field. **Requirements**: - `resource_subtype=custom` must be set when using this parameter. - Only one `custom_types.*` parameter may be specified per request. - The provided custom task type GID must reference a valid custom object type. - The status option GID must be a valid option for the custom type's status field. - Cannot be combined with `custom_fields.{status_field_gid}.value` when `{status_field_gid}` is the status field belonging to the same custom task type. For example, to find custom tasks of type `12345` with status option `67890`: `custom_types.12345.custom_type_status_option.gid=67890&resource_subtype=custom`. *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.*
Authentication
Connected account requiredScopes
tasks:readTags
Set the parent of a taskASANA_SET_PARENT_FOR_TASK<b>Required scope: </b><code>tasks:write</code> Updates the parent of a given task. This endpoint can be used to make a task a subtask of another task, or to remove its existing parent. When using `insert_before` and `insert_after`, at most one of those two options can be specified, and they must already be subtasks of the parent. Returns the complete, updated record of the affected [task](/reference/tasks#/task).Connection1 scope
<b>Required scope: </b><code>tasks:write</code> Updates the parent of a given task. This endpoint can be used to make a task a subtask of another task, or to remove its existing parent. When using `insert_before` and `insert_after`, at most one of those two options can be specified, and they must already be subtasks of the parent. Returns the complete, updated record of the affected [task](/reference/tasks#/task).
Authentication
Connected account requiredScopes
tasks:writeTags
Trigger a ruleASANA_TRIGGER_RULETrigger a rule which uses an ["incoming web request"](/docs/incoming-web-requests) trigger.Connection
Trigger a rule which uses an ["incoming web request"](/docs/incoming-web-requests) trigger.
Authentication
Connected account requiredTags
Get objects via typeaheadASANA_TYPEAHEAD_FOR_WORKSPACE<b>Required scope: </b><code>workspaces.typeahead:read</code> 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. The `agent` type returns only agents, currently limited to AI Teammates, which are Asana's first-party agents. The `actor` type returns a combined set of users and agents.Connection1 scope
<b>Required scope: </b><code>workspaces.typeahead:read</code> 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. The `agent` type returns only agents, currently limited to AI Teammates, which are Asana's first-party agents. The `actor` type returns a combined set of users and agents.
Authentication
Connected account requiredScopes
workspaces.typeahead:readTags
Update an allocationASANA_UPDATE_ALLOCATIONAn existing allocation can be updated by making a PUT request on the URL for that allocation. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Returns the complete updated allocation record.Connection
An existing allocation can be updated by making a PUT request on the URL for that allocation. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Returns the complete updated allocation record.
Authentication
Connected account requiredTags
Update a budgetASANA_UPDATE_BUDGETAn existing budget can be updated by making a PUT request on the URL for that budget. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged.Connection
An existing budget can be updated by making a PUT request on the URL for that budget. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged.
Authentication
Connected account requiredTags
Update a custom fieldASANA_UPDATE_CUSTOM_FIELD<b>Required scope: </b><code>custom_fields:write</code> A specific, existing custom field can be updated by making a PUT request on the URL for that custom field. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged When using this method, it is best to specify only those fields you wish to change, or else you may overwrite changes made by another user since you last retrieved the custom field. A custom field’s `type` cannot be updated. An enum custom field’s `enum_options` cannot be updated with this endpoint. Instead see “Work With Enum Options” for information on how to update `enum_options`. Locked custom fields can only be updated by the user who locked the field. Returns the complete updated custom field record.Connection1 scope
<b>Required scope: </b><code>custom_fields:write</code> A specific, existing custom field can be updated by making a PUT request on the URL for that custom field. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged When using this method, it is best to specify only those fields you wish to change, or else you may overwrite changes made by another user since you last retrieved the custom field. A custom field’s `type` cannot be updated. An enum custom field’s `enum_options` cannot be updated with this endpoint. Instead see “Work With Enum Options” for information on how to update `enum_options`. Locked custom fields can only be updated by the user who locked the field. Returns the complete updated custom field record.
Authentication
Connected account requiredScopes
custom_fields:writeTags
Update an enum optionASANA_UPDATE_ENUM_OPTION<b>Required scope: </b><code>custom_fields:write</code> Updates an existing enum option. Enum custom fields require at least one enabled enum option. Locked custom fields can only be updated by the user who locked the field. Returns the full record of the updated enum option.Connection1 scope
<b>Required scope: </b><code>custom_fields:write</code> Updates an existing enum option. Enum custom fields require at least one enabled enum option. Locked custom fields can only be updated by the user who locked the field. Returns the full record of the updated enum option.
Authentication
Connected account requiredScopes
custom_fields:writeTags
Update a goalASANA_UPDATE_GOALAn existing goal can be updated by making a PUT request on the URL for that goal. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Returns the complete updated goal record.Connection
An existing goal can be updated by making a PUT request on the URL for that goal. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Returns the complete updated goal record.
Authentication
Connected account requiredTags
Update a goal metricASANA_UPDATE_GOAL_METRICUpdates a goal's existing metric's `current_number_value` if one exists, otherwise responds with a 400 status code. Returns the complete updated goal metric record.Connection
Updates a goal's existing metric's `current_number_value` if one exists, otherwise responds with a 400 status code. Returns the complete updated goal metric record.
Authentication
Connected account requiredTags
Update a goal relationshipASANA_UPDATE_GOAL_RELATIONSHIPAn existing goal relationship can be updated by making a PUT request on the URL for that goal relationship. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Returns the complete updated goal relationship record.Connection
An existing goal relationship can be updated by making a PUT request on the URL for that goal relationship. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Returns the complete updated goal relationship record.
Authentication
Connected account requiredTags
Update a membershipASANA_UPDATE_MEMBERSHIPAn existing membership can be updated by making a `PUT` request on the membership. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Memberships on `goals`, `projects`, `portfolios`, `custom_types`, and `custom_fields` can be updated. Returns the full record of the updated membership.Connection
An existing membership can be updated by making a `PUT` request on the membership. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Memberships on `goals`, `projects`, `portfolios`, `custom_types`, and `custom_fields` can be updated. Returns the full record of the updated membership.
Authentication
Connected account requiredTags
Update an OOO entryASANA_UPDATE_OOO_ENTRY<b>Required scope: </b><code>ooo_entries:write</code> An existing OOO entry can be updated by making a PUT request on the URL for that OOO entry. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Returns the complete updated OOO entry record.Connection1 scope
<b>Required scope: </b><code>ooo_entries:write</code> An existing OOO entry can be updated by making a PUT request on the URL for that OOO entry. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Returns the complete updated OOO entry record.
Authentication
Connected account requiredScopes
ooo_entries:writeTags
Update a portfolioASANA_UPDATE_PORTFOLIO<b>Required scope: </b><code>portfolios:write</code> An existing portfolio can be updated by making a PUT request on the URL for that portfolio. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Returns the complete updated portfolio record.Connection1 scope
<b>Required scope: </b><code>portfolios:write</code> An existing portfolio can be updated by making a PUT request on the URL for that portfolio. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Returns the complete updated portfolio record.
Authentication
Connected account requiredScopes
portfolios:writeTags
Update a projectASANA_UPDATE_PROJECT<b>Required scope: </b><code>projects:write</code> A specific, existing project can be updated by making a PUT request on the URL for that project. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. When using this method, it is best to specify only those fields you wish to change, or else you may overwrite changes made by another user since you last retrieved the task. Returns the complete updated project record. **Deprecation notice:** Updating the `team` field is deprecated. When this field is included in the request, the `Asana-Change` response header will indicate an affected deprecation. Clients should switch to using `POST /memberships` with `{ parent: project, member: team }` to share a project with a team.Connection1 scope
<b>Required scope: </b><code>projects:write</code> A specific, existing project can be updated by making a PUT request on the URL for that project. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. When using this method, it is best to specify only those fields you wish to change, or else you may overwrite changes made by another user since you last retrieved the task. Returns the complete updated project record. **Deprecation notice:** Updating the `team` field is deprecated. When this field is included in the request, the `Asana-Change` response header will indicate an affected deprecation. Clients should switch to using `POST /memberships` with `{ parent: project, member: team }` to share a project with a team.
Authentication
Connected account requiredScopes
projects:writeTags
Update a project briefASANA_UPDATE_PROJECT_BRIEFAn existing project brief can be updated by making a PUT request on the URL for that project brief. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Returns the complete updated project brief record.Connection
An existing project brief can be updated by making a PUT request on the URL for that project brief. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Returns the complete updated project brief record.
Authentication
Connected account requiredTags
Update a project portfolio settingASANA_UPDATE_PROJECT_PORTFOLIO_SETTING<b>Required scope: </b><code>project_portfolio_settings:write</code> An existing project portfolio setting can be updated by making a PUT request on the URL for that setting. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Returns the complete updated project portfolio setting record.Connection1 scope
<b>Required scope: </b><code>project_portfolio_settings:write</code> An existing project portfolio setting can be updated by making a PUT request on the URL for that setting. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Returns the complete updated project portfolio setting record.
Authentication
Connected account requiredScopes
project_portfolio_settings:writeTags
Update a rateASANA_UPDATE_RATEAn existing rate can be updated by making a PUT request on the URL for that rate. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. (note that at this time, the only field that can be updated is the `rate` field.) Returns the complete updated rate record.Connection
An existing rate can be updated by making a PUT request on the URL for that rate. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. (note that at this time, the only field that can be updated is the `rate` field.) Returns the complete updated rate record.
Authentication
Connected account requiredTags
Update a roleASANA_UPDATE_ROLE<b>Required scope: </b><code>roles:write</code> Updates a role in a workspace.Connection1 scope
<b>Required scope: </b><code>roles:write</code> Updates a role in a workspace.
Authentication
Connected account requiredScopes
roles:writeTags
Update a sectionASANA_UPDATE_SECTIONA specific, existing section can be updated by making a PUT request on the URL for that project. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. (note that at this time, the only field that can be updated is the `name` field.) When using this method, it is best to specify only those fields you wish to change, or else you may overwrite changes made by another user since you last retrieved the task. Returns the complete updated section record.Connection
A specific, existing section can be updated by making a PUT request on the URL for that project. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. (note that at this time, the only field that can be updated is the `name` field.) When using this method, it is best to specify only those fields you wish to change, or else you may overwrite changes made by another user since you last retrieved the task. Returns the complete updated section record.
Authentication
Connected account requiredTags
Update a storyASANA_UPDATE_STORY<b>Required scope: </b><code>stories:write</code> Updates the story and returns the full record for the updated story. Only comment stories can have their text updated, and only comment stories and attachment stories can be pinned. Only one of `text` and `html_text` can be specified.Connection1 scope
<b>Required scope: </b><code>stories:write</code> Updates the story and returns the full record for the updated story. Only comment stories can have their text updated, and only comment stories and attachment stories can be pinned. Only one of `text` and `html_text` can be specified.
Authentication
Connected account requiredScopes
stories:writeTags
Update a tagASANA_UPDATE_TAG<b>Required scope: </b><code>tags:write</code> Updates the properties of a tag. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. When using this method, it is best to specify only those fields you wish to change, or else you may overwrite changes made by another user since you last retrieved the tag. Returns the complete updated tag record.Connection1 scope
<b>Required scope: </b><code>tags:write</code> Updates the properties of a tag. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. When using this method, it is best to specify only those fields you wish to change, or else you may overwrite changes made by another user since you last retrieved the tag. Returns the complete updated tag record.
Authentication
Connected account requiredScopes
tags:writeTags
Update a taskASANA_UPDATE_TASK<b>Required scope: </b><code>tasks:write</code> A specific, existing task can be updated by making a PUT request on the URL for that task. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. When using this method, it is best to specify only those fields you wish to change, or else you may overwrite changes made by another user since you last retrieved the task. Returns the complete updated task record.Connection1 scope
<b>Required scope: </b><code>tasks:write</code> A specific, existing task can be updated by making a PUT request on the URL for that task. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. When using this method, it is best to specify only those fields you wish to change, or else you may overwrite changes made by another user since you last retrieved the task. Returns the complete updated task record.
Authentication
Connected account requiredScopes
tasks:writeTags
Update a teamASANA_UPDATE_TEAMUpdates a team within the current workspace.Connection
Updates a team within the current workspace.
Authentication
Connected account requiredTags
Update a time tracking categoryASANA_UPDATE_TIME_TRACKING_CATEGORY<b>Required scope: </b><code>time_tracking_categories:write</code> Updates the properties of a time tracking category. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Returns the complete updated time tracking category record.Connection1 scope
<b>Required scope: </b><code>time_tracking_categories:write</code> Updates the properties of a time tracking category. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Returns the complete updated time tracking category record.
Authentication
Connected account requiredScopes
time_tracking_categories:writeTags
Update a time tracking entryASANA_UPDATE_TIME_TRACKING_ENTRYA specific, existing time tracking entry can be updated by making a `PUT` request on the URL for that time tracking entry. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. When using this method, it is best to specify only those fields you wish to change, or else you may overwrite changes made by another user since you last retrieved the task. Returns the complete updated time tracking entry record. #### Access requirements Access to this endpoint has two levels: - **Endpoint access** requires time tracking to be available through the domain's plan or add-ons. A request from a domain without time tracking access returns a `402 Payment Required` error for every request to this endpoint. - **Field access** for some request fields requires the Timesheets and Budgets add-on. Fields with this requirement are noted in the request schema. Including one of these fields without the add-on returns a `402 Payment Required` error, even when the rest of the request is valid. Because the field-level requirement is separate, the same endpoint may return `200` or `402` for the same domain depending on which fields are sent: a request that only uses fields available with endpoint access succeeds on any domain that meets the endpoint requirement, while a request that includes a field requiring the add-on also requires the add-on.Connection
A specific, existing time tracking entry can be updated by making a `PUT` request on the URL for that time tracking entry. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. When using this method, it is best to specify only those fields you wish to change, or else you may overwrite changes made by another user since you last retrieved the task. Returns the complete updated time tracking entry record. #### Access requirements Access to this endpoint has two levels: - **Endpoint access** requires time tracking to be available through the domain's plan or add-ons. A request from a domain without time tracking access returns a `402 Payment Required` error for every request to this endpoint. - **Field access** for some request fields requires the Timesheets and Budgets add-on. Fields with this requirement are noted in the request schema. Including one of these fields without the add-on returns a `402 Payment Required` error, even when the rest of the request is valid. Because the field-level requirement is separate, the same endpoint may return `200` or `402` for the same domain depending on which fields are sent: a request that only uses fields available with endpoint access succeeds on any domain that meets the endpoint requirement, while a request that includes a field requiring the add-on also requires the add-on.
Authentication
Connected account requiredTags
Update a timesheet approval statusASANA_UPDATE_TIMESHEET_APPROVAL_STATUS<b>Required scope: </b><code>timesheet_approval_statuses:write</code> Updates the approval status of a timesheet approval status. The update supports state transitions such as submitting, recalling submission, approving, and rejecting. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Invalid transitions will result in a 400 error.Connection1 scope
<b>Required scope: </b><code>timesheet_approval_statuses:write</code> Updates the approval status of a timesheet approval status. The update supports state transitions such as submitting, recalling submission, approving, and rejecting. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Invalid transitions will result in a 400 error.
Authentication
Connected account requiredScopes
timesheet_approval_statuses:writeTags
Update a userASANA_UPDATE_USERA specific, existing user can be updated by making a PUT request on the URL for that user. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Returns the complete updated user record.Connection
A specific, existing user can be updated by making a PUT request on the URL for that user. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged. Returns the complete updated user record.
Authentication
Connected account requiredTags
Update a user in a workspace or organizationASANA_UPDATE_USER_FOR_WORKSPACEAn existing user can be updated by making a PUT request on the URL for that user in the specified workspace or organization. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged.Connection
An existing user can be updated by making a PUT request on the URL for that user in the specified workspace or organization. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged.
Authentication
Connected account requiredTags
Update a webhookASANA_UPDATE_WEBHOOK<b>Required scope: </b><code>webhooks:write</code> An existing webhook's filters can be updated by making a PUT request on the URL for that webhook. Note that the webhook's previous `filters` array will be completely overwritten by the `filters` sent in the PUT request.Connection1 scope
<b>Required scope: </b><code>webhooks:write</code> An existing webhook's filters can be updated by making a PUT request on the URL for that webhook. Note that the webhook's previous `filters` array will be completely overwritten by the `filters` sent in the PUT request.
Authentication
Connected account requiredScopes
webhooks:writeTags
Update a workspaceASANA_UPDATE_WORKSPACEA specific, existing workspace can be updated by making a PUT request on the URL for that workspace. Only the fields provided in the data block will be updated; any unspecified fields will remain unchanged. Currently the only field that can be modified for a workspace is its name. Returns the complete, updated workspace record.Connection
A specific, existing workspace can be updated by making a PUT request on the URL for that workspace. Only the fields provided in the data block will be updated; any unspecified fields will remain unchanged. Currently the only field that can be modified for a workspace is its name. Returns the complete, updated workspace record.
Authentication
Connected account requiredTags