Asana Tasks API

The Asana Tasks API is a powerful tool that allows developers to programmatically manage tasks and projects within the Asana platform. With this API, users can create, update, and delete tasks, as well as assign tasks to users, set due dates, and track task progress. By integrating the Asana Tasks API into their applications, developers can streamline project management processes, improve communication, and increase productivity within their teams.

Business capability
Project Management BC-900.30

Operations 28

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /tasks/{task_gid}/tags List the tags on a task · Asana Get a task's tags #
Ask an LLM
“Which tags have been applied to a particular Asana task?”
“Can I see every label attached to one task?”
Tell an agent
Show the tags on task {task}.
List the labels attached to task {task}.
GET /tasks List tasks filtered by project, assignee or section · Asana Get multiple tasks #
Ask an LLM
“How do I list tasks assigned to someone in a workspace?”
“Can I fetch only tasks modified since a certain date?”
Tell an agent
List tasks assigned to {assignee} in workspace {workspace}.
Get the tasks in project {project} that are incomplete or completed since {completed_since}.
POST /tasks Create a new task · Asana Create a task #
Ask an LLM
“How do I create a new task in Asana?”
“Can I set the assignee, due date and project when I add a task?”
Tell an agent
Create a task called {task} in my workspace.
Add a new to-do with these details: {fields}.
GET /tasks/{task_gid} Get the full details of a task · Asana Get a task #
Ask an LLM
“What does the full record of one task include?”
“Can I look up a task's notes, assignee and due date by its ID?”
Tell an agent
Show me the details of task {task}.
Fetch the complete record for task {task}.
PUT /tasks/{task_gid} Update a task's fields · Asana Update a task #
Ask an LLM
“How can I change the due date or assignee on an existing task?”
“Can I mark a task complete through the API?”
Tell an agent
Mark task {task} as complete.
Change task {task} with these updates: {changes}.
DELETE /tasks/{task_gid} Delete a task · Asana Delete a task #
Ask an LLM
“What happens to a task after I delete it — can it be recovered from trash?”
“Can I remove a task I no longer need?”
Tell an agent destructive · confirm first
Delete task {task}.
Move task {task} to the trash.
POST /tasks/{task_gid}/duplicate Duplicate a task · Asana Duplicate a task #
Ask an LLM
“Can I copy an existing task, including its subtasks and attachments?”
“Is duplicating a task done as a background job?”
Tell an agent
Duplicate task {task} with the name {settings}.
Make a copy of task {task}.
GET /projects/{project_gid}/tasks List the tasks in a project · Asana Get tasks from a project #
Ask an LLM
“How do I list every task in a project in priority order?”
“Can I limit a project's task list to tasks not yet done?”
Tell an agent
List the tasks in project {project}.
Show tasks in project {project} completed since {since} or still open.
GET /sections/{section_gid}/tasks List the tasks in a board section · Asana Get tasks from a section #
Ask an LLM
“Which tasks sit in a particular column of my board?”
“Can I list only the cards in one board section?”
Tell an agent
List the tasks in section {section}.
Show open tasks in board column {section} completed since {since}.
GET /tags/{tag_gid}/tasks List tasks that have a tag · Asana Get tasks from a tag #
Ask an LLM
“Which tasks carry a specific tag?”
“Can I find everything labeled with one tag?”
Tell an agent
List the tasks tagged {tag}.
Show every task that has tag {tag} applied.
GET /user_task_lists/{user_task_list_gid}/tasks List the tasks in someone's My Tasks · Asana Get tasks from a user task list #
Ask an LLM
“What tasks are on a user's My Tasks list?”
“Can I pull only incomplete items from someone's My Tasks?”
Tell an agent
List the tasks in user task list {list}.
Show My Tasks items from list {list} that are open or completed since {since}.
GET /tasks/{task_gid}/subtasks List a task's subtasks · Asana Get subtasks from a task #
Ask an LLM
“How do I see the subtasks under a task?”
“Can I get the child tasks broken out of a parent task?”
Tell an agent
List the subtasks of task {task}.
Show the child tasks under task {task}.
POST /tasks/{task_gid}/subtasks Create a subtask under a task · Asana Create a subtask #
Ask an LLM
“How do I add a subtask to an existing task?”
“Can I break a task into smaller subtasks via the API?”
Tell an agent
Add a subtask named {subtask} under task {task}.
Create a child task beneath task {task} with these details: {fields}.
POST /tasks/{task_gid}/setParent Change a task's parent task · Asana Set the parent of a task #
Ask an LLM
“Can I turn a standalone task into a subtask of another task?”
“Is there a way to move a subtask to a different parent or remove its parent?”
Tell an agent
Make task {task} a subtask of {parent}.
Detach task {task} from its parent so it has no parent task.
GET /tasks/{task_gid}/dependencies List what a task is waiting on · Asana Get dependencies from a task #
Ask an LLM
“Which tasks must be finished before this one can start?”
“Can I see the dependencies blocking a task?”
Tell an agent
List the dependencies of task {task}.
Show which tasks task {task} is blocked by.
POST /tasks/{task_gid}/addDependencies Mark tasks as blockers of a task · Asana Set dependencies for a task #
Ask an LLM
“How do I say a task can't start until other tasks are done?”
“Is there a cap on how many dependencies and dependents a task can have?”
Tell an agent
Make task {task} depend on tasks {dependencies}.
Mark {dependencies} as blocking task {task}.
POST /tasks/{task_gid}/removeDependencies Unlink blocking tasks from a task · Asana Unlink dependencies from a task #
Ask an LLM
“Can I remove a blocker from a task's dependencies?”
“How do I stop a task from waiting on another task?”
Tell an agent
Unlink dependencies {dependencies} from task {task}.
Remove the blockers {dependencies} on task {task}.
GET /tasks/{task_gid}/dependents List tasks waiting on a task · Asana Get dependents from a task #
Ask an LLM
“Which tasks are blocked until this task is done?”
“Can I see the downstream dependents of a task?”
Tell an agent
List the dependents of task {task}.
Show which tasks are waiting on task {task}.
POST /tasks/{task_gid}/addDependents Mark tasks as waiting on a task · Asana Set dependents for a task #
Ask an LLM
“How do I make other tasks wait on this one?”
“Can I add several downstream dependents to a task at once?”
Tell an agent
Make tasks {dependents} dependents of task {task}.
Set {dependents} to wait until task {task} is finished.
POST /tasks/{task_gid}/removeDependents Unlink waiting tasks from a task · Asana Unlink dependents from a task #
Ask an LLM
“Can I remove a dependent task so it no longer waits on this one?”
“How do I unlink downstream tasks from a blocker?”
Tell an agent
Unlink dependents {dependents} from task {task}.
Stop tasks {dependents} from waiting on task {task}.
POST /tasks/{task_gid}/addProject Add a task to a project · Asana Add a project to a task #
Ask an LLM
“Can one task live in more than one project?”
“How do I put an existing task into a project at a specific position or section?”
Tell an agent
Add task {task} to project {project}.
Put task {task} into another project with placement {placement}.
POST /tasks/{task_gid}/removeProject Remove a task from a project · Asana Remove a project from a task #
Ask an LLM
“Does removing a task from a project delete the task?”
“How do I take a task out of one of its projects?”
Tell an agent
Remove task {task} from project {project}.
Take task {task} out of project {project} but keep the task.
POST /tasks/{task_gid}/addTag Add a tag to a task · Asana Add a tag to a task #
Ask an LLM
“How do I tag a task?”
“Can I apply an existing tag to a task?”
Tell an agent
Add tag {tag} to task {task}.
Label task {task} with tag {tag}.
POST /tasks/{task_gid}/removeTag Remove a tag from a task · Asana Remove a tag from a task #
Ask an LLM
“Can I take a tag off a task without deleting the tag?”
“What's the way to untag a single task?”
Tell an agent
Remove tag {tag} from task {task}.
Untag task {task} by removing {tag}.
POST /tasks/{task_gid}/addFollowers Add followers to a task · Asana Add followers to a task #
Ask an LLM
“How do I add collaborators who get notified about a task?”
“Can I add several followers to a task in one call?”
Tell an agent
Add followers {followers} to task {task}.
Subscribe {followers} to updates on task {task}.
POST /tasks/{task_gid}/removeFollowers Remove followers from a task · Asana Remove followers from a task #
Ask an LLM
“Can I stop someone from following a task?”
“What's returned after followers are taken off a task?”
Tell an agent
Remove followers {followers} from task {task}.
Unsubscribe {followers} from task {task}.
GET /workspaces/{workspace_gid}/tasks/custom_id/{custom_id} Look up a task by its custom ID · Asana Get a task for a given custom ID #
Ask an LLM
“Can I find a task using its custom ID shortcode instead of its gid?”
“How do I resolve a ticket-style custom ID to the actual task?”
Tell an agent
Find the task with custom ID {custom_id} in workspace {workspace}.
Look up task {custom_id} by its shortcode in workspace {workspace}.
GET /workspaces/{workspace_gid}/tasks/search Search tasks in a workspace with advanced filters · Asana Search tasks in a workspace #
Ask an LLM
“Can I search tasks by text, due date range and assignee like advanced search in the app?”
“Which tasks in my workspace are blocked or overdue?”
Tell an agent
Search workspace {workspace} for tasks matching {text}.
Find incomplete tasks in workspace {workspace} due before {due_before}.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/asana:asana-tasks-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

asana-tasks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: This is the interface for interacting with the Asana Platform. Our API reference is generated from our [OpenAPI spec] (https://raw.githubusercontent.com/Asana/openapi/master/defs/asana_oas.yaml).
  x-public-description: This is the interface for interacting with the [Asana Platform](https://developers.asana.com). Our API reference is generated from our [OpenAPI spec] (https://raw.githubusercontent.com/Asana/openapi/master/defs/asana_oas.yaml).
  title: Asana Tasks API
  termsOfService: https://asana.com/terms
  contact:
    name: Asana Support
    url: https://asana.com/support
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  version: '1.0'
  x-docs-schema-whitelist:
  - AsanaResource
  - AsanaNamedResource
  - AuditLogEvent
  - AttachmentResponse
  - AttachmentCompact
  - BatchResponse
  - CustomFieldSettingResponse
  - CustomFieldSettingCompact
  - CustomFieldResponse
  - CustomFieldCompact
  - EnumOption
  - EventResponse
  - ErrorResponse
  - GoalResponse
  - GoalCompact
  - GoalMembershipCompact
  - GoalMembershipBase
  - GoalMembershipResponse
  - GoalRelationshipResponse
  - GoalRelationshipCompact
  - JobResponse
  - JobCompact
  - OrganizationExportResponse
  - OrganizationExportCompact
  - PortfolioMembershipResponse
  - PortfolioMembershipCompact
  - PortfolioResponse
  - PortfolioCompact
  - ProjectBriefResponse
  - ProjectBriefCompact
  - ProjectMembershipCompactResponse
  - ProjectMembershipNormalResponse
  - ProjectMembershipCompact
  - ProjectResponse
  - ProjectCompact
  - ProjectStatusResponse
  - ProjectStatusCompact
  - ProjectTemplateCompact
  - ProjectTemplateResponse
  - RuleTriggerResponse
  - SectionResponse
  - SectionCompact
  - StatusUpdateResponse
  - StatusUpdateCompact
  - StoryResponse
  - StoryCompact
  - TagResponse
  - TagCompact
  - TaskResponse
  - TaskCompact
  - TaskCountResponse
  - TeamMembershipResponse
  - TeamMembershipCompact
  - TeamResponse
  - TeamCompact
  - TimePeriodResponse
  - TimePeriodCompact
  - UserTaskListResponse
  - UserTaskListCompact
  - UserResponse
  - UserCompact
  - WebhookFilter
  - WebhookResponse
  - WebhookCompact
  - WorkspaceMembershipResponse
  - WorkspaceMembershipCompact
  - WorkspaceResponse
  - WorkspaceCompact
servers:
- url: https://app.asana.com/api/1.0
  description: Main endpoint.
security:
- personalAccessToken: []
- oauth2: []
tags:


# --- truncated at 32 KB (390 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/asana/refs/heads/main/openapi/asana-tasks-api-openapi.yml