Overview
Asana uses a Personal Access Token (PAT) for API authentication. Tokens are free to create on any Asana plan, and a single PAT inherits all of the user's workspace permissions — there are no per-token scopes to configure. Your plan tier controls the per-minute rate limit (150 req/min on Free, 1,500 req/min on paid plans) and which endpoints return data: portfolios, goals, status updates, project/task templates, and audit logs all require Starter, Advanced, or Enterprise.
Setup guide
Create the token
- Sign in at app.asana.com.
- Open My Apps (or your profile picture → Settings → Apps tab → Manage Developer Apps).
- Click Create new token.
- Name it
ingest(or similar) and copy the value immediately. Asana only shows the token once.
Add it to Ingest
In the Ingest UI under Connectors → Asana, paste the token. Ingest stores it in AWS Secrets Manager under the key token.
Mind the limits
The Ingest runtime dispatches Asana requests at 1.25 req/sec by default — comfortably under the 2.5 req/sec free-plan ceiling — and uses AIMD backoff on 429s. Errors with status 400, 401, 402 (paid feature on a free workspace), 403, or 404 are treated as fatal — the request stops without retry. 429 and 500 retry with exponential backoff.
Pick endpoints
Start with workspaces, users, projects, and tasks — they cover the bulk of what most Asana customers need. The full cascade is:
workspaces— root container; every other resource resolves through itusers,teams,team_memberships,workspace_memberships— people and group structureprojects,sections,tasks,subtasks— the work hierarchytags,stories,attachments— task metadata and activitycustom_fields,custom_field_settings— user-defined columns and per-project defaultswebhooks— change-event subscriptionsproject_templates,task_templates,status_updates— Starter+ paid featuresportfolios,portfolio_items,goals,goal_relationships,time_periods— Advanced+ reportingaudit_log_events— Enterprise compliance log
Supported streams
15 endpoints are available out of the box. Each endpoint syncs into its own Iceberg table in Snowflake.
| Endpoint | Description | Reference |
|---|---|---|
| attachments attachments | – | |
| project_templates project_templates | – | |
| projects projects | – | |
| sections sections | – | |
| status_updates status_updates | – | |
| stories stories | – | |
| subtasks subtasks | – | |
| tags tags | – | |
| tasks tasks | – | |
| team_memberships team_memberships | – | |
| teams teams | – | |
| users users | – | |
| webhooks webhooks | – | |
| workspace_memberships workspace_memberships | – | |
| workspaces workspaces | – |
Authentication
- Auth type
- Bearer Token
- Sent as header
Authorization- Provider docs
- developers.asana.com ↗
Performance & limits
- Rate limit
- 150 req/min on Free; 1,500 req/min on paid plans. Per-token, cursor-paginated at up to 100 items per page.