Connect. Build. Automate. The Taskade API gives programmatic access to workspaces, projects, tasks, agents, and media.
Developer API - Build integrations that connect Taskade with your existing tools and workflows. The Taskade API gives RESTful endpoints for your workspace data.
Use the generated catalogs for exact endpoint contracts. The REST catalog comes from the committed v1 OpenAPI spec.The Actions catalog comes from the committed v2 OpenAPI spec. Getting Started, Guides, and MCP contain hand-written examples.
If a method, field, or response differs, use the generated catalog and its source spec.
API Overview
What You Can Build
You can build integrations that do this work:
📁 Workspace & Project Management:
- Access and manage workspaces and folders
- Create, copy, and manage projects
- Share projects via shareable links
✅ Task Management:
- Create, update, and complete tasks
- Assign team members to tasks
- Set due dates and manage task notes
- Work with custom fields
🤖 AI Agent Integration:
- Manage AI agents programmatically
- Add knowledge sources to agents
- Access agent conversations
- Configure public agent access
📎 Media Management:
- Access and manage uploaded media files
- Attach media to agent knowledge bases
API Base URL
https://www.taskade.com/api/v1
Authentication
Every API request requires OAuth 2.0 or a Personal Access Token.
Keep your API keys secret. Never put them in client-side code or in a public repository.
Getting Your Personal Access Token
- Go directly to https://www.taskade.com/settings/api.
- Click Create token.
- Copy the token.
- Store the token in a secret manager or environment variable.
- Use the token in the
Authorizationheader.
Authentication Headers
curl -X GET "https://www.taskade.com/api/v1/workspaces" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"
Core API Resources
Workspaces
Workspaces are the top-level containers that organize your projects and folders.
Available Endpoints:
GET /workspaces- Get all workspaces for the authenticated userGET /workspaces/{workspaceId}/folders- Get all folders in a workspacePOST /workspaces/{workspaceId}/projects- Create a project in a workspace
Folders
Folders (also called Subspaces) organize projects, agents, and media within a workspace.
Available Endpoints:
GET /folders/{folderId}/projects- Get all projects in a folderGET /folders/{folderId}/agents- Get all agents in a folderPOST /folders/{folderId}/agents- Create an agent in a folderPOST /folders/{folderId}/agent-generate- Generate an agent using AIGET /folders/{folderId}/medias- Get all media files in a folderGET /folders/{folderId}/project-templates- Get project templates in a folder
Projects
Projects contain tasks and represent your work items, documents, or structured data.
Available Endpoints:
GET /projects/{projectId}- Get a specific projectPOST /projects- Create a new projectPOST /projects/{projectId}/complete- Mark a project as completedPOST /projects/{projectId}/restore- Restore a completed projectPOST /projects/{projectId}/copy- Copy a project to a folderPOST /projects/from-template- Create a project from a templateGET /projects/{projectId}/members- Get project membersGET /projects/{projectId}/fields- Get project custom fieldsGET /projects/{projectId}/shareLink- Get the share link for a projectPUT /projects/{projectId}/shareLink- Enable/update share linkGET /projects/{projectId}/blocks- Get all blocks in a projectGET /projects/{projectId}/tasks- Get all tasks in a project
Tasks
Tasks are the fundamental work units within projects.
Available Endpoints:
GET /projects/{projectId}/tasks/{taskId}- Get a specific taskPUT /projects/{projectId}/tasks/{taskId}- Update a taskDELETE /projects/{projectId}/tasks/{taskId}- Delete a taskPOST /projects/{projectId}/tasks/- Create tasks in a projectPOST /projects/{projectId}/tasks/{taskId}/complete- Mark task as completePOST /projects/{projectId}/tasks/{taskId}/uncomplete- Mark task as incompletePUT /projects/{projectId}/tasks/{taskId}/move- Move a task within the project
Task Assignees:
GET /projects/{projectId}/tasks/{taskId}/assignees- Get task assigneesPUT /projects/{projectId}/tasks/{taskId}/assignees- Update task assigneesDELETE /projects/{projectId}/tasks/{taskId}/assignees/{assigneeHandle}- Remove an assignee
Task Dates:
GET /projects/{projectId}/tasks/{taskId}/date- Get task due datePUT /projects/{projectId}/tasks/{taskId}/date- Set/update task due dateDELETE /projects/{projectId}/tasks/{taskId}/date- Remove task due date
Task Notes:
GET /projects/{projectId}/tasks/{taskId}/note- Get task notePUT /projects/{projectId}/tasks/{taskId}/note- Update task noteDELETE /projects/{projectId}/tasks/{taskId}/note- Delete task note
Task Custom Fields:
GET /projects/{projectId}/tasks/{taskId}/fields- Get all field values for a taskGET /projects/{projectId}/tasks/{taskId}/fields/{fieldId}- Get a specific field valuePUT /projects/{projectId}/tasks/{taskId}/fields/{fieldId}- Update a field valueDELETE /projects/{projectId}/tasks/{taskId}/fields/{fieldId}- Delete a field value
AI Agents
AI Agents power intelligent interactions and automations.
Available Endpoints:
GET /agents/{agentId}- Get an agentPATCH /agents/{agentId}- Update an agentDELETE /agents/{agentId}- Delete an agentPUT /agents/{agentId}/publicAccess- Enable public access for an agent
Public Agent Configuration:
GET /agents/{agentId}/public-agent- Get public agent settingsPATCH /agents/{agentId}/public-agent- Update public agent settingsGET /public-agents/{publicAgentId}- Get a public agent by its public ID
Agent Knowledge:
POST /agents/{agentId}/knowledge/project- Add a project to agent knowledgePOST /agents/{agentId}/knowledge/media- Add media to agent knowledgeDELETE /agents/{agentId}/knowledge/project/{projectId}- Remove project from knowledgeDELETE /agents/{agentId}/knowledge/media/{mediaId}- Remove media from knowledge
Agent Conversations:
GET /agents/{agentId}/convos/- Get all agent conversationsGET /agents/{agentId}/convos/{convoId}- Get a specific conversation
Media
Manage uploaded files and media.
Available Endpoints:
GET /medias/{mediaId}- Get media detailsDELETE /medias/{mediaId}- Delete a media fileGET /medias/{mediaId}/download- Download one media fileGET /medias/spaces/{spaceId}/download- Download a space's mediaPOST /medias/spaces/{spaceId}/upload?filename=…- Upload a file to a space (raw request body)
Bundles
Export and import a workspace or a Taskade Genesis app as a portable bundle. See Bundles & App Kits.
Available Endpoints:
GET /bundles/{spaceId}/export- Export a space as a JSON bundleGET /bundles/{spaceId}/export/zip- Export a space as a.zipor.tskarchivePOST /bundles/{workspaceId}/import- Import a JSON bundlePOST /bundles/{workspaceId}/import/zip- Import a.zipor.tskarchive
User Projects
Access the authenticated user's projects.
Available Endpoints:
GET /me/projects- Get all projects for the current user
Error Handling
HTTP Status Codes
200 OK- Request successful400 Bad Request- Invalid request parameters401 Unauthorized- Authentication required402 Payment Required- The operation needs a higher plan, or the account is out of credits403 Forbidden- Insufficient permissions404 Not Found- Resource not found429 Too Many Requests- Rate limit exceeded4XX- Client error (see response body for details)
Error Response Format
{
"ok": false,
"message": "Error description",
"code": "ERROR_CODE",
"statusMessage": "HTTP status message"
}
code is an upper-case identifier such as UNAUTHORIZED, NOT_FOUND, PAYMENT_REQUIRED, or TOO_MANY_REQUESTS. Branch on ok and code. Do not parse message.
Code Examples
JavaScript/Node.js
const API_BASE = 'https://www.taskade.com/api/v1';
const TOKEN = 'your_access_token';
// Get all workspaces
const getWorkspaces = async () => {
const response = await fetch(`${API_BASE}/workspaces`, {
headers: {
'Authorization': `Bearer ${TOKEN}`,
'Content-Type': 'application/json'
}
});
return response.json();
};
// Get project tasks
const getProjectTasks = async (projectId) => {
const response = await fetch(`${API_BASE}/projects/${projectId}/tasks`, {
headers: {
'Authorization': `Bearer ${TOKEN}`,
'Content-Type': 'application/json'
}
});
return response.json();
};
// Create a task
const createTask = async (projectId, content) => {
const response = await fetch(`${API_BASE}/projects/${projectId}/tasks/`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${TOKEN}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
tasks: [{
contentType: 'text/markdown',
content: content,
placement: 'beforeend'
}]
})
});
return response.json();
};
Python
import requests
API_BASE = 'https://www.taskade.com/api/v1'
TOKEN = 'your_access_token'
headers = {
'Authorization': f'Bearer {TOKEN}',
'Content-Type': 'application/json'
}
# Get all workspaces
def get_workspaces():
response = requests.get(f'{API_BASE}/workspaces', headers=headers)
return response.json()
# Get project tasks
def get_project_tasks(project_id):
response = requests.get(f'{API_BASE}/projects/{project_id}/tasks', headers=headers)
return response.json()
# Complete a task
def complete_task(project_id, task_id):
response = requests.post(
f'{API_BASE}/projects/{project_id}/tasks/{task_id}/complete',
headers=headers
)
return response.json()
cURL Examples
# Get all workspaces
curl -X GET "https://www.taskade.com/api/v1/workspaces" \
-H "Authorization: Bearer YOUR_TOKEN"
# Get projects in a folder
curl -X GET "https://www.taskade.com/api/v1/folders/FOLDER_ID/projects" \
-H "Authorization: Bearer YOUR_TOKEN"
# Get an agent
curl -X GET "https://www.taskade.com/api/v1/agents/AGENT_ID" \
-H "Authorization: Bearer YOUR_TOKEN"
Best Practices
Security
- Store API tokens in environment variables or a secret manager.
- Use HTTPS for all API calls.
- Handle API errors.
- Never expose tokens in client-side code.
Performance
- Use pagination for large result sets.
- When the data permits caching, cache the responses.
- Handle rate limits with exponential backoff. Read
X-Rate-Limit-Resetfor the wait, because Taskade sends noRetry-After.
Data Management
- Validate data before you send it to the API.
- Record and retry eligible partial failures.
- Use cursor-based pagination for tasks and blocks.
Quick Start Guide
Get Your Access Token
Open https://www.taskade.com/settings/api and click Create token.
Make Your First API Call
Fetch your workspaces with cURL or your preferred language.
Explore the Endpoints
Review the available endpoints in each resource section.
Build Your Integration
Start with basic operations. When your integration needs more operations, add them.
Support and Resources
Documentation
- REST Endpoint Catalog - Generated from the committed v1 OpenAPI spec
- Actions Endpoint Catalog - Generated from the committed v2 OpenAPI spec
- Personal Access Tokens - Learn about authentication
- OAuth Authentication - OAuth 2.0 setup
Support
- Email: [email protected]
- Help Center: taskade.com/learn
💡 Tip: Start with the
/workspacesendpoint to discover your workspace structure. Then access data through folders and projects.