Asana
  1. Tasks
Asana
  • Attachments
    • Delete an attachment
      DELETE
    • Get an attachment
      GET
    • Get attachments for a task
      GET
    • Upload an attachment
      POST
  • Batch API
    • Submit parallel requests
  • Custom Fields
    • Create a custom field
    • Delete a custom field
    • Get a custom field
    • Update a custom field
    • Create an enum option
    • Reorder a custom field's enum
    • Update an enum option
    • Get a workspace's custom fields
  • Events
    • Get events on a resource
  • Goals
    • Get goals
    • Create a goal
    • Delete a goal
    • Get a goal
    • Update a goal
    • Add a collaborator to a goal
    • Add a subgoal to a parent goal
    • Add a project/portfolio as supporting work for a goal.
    • Get parent goals from a goal
    • Remove a collaborator from a goal
    • Remove a subgoal from a goal
    • Remove a project/portfolio as supporting work for a goal.
    • Create a goal metric
    • Update a goal metric
    • Get subgoals from a goal
    • Get supporting work from a goal
  • Jobs
    • Get a job by id
  • Organization Exports
    • Create an organization export request
    • Get details on an org export request
  • Teams
    • Get teams in an organization
    • Create a team
    • Get a team
    • Add a user to a team
    • Remove a user from a team
    • Get teams for a user
  • Portfolio Memberships
    • Get multiple portfolio memberships
    • Get a portfolio membership
    • Get memberships from a portfolio
  • Portfolios
    • Get multiple portfolios
    • Create a portfolio
    • Delete a portfolio
    • Get a portfolio
    • Update a portfolio
    • Add a custom field to a portfolio
    • Add a portfolio item
    • Add users to a portfolio
    • Get portfolio items
    • Remove a custom field from a portfolio
    • Remove a portfolio item
    • Remove users from a portfolio
  • Custom Field Settings
    • Get a portfolio's custom fields
    • Get a project's custom fields
  • Project Memberships
    • Get a project membership
    • Get memberships from a project
  • Project Statuses
    • Delete a project status
    • Get a project status
    • Get statuses from a project
    • Create a project status
  • Projects
    • Get multiple projects
    • Create a project
    • Delete a project
    • Get a project
    • Update a project
    • Add a custom field to a project
    • Add followers to a project
    • Add users to a project
    • Duplicate a project
    • Remove a custom field from a project
    • Remove followers from a project
    • Remove users from a project
    • Get task count of a project
    • Get projects a task is in
    • Get a team's projects
    • Create a project in a team
    • Get all projects in a workspace
    • Create a project in a workspace
  • Sections
    • Get sections in a project
    • Create a section in a project
    • Move or Insert sections
    • Delete a section
    • Get a section
    • Update a section
    • Add task to section
  • Tasks
    • Get tasks from a project
      GET
    • Get tasks from a section
      GET
    • Get tasks from a tag
      GET
    • Get multiple tasks
      GET
    • Create a task
      POST
    • Delete a task
      DELETE
    • Get a task
      GET
    • Update a task
      PUT
    • Set dependencies for a task
      POST
    • Set dependents for a task
      POST
    • Add followers to a task
      POST
    • Add a project to a task
      POST
    • Add a tag to a task
      POST
    • Get dependencies from a task
      GET
    • Get dependents from a task
      GET
    • Duplicate a task
      POST
    • Unlink dependencies from a task
      POST
    • Unlink dependents from a task
      POST
    • Remove followers from a task
      POST
    • Remove a project from a task
      POST
    • Remove a tag from a task
      POST
    • Set the parent of a task
      POST
    • Get subtasks from a task
      GET
    • Create a subtask
      POST
    • Get tasks from a user task list
      GET
    • Search tasks in a workspace
      GET
  • Stories
    • Delete a story
    • Get a story
    • Update a story
    • Get stories from a task
    • Create a story on a task
  • Tags
    • Get multiple tags
    • Create a tag
    • Delete a tag
    • Get a tag
    • Update a tag
    • Get a task's tags
    • Get tags in a workspace
    • Create a tag in a workspace
  • Team Memberships
    • Get team memberships
    • Get a team membership
    • Get memberships from a team
    • Get memberships from a user
  • Users
    • Get users in a team
    • Get multiple users
    • Get a user
    • Get a user's favorites
    • Get users in a workspace or organization
  • Time Periods
    • Get time periods
    • Get a time period
  • User Task Lists
    • Get a user task list
    • Get a user's task list
  • Workspace Memberships
    • Get workspace memberships for a user
    • Get a workspace membership
    • Get the workspace memberships for a workspace
  • Webhooks
    • Get multiple webhooks
    • Establish a webhook
    • Delete a webhook
    • Get a webhook
  • Workspaces
    • Get multiple workspaces
    • Get a workspace
    • Update a workspace
    • Add a user to a workspace or organization
    • Remove a user from a workspace or organization
  • Typeahead
    • Get objects via typeahead
  1. Tasks

Search tasks in a workspace

GET
/workspaces/{workspace_gid}/tasks/search
Tasks
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 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.

Rate limits#

You may receive a 429 Too Many Requests response if you hit any of our rate limits.

Custom field parameters#

Parameter nameCustom field typeAccepted type
custom_fields.{gid}.is_setAllBoolean
custom_fields.{gid}.valueTextString
custom_fields.{gid}.valueNumberNumber
custom_fields.{gid}.valueEnumEnum option ID
custom_fields.{gid}.starts_withText onlyString
custom_fields.{gid}.ends_withText onlyString
custom_fields.{gid}.containsText onlyString
custom_fields.{gid}.less_thanNumber onlyNumber
custom_fields.{gid}.greater_thanNumber onlyNumber
For example, if the gid of the custom field is 12345, these query parameter to find tasks where it is set would be custom_fields.12345.is_set=true. To match an exact value for an enum custom field, use the gid of the desired enum option and not the name of the enum option: custom_fields.12345.value=67890.
Searching for multiple exact matches of a custom field is not supported.
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.
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request GET 'https://app.asana.com/api/1.0/workspaces//tasks/search'
Response Response Example
200 - Example 1
{
  "data": [
    {
      "gid": "12345",
      "resource_type": "task",
      "name": "Bug Task"
    }
  ]
}

Request

Path Params
workspace_gid
string 
required

Responses

🟢200Successfully retrieved the section's tasks.
application/json
Body
data
array[object (TaskCompact) {3}] 
optional
gid
string 
read-onlyoptional
Globally unique identifier of the resource, as a string.
Example:
12345
resource_type
string 
read-onlyoptional
The base type of this resource.
Example:
task
name
string 
optional
The name of the task.
Example:
Bug Task
🟠400400
🟠401401
🟠403403
🟠404404
🔴500500
Modified at 2022-09-13 02:00:32
Previous
Get tasks from a user task list
Next
Delete a story
Built with