Use Taskade APIs to integrate your app. You can also build automations or connect AI tools.
Page type: Concept. Read it to learn what this is and when to use it.
Many teams first build visually with Taskade Genesis. They then extend the app with the API.
Before you start
- A Taskade account with a verified email address. Taskade does not create a token for an unverified account.
curlin a terminal, or any HTTP client.- Basic Taskade concepts: workspaces, projects, and tasks. If you are new to Taskade, start with Learn Taskade.
Integration surface at a glance
Choose a surface
| I want to... | Use |
|---|---|
| Write tasks, manage assignees/dates/fields (full CRUD) | REST API v1. The Action API v2 writes the same data. It has no call that reads one task, or its assignees, date, note, or field value. |
| Prompt agents, register signed webhooks | Action API v2 |
| Manage agents, export/import bundles | Either version |
| Hit endpoints from any language | REST API v1 + Action API v2 |
| Expose Taskade projects, tasks, and agents to Claude Desktop, Cursor, or other MCP clients | Hosted Taskade MCP or Workspace MCP |
| Call another MCP server's tools from an automation | MCP Client connector |
| Edit Taskade Genesis app source code from your IDE | Hosted MCP (Taskade Genesis apps) |
| Receive real-time events in your app | Webhooks |
| Add a public AI agent to your website | Agent Embeds |
| Understand long-term memory | Long-Term Memory |
| Build agents that run without a prompt | Autonomous Agents |
| Build automations without code | Automations Engine |
| Browse community apps and templates | taskade.com/apps |
Get a token
Use a personal access token for scripts, both APIs, the local MCP server, and hosted MCP callers that set their own headers. Interactive clients can connect to hosted MCP with OAuth 2.0.
- Go to taskade.com/settings/api.
- Go to Personal access tokens and click Create token.
- Give the token a descriptive name.
- Copy the token. Taskade does not show it again.
- Save the token in your terminal:
export TASKADE_TOKEN="tskdp_your_token_here"
Treat your API token like a password. Never commit it to version control or share it publicly.
Base URLs
Taskade ships two public HTTP APIs. Both APIs use the same token:
| API | Base URL | Style | Use it for |
|---|---|---|---|
| REST API v1 | https://www.taskade.com/api/v1 |
RESTful (GET/POST/PUT/DELETE) |
Full task CRUD, assignees, dates, notes, fields |
| Action API v2 | https://www.taskade.com/api/v2 |
Action / RPC (POST /{operation}), with REST-style exceptions for media, bundle downloads, and webhook registration |
Prompting agents, agent lifecycle, bundles, signed webhooks, task CRUD |
Live OpenAPI specs (source of truth) come from the running API:
- REST API v1 - interactive docs · openapi.json
- Action API v2 - interactive docs · openapi.json
- API catalog (RFC 9727) -
/.well-known/api-cataloglinks both specs and the hosted MCP server, so an agent can find them from one URLThe
/docs/rest/*and/docs/actions/*catalogs come from committed OpenAPI snapshots.The Getting Started, Guides, and MCP pages contain hand-written examples and patterns.
For an exact field or status code, use the generated catalog and its source spec.
Make your first call
Each API lists the projects that your account can open. Send the same token to both.
# REST API v1
curl -s https://www.taskade.com/api/v1/me/projects \
-H "Authorization: Bearer $TASKADE_TOKEN"
# Action API v2: every operation is a POST with a JSON body
curl -s -X POST https://www.taskade.com/api/v2/listMyProjects \
-H "Authorization: Bearer $TASKADE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
Both calls return ok: true and an items array. Each item carries the project id and name:
{
"ok": true,
"items": [
{ "id": "Pj8sK2nV4wQx6ZbE", "name": "API quickstart" }
]
}
The v1 item can also carry icon and completed.
Errors
Both APIs return the same JSON error envelope. The HTTP status matches the code. For example, POST /api/v2/webhooks on a Free plan returns 402:
{
"ok": false,
"message": "Webhooks require a Pro plan or higher.",
"code": "PAYMENT_REQUIRED",
"statusMessage": "Payment Required"
}
Branch on ok and code. Do not parse message.
Some PAYMENT_REQUIRED errors also carry a featureId field. It names the plan entitlement that the request needs. For example, a bundle export on a plan without export returns featureId: "space.bundle.export".
| What you see | Cause | Fix |
|---|---|---|
"code": "UNAUTHORIZED" with "message": "Unauthorized" |
The token is missing, wrong, or revoked | Send Authorization: Bearer $TASKADE_TOKEN. Make sure that the variable is set in the same terminal. |
"code": "FST_ERR_VALIDATION" |
The request body or a parameter does not match the schema | Read message. It names each field that failed, then the reason. |
"code": "PAYMENT_REQUIRED" |
The plan does not include this operation | Upgrade the plan, or read featureId to see which entitlement is missing. |
"code": "FORBIDDEN" |
Your account cannot do this in the workspace | Use an account with the correct role in that workspace. |
"code": "NOT_FOUND" |
The ID is wrong, or your account cannot see the item | Check the ID and your workspace access. |
"code": "TOO_MANY_REQUESTS" |
You hit a rate limit | Wait for the number of seconds in the Retry-After header, then send the request again. |
Developer resources
| Resource | Description |
|---|---|
| REST Endpoint Catalog | Generated from the committed v1 OpenAPI spec - exact methods, parameters, and response schemas |
| Actions Endpoint Catalog | Generated from the committed v2 OpenAPI spec - exact operation bodies and response schemas |
| REST API Guide | Hand-written REST concepts, examples, and usage patterns |
| Action API Guide | Hand-written action/RPC concepts, examples, and usage patterns |
| Authentication Guide | Personal access tokens and OAuth 2.0 (PKCE), including both hosted MCP options |
| Workspace MCP | Run @taskade/mcp-server to connect Claude Desktop, Cursor, and Claude Code (source) |
| Workspace MCP - Advanced | Multi-client setup, troubleshooting, security |
| Hosted Taskade MCP | Connect to https://www.taskade.com/mcp with OAuth or a Personal Access Token. Create and manage projects, edit tasks, manage and prompt agents, and edit Taskade Genesis app source |
| MCP Client connector | Outbound MCP through an automation. Point the connector at a remote MCP server. Agents do not call MCP servers directly (which MCP?) |
| Integration Kit (GitHub) | Open-source Zapier and n8n actions & triggers built on the public API - contribute or self-host |
| Webhooks | Trigger automations from external events and call any API |
| Agent Embeds | Add a public AI agent with an iframe or configurable widget |
| Bundles & App Kits | Import or export full Taskade Genesis apps as portable .tsk bundles |
| Long-Term Memory | Memory-as-Projects architecture - editable, queryable, API-addressable |
| Autonomous Agents | Automations, orchestration, cross-agent invocation patterns |
| TypeScript SDK (Preview) | Generated client for v2. It is not yet on public npm, so use the REST API |
| Contact support | Help from the Taskade team |
What you can build
- Custom dashboards that pull data from Taskade workspaces and projects
- CI/CD integrations that create tasks or update statuses on deploy
- AI assistants that manage tasks and agents through the MCP Server
- Internal tools that connect Taskade to your company's systems
- Automation bots that react to events and keep projects in sync
Next steps
- Quickstart: create a project and add tasks in about five minutes.
- Authentication: use OAuth 2.0 when your app acts for other Taskade users.
- Taskade API overview: the REST and Action APIs, side by side.
- Webhooks: get an event when data changes, instead of polling.
- Community apps: working examples built with Taskade.