# Asana

> Asana API — tasks, projects, and team collaboration Use when this capability is needed.

- Skill: `tomevault-io/asana` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/asana`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/asana/raw
- Safety review: pending (external: skill-scanner PASS, skillspector CAUTION)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/asana

---

# Asana

Interact with Asana using their REST API.

## Setup

1. **Check existing credentials:**
   ```
   vault_get asana_access_token
   ```

2. **If not configured:**
   - Go to https://app.asana.com/0/developer-console
   - Create a Personal Access Token
   - Save to vault:
     ```
     vault_save asana_access_token "x_xxx"
     ```
   The token is auto-injected as `$ASANA_ACCESS_TOKEN`.

## List Workspaces & Projects

```bash
# 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

```bash
# 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

```bash
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

```bash
# 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

```bash
# 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

```bash
# 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

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/jholhewres) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-11 -->

