download dots
Public API Reference

Public API Reference

Updated 2026-04-04ยท6 min read
On this page (20)

Overview

The Taskade Public API lets you programmatically manage workspaces, projects, tasks, AI agents, and media. Use it to build custom integrations, automate workflows from external systems, or sync Taskade with your own tools.

Base URL: https://www.taskade.com/api/v1

๐Ÿ’ก Note: For a high-level introduction, see the Developer API overview. For MCP-based access, see Taskade MCP Server.


Authentication

Personal Access Token

The simplest way to authenticate. Generate a token at Settings โ†’ Developer.

Bash
curl -H "Authorization: Bearer YOUR_TOKEN" \
  https://www.taskade.com/api/v1/me/projects

OAuth 2.0

For apps that act on behalf of users:

  • Authorize: https://www.taskade.com/oauth2/authorize
  • Token: https://www.taskade.com/oauth2/token

Standard authorization code flow. Include Authorization: Bearer ACCESS_TOKEN on all requests.


Endpoints

Workspaces

Method Endpoint Description
GET /workspaces List all workspaces
GET /workspaces/{id}/folders List folders in a workspace
POST /workspaces/{id}/projects Create a project in a workspace

Folders

Method Endpoint Description
GET /folders/{id}/projects List projects in a folder
GET /folders/{id}/agents List agents in a folder
GET /folders/{id}/media List media in a folder
GET /folders/{id}/templates List project templates
POST /folders/{id}/agents Create an agent
POST /folders/{id}/agents/generate Generate an agent with AI

Projects

Method Endpoint Description
GET /projects/{id} Get a project
POST /projects Create a project
POST /projects/{id}/copy Copy a project
PUT /projects/{id}/complete Mark project as complete
PUT /projects/{id}/restore Restore a completed project
POST /projects/from-template Create from a template
GET /projects/{id}/members List project members
GET /projects/{id}/fields List custom fields
GET /projects/{id}/share-link Get share link
PUT /projects/{id}/share-link Enable/disable share link
GET /projects/{id}/blocks Get content blocks
GET /projects/{id}/tasks List all tasks

Tasks

Method Endpoint Description
POST /projects/{id}/tasks Create a task
GET /tasks/{id} Get a task
PUT /tasks/{id} Update a task
DELETE /tasks/{id} Delete a task
PUT /tasks/{id}/complete Mark task as complete
PUT /tasks/{id}/uncomplete Mark task as incomplete
PUT /tasks/{id}/move Move task to another project
GET /tasks/{id}/assignees List assignees
POST /tasks/{id}/assignees Add assignee
DELETE /tasks/{id}/assignees/{uid} Remove assignee
GET /tasks/{id}/dates Get due dates
PUT /tasks/{id}/dates Set due dates
GET /tasks/{id}/notes Get task notes
PUT /tasks/{id}/notes Update task notes
GET /tasks/{id}/field-values Get custom field values
PUT /tasks/{id}/field-values Set custom field values

AI Agents

Method Endpoint Description
GET /agents/{id} Get an agent
PUT /agents/{id} Update agent settings
DELETE /agents/{id} Delete an agent
PUT /agents/{id}/public-access Enable/disable public access
GET /agents/{id}/public Get public agent settings
POST /agents/{id}/knowledge/project Add project to knowledge
DELETE /agents/{id}/knowledge/project Remove project from knowledge
POST /agents/{id}/knowledge/media Add media to knowledge
DELETE /agents/{id}/knowledge/media Remove media from knowledge
GET /agents/{id}/conversations List conversations
GET /agents/{id}/conversations/{cid} Get a conversation

Media & User

Method Endpoint Description
GET /media/{id} Get media details
DELETE /media/{id} Delete media
GET /me/projects List your projects

Bundles (Genesis Apps)

Method Endpoint Description
GET /bundles/{spaceId}/export Export a Genesis app as .tsk file
POST /bundles/{workspaceId}/import Import a .tsk bundle into a workspace

Pagination

The API supports two pagination styles:

Page-based (most endpoints):

GET /projects/{id}/tasks?limit=20&page=2

Cursor-based (tasks and blocks):

GET /projects/{id}/tasks?after={taskId}&limit=20

Error Handling

All errors return a consistent envelope:

Json
{
  "ok": false,
  "message": "Project not found",
  "code": "NOT_FOUND",
  "statusMessage": "Not Found"
}

Common status codes: 400 (bad request), 401 (unauthorized), 403 (forbidden), 404 (not found), 429 (rate limited).


Rate Limits

API requests are rate-limited per token. Response headers include:

Header Description
X-RateLimit-Limit Max requests per window
X-RateLimit-Remaining Requests remaining
X-RateLimit-Reset Window reset time (Unix timestamp)

If you hit the limit, wait until the reset time before retrying.


Webhooks

Inbound (External โ†’ Taskade)

External services can POST JSON to a Taskade-generated webhook URL to trigger automations. Set up inbound webhooks in Automations โ†’ Webhooks trigger.

Outbound (Taskade โ†’ External)

Use the HTTP Request action in automations to call external APIs when triggers fire.


Frequently Asked Questions

Where do I get my API key?

Go to Settings โ†’ Developer and create a Personal Access Token.

Is there a TypeScript SDK?

The @taskade/sdk package is in preview. It provides typed methods like taskade.workspaces.list(), taskade.tasks.create(), and taskade.agents.get().

Can I export and import Genesis apps?

Yes. Use the Bundles API to export apps as .tsk files and import them into other workspaces.