Maton

Asana

Access the Asana API with managed OAuth authentication. Manage tasks, projects, workspaces, users, and webhooks for work management.

Reference

Get Multiple Tasks

GET /asana/api/1.0/tasks
maton asana task list --project 1234567890 --opt-fields name,completed,due_on

Query parameters:

  • project - Project GID to filter tasks
  • assignee - User GID or "me" for assigned tasks
  • workspace - Workspace GID (required if no project specified)
  • completed_since - ISO 8601 date to filter tasks completed after this date
  • opt_fields - Comma-separated list of fields to include

Get a Task

GET /asana/api/1.0/tasks/{task_gid}
maton asana task view 1234567890

Create a Task

POST /asana/api/1.0/tasks
Content-Type: application/json

{
  "data": {
    "name": "New task",
    "projects": ["PROJECT_GID"],
    "assignee": "USER_GID",
    "due_on": "2025-03-20",
    "notes": "Task description here"
  }
}
maton asana task create --name 'New task' --projects PROJECT_GID --assignee USER_GID --due-on 2025-03-20 --notes 'Task description here'

Update a Task

PUT /asana/api/1.0/tasks/{task_gid}
maton asana task update 1234567890 --completed

Delete a Task

DELETE /asana/api/1.0/tasks/{task_gid}
maton asana task delete 1234567890

Get Tasks from a Project

GET /asana/api/1.0/projects/{project_gid}/tasks
maton asana task list --project 1234567890

Get Subtasks

GET /asana/api/1.0/tasks/{task_gid}/subtasks
maton asana task list --parent 1234567890

Create Subtask

POST /asana/api/1.0/tasks/{task_gid}/subtasks
Content-Type: application/json

{
  "data": {
    "name": "Subtask name",
    "assignee": "USER_GID",
    "due_on": "2025-03-20"
  }
}
maton asana task create --name 'Subtask name' --parent 1234567890 --assignee USER_GID --due-on 2025-03-20

Search Tasks (Premium)

Note: This endpoint requires an Asana Premium subscription.

GET /asana/api/1.0/workspaces/{workspace_gid}/tasks/search
maton asana task search -w 1234567890 --text 'quarterly report' --completed=false

Query parameters:

  • text - Text to search for
  • assignee.any - Filter by assignees
  • projects.any - Filter by projects
  • completed - Filter by completion status

Get Multiple Projects

GET /asana/api/1.0/projects
maton asana project list --workspace <workspace-gid> --opt-fields name,owner,due_date

Query parameters:

  • workspace - Workspace GID
  • team - Team GID
  • opt_fields - Comma-separated list of fields

Get a Project

GET /asana/api/1.0/projects/{project_gid}
maton asana project view <project-gid>

Create a Project

POST /asana/api/1.0/projects
maton asana project create --workspace <workspace-gid> --name 'New Project' --notes 'Project description'

Update a Project

PUT /asana/api/1.0/projects/{project_gid}
maton asana project update PROJECT_GID --name 'Updated Name'

Delete a Project

DELETE /asana/api/1.0/projects/{project_gid}
maton asana project delete <project-gid>

Get Multiple Workspaces

GET /asana/api/1.0/workspaces
maton asana workspace list

Get a Workspace

GET /asana/api/1.0/workspaces/{workspace_gid}
maton asana workspace view 1234567890

Update a Workspace

PUT /asana/api/1.0/workspaces/{workspace_gid}

Add User to Workspace

POST /asana/api/1.0/workspaces/{workspace_gid}/addUser

Remove User from Workspace

POST /asana/api/1.0/workspaces/{workspace_gid}/removeUser

Get Multiple Users

GET /asana/api/1.0/users

Query parameters:

  • workspace - Workspace GID to filter users

Get Current User

GET /asana/api/1.0/users/me
maton asana whoami

Get a User

GET /asana/api/1.0/users/{user_gid}

Get Users in a Team

GET /asana/api/1.0/teams/{team_gid}/users

Get Users in a Workspace

GET /asana/api/1.0/workspaces/{workspace_gid}/users

Get Multiple Webhooks

GET /asana/api/1.0/webhooks

Query parameters:

  • workspace - Workspace GID (required)
  • resource - Resource GID to filter by

Create Webhook

Note: Asana verifies the target URL is reachable and responds with a 200 status during webhook creation.

POST /asana/api/1.0/webhooks
Content-Type: application/json

{
  "data": {
    "resource": "PROJECT_OR_TASK_GID",
    "target": "https://example.com/webhook",
    "filters": [
      {
        "resource_type": "task",
        "action": "changed",
        "fields": ["completed", "due_on"]
      }
    ]
  }
}

Get a Webhook

GET /asana/api/1.0/webhooks/{webhook_gid}

Update a Webhook

PUT /asana/api/1.0/webhooks/{webhook_gid}

Delete a Webhook

DELETE /asana/api/1.0/webhooks/{webhook_gid}

Returns 200 OK with empty data on success.

Resources

On this page