askill
asana

asanaSafety 85Repository

Asana API — tasks, projects, and team collaboration

3 stars
1.2k downloads
Updated 3/1/2026

Package Files

Loading files...
SKILL.md

Asana

Interact with Asana using their REST API.

Setup

  1. Go to https://app.asana.com/app/asana/-/account_management/apps
  2. Create a Personal Access Token
  3. Set environment variable:
    export ASANA_ACCESS_TOKEN="x_xxx"
    

List Workspaces & Projects

# List workspaces
curl -s "https://app.asana.com/api/1.0/workspaces" \
  -H "Authorization: Bearer $ASANA_ACCESS_TOKEN" | jq '.data[]'

# List projects in workspace
curl -s "https://app.asana.com/api/1.0/workspaces/WORKSPACE_ID/projects" \
  -H "Authorization: Bearer $ASANA_ACCESS_TOKEN" | jq '.data[]'

# List all projects
curl -s "https://app.asana.com/api/1.0/projects" \
  -H "Authorization: Bearer $ASANA_ACCESS_TOKEN" | jq '.data[] | {gid, name}'

Tasks

# List tasks in project
curl -s "https://app.asana.com/api/1.0/projects/PROJECT_ID/tasks" \
  -H "Authorization: Bearer $ASANA_ACCESS_TOKEN" | jq '.data[]'

# Get task details
curl -s "https://app.asana.com/api/1.0/tasks/TASK_ID" \
  -H "Authorization: Bearer $ASANA_ACCESS_TOKEN" | jq '.data'

# My tasks
curl -s "https://app.asana.com/api/1.0/user/me/tasks?opt_fields=name,completed,due_on" \
  -H "Authorization: Bearer $ASANA_ACCESS_TOKEN" | jq '.data[]'

Create Task

curl -s -X POST "https://app.asana.com/api/1.0/tasks" \
  -H "Authorization: Bearer $ASANA_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "data": {
      "name": "Review pull request",
      "notes": "Check the authentication module changes",
      "projects": ["PROJECT_ID"],
      "assignee": "me",
      "due_on": "2025-01-20"
    }
  }' | jq '.data'

Update Task

# Complete task
curl -s -X PUT "https://app.asana.com/api/1.0/tasks/TASK_ID" \
  -H "Authorization: Bearer $ASANA_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"data": {"completed": true}}'

# Update task name/notes
curl -s -X PUT "https://app.asana.com/api/1.0/tasks/TASK_ID" \
  -H "Authorization: Bearer $ASANA_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"data": {"name": "Updated task name"}}'

# Add comment
curl -s -X POST "https://app.asana.com/api/1.0/tasks/TASK_ID/stories" \
  -H "Authorization: Bearer $ASANA_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"data": {"text": "Progress update: completed review"}}'

Subtasks

# Create subtask
curl -s -X POST "https://app.asana.com/api/1.0/tasks/TASK_ID/subtasks" \
  -H "Authorization: Bearer $ASANA_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"data": {"name": "Subtask item"}}'

# List subtasks
curl -s "https://app.asana.com/api/1.0/tasks/TASK_ID/subtasks" \
  -H "Authorization: Bearer $ASANA_ACCESS_TOKEN" | jq '.data[]'

Search

# Search tasks
curl -s "https://app.asana.com/api/1.0/workspaces/WORKSPACE_ID/tasks/search?text=bug" \
  -H "Authorization: Bearer $ASANA_ACCESS_TOKEN" | jq '.data[]'

Tips

  • Use opt_fields to request specific fields: ?opt_fields=name,completed,due_on,assignee
  • Use opt_expand for nested resources
  • GIDs are string IDs used throughout Asana API
  • Use assignee: "me" to assign to yourself

Triggers

asana, asana task, create asana task, asana project, asana api

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

87/100Analyzed 2/20/2026

Well-structured Asana API skill with clear setup instructions and comprehensive curl command examples for tasks, projects, subtasks, and search operations. Uses proper environment variable handling for authentication. Located in dedicated skills folder with appropriate tags and triggers. Missing some operations (delete, tags management) but highly actionable and reusable for any Asana user.

85
88
92
70
90

Metadata

Licenseunknown
Version0.1.0
Updated3/1/2026
Publisherjholhewres

Tags

api