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.
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:
{
"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.
