Asana API Documentation
This is the complete API documentation for connecting to the Asana API using MindCloud's Universal API. If you are new to MindCloud, start with the Introduction to see how one API can sit in front of many different apps.
MindCloud is an integration company that offers one normalized API to access 3,100+ apps from a single place. It cleans up provider-specific quirks, keeps requests and responses consistent, and centralizes authentication so you do not need to manage separate flows for every app. Browse other apps.
Meet Asana: Manage projects and tasks with your team. Keep reading to get started.
Quickstart
Before you run your first Asana request, you need three things:
- A MindCloud account — sign in or create an account at MindCloud.
- A MindCloud API Key — create one in API Keys. Keep it on your server.
- At least one Asana connection — create or choose one in Connections. Note its
connectionId.
Every Asana action uses the same URL pattern:
POST https://connect.mindcloud.co/v2/universal/apps/asana/actions/{actionSlug}/runYou need a MindCloud API Key and a Asana connection. Then call an action such as Get multiple workspaces:
curl --request POST \
--url "https://connect.mindcloud.co/v2/universal/apps/asana/actions/get-multiple-workspaces/run" \
--header "Authorization: Bearer $MINDCLOUD_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"connectionId": "$CONNECTION_ID",
"arguments": {}
}'Every response comes back in the same envelope, with your rows in a data array:
{
"success": true,
"data": [
{ "id": "1042", "name": "Ava" }
],
"meta": {}
}After your first request works, use Shape your requests to control arguments, pagination, filtering, fields, and errors.
Authenticate with a MindCloud API Key plus a connectionId for your Asana account. See Asana API Authentication for the full flow and how to get your connection credentials.
Asana actions
All 168 published actions for this Asana version. Each page documents the endpoint, arguments, and response controls.
- POSTAdd a collaborator to a goal
- POSTAdd a custom field to a portfolio
- POSTAdd a custom field to a project
- POSTAdd a portfolio item
- POSTAdd a project to a task
- POSTAdd a supporting goal relationship
- POSTAdd a tag to a task
- POSTAdd a user to a team
- POSTAdd a user to a workspace or organization
- POSTAdd followers to a project
- POSTAdd followers to a task
- POSTAdd task to section
- POSTAdd users to a portfolio
- POSTAdd users to a project
- POSTCreate a custom field
- POSTCreate a goal
- POSTCreate a goal metric
- POSTCreate a portfolio
- POSTCreate a Project
- POSTCreate a project brief
- POSTCreate a project in a team
- POSTCreate a project in a workspace
- POSTCreate a project status
- POSTCreate a project template from a project
- POSTCreate a section in a project
- POSTCreate a status update
- POSTCreate a Story on a Task
- POSTCreate a subtask
- POSTCreate a tag
- POSTCreate a tag in a workspace
- POSTCreate a task
- POSTCreate a team
- POSTCreate an enum option
- POSTCreate an organization export request
- DELETEDelete a custom field
- DELETEDelete a goal
- DELETEDelete a portfolio
- DELETEDelete a project
- DELETEDelete a project brief
- DELETEDelete a project status
- DELETEDelete a section
- DELETEDelete a status update
- DELETEDelete a story
- DELETEDelete a tag
- DELETEDelete a task
- DELETEDelete a webhook
- DELETEDelete an attachment
- POSTDuplicate a project
- POSTDuplicate a task
- POSTEstablish a webhook
- GETGet a custom field
- GETGet a goal
- GETGet a goal relationship
- GETGet a job by id
- GETGet a portfolio
- GETGet a portfolio membership
- GETGet a portfolio's custom fields
- GETGet a project
- GETGet a project brief
- GETGet a project membership
- GETGet a project status
- GETGet a project template
- GETGet a project's custom fields
- GETGet a section
- GETGet a status update
- GETGet a story
- GETGet a tag
- GETGet a task
- GETGet a task's tags
- GETGet a team
- GETGet a team membership
- GETGet a team's project templates
- GETGet a team's projects
- GETGet a time period
- GETGet a user
- GETGet a user task list
- GETGet a user's favorites
- GETGet a user's task list
- GETGet a webhook
- GETGet a workspace
- GETGet a workspace membership
- GETGet a workspace's custom fields
- GETGet all projects in a workspace
- GETGet an attachment
- GETGet attachments from an object
- GETGet audit log events
- GETGet dependencies from a task
- GETGet dependents from a task
- GETGet details on an org export request
- GETGet events on a resource
- GETGet goal relationships
- GETGet goals
- GETGet memberships from a portfolio
- GETGet memberships from a project
- GETGet memberships from a team
- GETGet memberships from a user
- GETGet multiple portfolio memberships
- GETGet multiple portfolios
- GETGet multiple project templates
- GETGet multiple projects
- GETGet multiple tags
- GETGet multiple tasks
- GETGet multiple users
- GETGet multiple webhooks
- GETGet multiple workspaces
- GETGet objects via typeahead
- GETGet parent goals from a goal
- GETGet portfolio items
- GETGet projects a task is in
- GETGet sections in a project
- GETGet status updates from an object
- GETGet statuses from a project
- GETGet Stories from a Task
- GETGet Subtasks by Task
- GETGet tags in a workspace
- GETGet task count of a project
- GETGet tasks from a project
- GETGet tasks from a section
- GETGet tasks from a tag
- GETGet tasks from a user task list
- GETGet team memberships
- GETGet teams for a user
- GETGet teams in a workspace
- GETGet the workspace memberships for a workspace
- GETGet time periods
- GETGet users in a team
- GETGet users in a workspace or organization
- GETGet workspace memberships for a user
- POSTInstantiate a project from a project template
- POSTMove or Insert sections
- POSTRemove a collaborator from a goal
- POSTRemove a custom field from a portfolio
- POSTRemove a custom field from a project
- POSTRemove a portfolio item
- POSTRemove a project from a task
- POSTRemove a tag from a task
- POSTRemove a user from a team
- POSTRemove a user from a workspace or organization
- POSTRemove followers from a project
- POSTRemove followers from a task
- POSTRemove users from a portfolio
- POSTRemove users from a project
- POSTRemoves a supporting goal relationship
- POSTReorder a custom field's enum
- GETSearch Tasks by Workspace
- GETSearch Tasks in a Workspace (Legacy)
- POSTSet dependencies for a task
- POSTSet dependents for a task
- POSTSet the parent of a task
- POSTSubmit parallel requests
- POSTUnlink dependencies from a task
- POSTUnlink dependents from a task
- PUTUpdate a custom field
- PUTUpdate a goal
- POSTUpdate a goal metric
- PUTUpdate a goal relationship
- PUTUpdate a portfolio
- PUTUpdate a project
- PUTUpdate a project brief
- PUTUpdate a section
- PUTUpdate a story
- PUTUpdate a tag
- PUTUpdate a Task
- PUTUpdate a team
- PUTUpdate a webhook
- PUTUpdate a workspace
- PUTUpdate an enum option
- POSTUpload an attachment
Related apps
More apps on the Universal API, behind the same REST shape. Or browse all apps.