# Asana API Documentation

This is the complete API documentation for connecting to the Asana API using MindCloud's Universal API.

MindCloud offers one normalized API to access 3,400+ apps from a single place. It centralizes authentication and normalizes app APIs so they are easier and more consistent to use.

## Quickstart

1. A **MindCloud account** — sign in or create an account at [MindCloud](https://app.mindcloud.co).
2. A **MindCloud API Key** — create one in [API Keys](https://app.mindcloud.co/user/api-keys). Keep it on your server.
3. At least one **Asana connection** — create or choose one in [Connections](https://app.mindcloud.co/credentials). Note its `connectionId`.

```text
POST https://connect.mindcloud.co/v2/universal/apps/asana/actions/{actionSlug}/run
```

## Asana actions

- POST `add-a-collaborator-to-a-goal` Add a collaborator to a goal
- POST `add-a-custom-field-to-a-portfolio` Add a custom field to a portfolio
- POST `add-a-custom-field-to-a-project` Add a custom field to a project
- POST `add-a-portfolio-item` Add a portfolio item
- POST `add-a-project-to-a-task` Add a project to a task
- POST `add-a-supporting-goal-relationship` Add a supporting goal relationship
- POST `add-a-tag-to-a-task` Add a tag to a task
- POST `add-a-user-to-a-team` Add a user to a team
- POST `add-a-user-to-a-workspace-or-organization` Add a user to a workspace or organization
- POST `add-followers-to-a-project` Add followers to a project
- POST `add-followers-to-a-task` Add followers to a task
- POST `add-task-to-section` Add task to section
- POST `add-users-to-a-portfolio` Add users to a portfolio
- POST `add-users-to-a-project` Add users to a project
- POST `create-a-custom-field` Create a custom field
- POST `create-a-goal` Create a goal
- POST `create-a-goal-metric` Create a goal metric
- POST `create-a-portfolio` Create a portfolio
- POST `create-a-project` Create a Project
- POST `create-a-project-brief` Create a project brief
- POST `create-a-project-in-a-team` Create a project in a team
- POST `create-a-project-in-a-workspace` Create a project in a workspace
- POST `create-a-project-status` Create a project status
- POST `create-a-project-template-from-a-project` Create a project template from a project
- POST `create-a-section-in-a-project` Create a section in a project
- POST `create-a-status-update` Create a status update
- POST `create-story-on-task` Create a Story on a Task
- POST `create-a-subtask` Create a subtask
- POST `create-a-tag` Create a tag
- POST `create-a-tag-in-a-workspace` Create a tag in a workspace
- POST `create-a-task` Create a task
- POST `create-a-team` Create a team
- POST `create-an-enum-option` Create an enum option
- POST `create-an-organization-export-request` Create an organization export request
- DELETE `delete-a-custom-field` Delete a custom field
- DELETE `delete-a-goal` Delete a goal
- DELETE `delete-a-portfolio` Delete a portfolio
- DELETE `delete-a-project` Delete a project
- DELETE `delete-a-project-brief` Delete a project brief
- DELETE `delete-a-project-status` Delete a project status
- DELETE `delete-a-section` Delete a section
- DELETE `delete-a-status-update` Delete a status update
- DELETE `delete-a-story` Delete a story
- DELETE `delete-a-tag` Delete a tag
- DELETE `delete-a-task` Delete a task
- DELETE `delete-a-webhook` Delete a webhook
- DELETE `delete-an-attachment` Delete an attachment
- POST `duplicate-a-project` Duplicate a project
- POST `duplicate-a-task` Duplicate a task
- POST `establish-a-webhook` Establish a webhook
- GET `get-a-custom-field` Get a custom field
- GET `get-a-goal` Get a goal
- GET `get-a-goal-relationship` Get a goal relationship
- GET `get-a-job-by-id` Get a job by id
- GET `get-a-portfolio` Get a portfolio
- GET `get-a-portfolio-membership` Get a portfolio membership
- GET `get-a-portfolio-s-custom-fields` Get a portfolio's custom fields
- GET `get-a-project` Get a project
- GET `get-a-project-brief` Get a project brief
- GET `get-a-project-membership` Get a project membership
- GET `get-a-project-status` Get a project status
- GET `get-a-project-template` Get a project template
- GET `get-a-project-s-custom-fields` Get a project's custom fields
- GET `get-a-section` Get a section
- GET `get-a-status-update` Get a status update
- GET `get-a-story` Get a story
- GET `get-a-tag` Get a tag
- GET `get-a-task` Get a task
- GET `get-a-task-s-tags` Get a task's tags
- GET `get-a-team` Get a team
- GET `get-a-team-membership` Get a team membership
- GET `get-a-team-s-project-templates` Get a team's project templates
- GET `get-a-team-s-projects` Get a team's projects
- GET `get-a-time-period` Get a time period
- GET `get-a-user` Get a user
- GET `get-a-user-task-list` Get a user task list
- GET `get-a-user-s-favorites` Get a user's favorites
- GET `get-a-user-s-task-list` Get a user's task list
- GET `get-a-webhook` Get a webhook
- GET `get-a-workspace` Get a workspace
- GET `get-a-workspace-membership` Get a workspace membership
- GET `get-a-workspace-s-custom-fields` Get a workspace's custom fields
- GET `get-all-projects-in-a-workspace` Get all projects in a workspace
- GET `get-an-attachment` Get an attachment
- GET `get-attachments-from-an-object` Get attachments from an object
- GET `get-audit-log-events` Get audit log events
- GET `get-dependencies-from-a-task` Get dependencies from a task
- GET `get-dependents-from-a-task` Get dependents from a task
- GET `get-details-on-an-org-export-request` Get details on an org export request
- GET `get-events-on-a-resource` Get events on a resource
- GET `get-goal-relationships` Get goal relationships
- GET `get-goals` Get goals
- GET `get-memberships-from-a-portfolio` Get memberships from a portfolio
- GET `get-memberships-from-a-project` Get memberships from a project
- GET `get-memberships-from-a-team` Get memberships from a team
- GET `get-memberships-from-a-user` Get memberships from a user
- GET `get-multiple-portfolio-memberships` Get multiple portfolio memberships
- GET `get-multiple-portfolios` Get multiple portfolios
- GET `get-multiple-project-templates` Get multiple project templates
- GET `get-multiple-projects` Get multiple projects
- GET `get-multiple-tags` Get multiple tags
- GET `get-multiple-tasks` Get multiple tasks
- GET `get-multiple-users` Get multiple users
- GET `get-multiple-webhooks` Get multiple webhooks
- GET `get-multiple-workspaces` Get multiple workspaces
- GET `get-objects-via-typeahead` Get objects via typeahead
- GET `get-parent-goals-from-a-goal` Get parent goals from a goal
- GET `get-portfolio-items` Get portfolio items
- GET `get-projects-a-task-is-in` Get projects a task is in
- GET `get-sections-in-a-project` Get sections in a project
- GET `get-status-updates-from-an-object` Get status updates from an object
- GET `get-statuses-from-a-project` Get statuses from a project
- GET `get-stories-from-a-task` Get Stories from a Task
- GET `get-subtasks-for-a-task` Get Subtasks by Task
- GET `get-tags-in-a-workspace` Get tags in a workspace
- GET `get-task-count-of-a-project` Get task count of a project
- GET `get-tasks-from-a-project` Get tasks from a project
- GET `get-tasks-from-a-section` Get tasks from a section
- GET `get-tasks-from-a-tag` Get tasks from a tag
- GET `get-tasks-from-a-user-task-list` Get tasks from a user task list
- GET `get-team-memberships` Get team memberships
- GET `get-teams-for-a-user` Get teams for a user
- GET `get-teams-in-a-workspace` Get teams in a workspace
- GET `get-the-workspace-memberships-for-a-workspace` Get the workspace memberships for a workspace
- GET `get-time-periods` Get time periods
- GET `get-users-in-a-team` Get users in a team
- GET `get-users-in-a-workspace-or-organization` Get users in a workspace or organization
- GET `get-workspace-memberships-for-a-user` Get workspace memberships for a user
- POST `instantiate-a-project-from-a-project-template` Instantiate a project from a project template
- POST `move-or-insert-sections` Move or Insert sections
- POST `remove-a-collaborator-from-a-goal` Remove a collaborator from a goal
- POST `remove-a-custom-field-from-a-portfolio` Remove a custom field from a portfolio
- POST `remove-a-custom-field-from-a-project` Remove a custom field from a project
- POST `remove-a-portfolio-item` Remove a portfolio item
- POST `remove-a-project-from-a-task` Remove a project from a task
- POST `remove-a-tag-from-a-task` Remove a tag from a task
- POST `remove-a-user-from-a-team` Remove a user from a team
- POST `remove-a-user-from-a-workspace-or-organization` Remove a user from a workspace or organization
- POST `remove-followers-from-a-project` Remove followers from a project
- POST `remove-followers-from-a-task` Remove followers from a task
- POST `remove-users-from-a-portfolio` Remove users from a portfolio
- POST `remove-users-from-a-project` Remove users from a project
- POST `removes-a-supporting-goal-relationship` Removes a supporting goal relationship
- POST `reorder-a-custom-field-s-enum` Reorder a custom field's enum
- GET `search-tasks-in-a-workspace` Search Tasks by Workspace
- GET `search-tasks-in-a-workspace-legacy` Search Tasks in a Workspace (Legacy)
- POST `set-dependencies-for-a-task` Set dependencies for a task
- POST `set-dependents-for-a-task` Set dependents for a task
- POST `set-the-parent-of-a-task` Set the parent of a task
- POST `submit-parallel-requests` Submit parallel requests
- POST `unlink-dependencies-from-a-task` Unlink dependencies from a task
- POST `unlink-dependents-from-a-task` Unlink dependents from a task
- PUT `update-a-custom-field` Update a custom field
- PUT `update-a-goal` Update a goal
- POST `update-a-goal-metric` Update a goal metric
- PUT `update-a-goal-relationship` Update a goal relationship
- PUT `update-a-portfolio` Update a portfolio
- PUT `update-a-project` Update a project
- PUT `update-a-project-brief` Update a project brief
- PUT `update-a-section` Update a section
- PUT `update-a-story` Update a story
- PUT `update-a-tag` Update a tag
- PUT `update-a-task` Update a Task
- PUT `update-a-team` Update a team
- PUT `update-a-webhook` Update a webhook
- PUT `update-a-workspace` Update a workspace
- PUT `update-an-enum-option` Update an enum option
- POST `upload-an-attachment` Upload an attachment
