Access the TickTick API with managed OAuth authentication. Manage tasks and projects with full CRUD operations.
Reference
List Projects
GET /ticktick/open/v1/projectResponse:
[
{
"id": "6984773291819e6d58b746a8",
"name": "🏡Memo",
"sortOrder": 0,
"viewMode": "list",
"kind": "TASK"
},
{
"id": "6984773291819e6d58b746a9",
"name": "🦄Wishlist",
"sortOrder": -1099511627776,
"viewMode": "list",
"kind": "TASK"
}
]Get Project with Tasks
GET /ticktick/open/v1/project/{projectId}/dataResponse:
{
"project": {
"id": "69847732b8e5e969f70e7460",
"name": "👋Welcome",
"sortOrder": -3298534883328,
"viewMode": "list",
"kind": "TASK"
},
"tasks": [
{
"id": "69847732b8e5e969f70e7464",
"projectId": "69847732b8e5e969f70e7460",
"title": "Sample task",
"content": "Task description",
"priority": 0,
"status": 0,
"tags": [],
"isAllDay": false
}
],
"columns": [
{
"id": "69847732b8e5e969f70e7463",
"projectId": "69847732b8e5e969f70e7460",
"name": "Getting Start",
"sortOrder": -2199023255552
}
]
}Create Project
POST /ticktick/open/v1/project
Content-Type: application/json
{
"name": "My New Project",
"viewMode": "list"
}Response:
{
"id": "69870cbe8f08b4a6770a38d3",
"name": "My New Project",
"sortOrder": 0,
"viewMode": "list",
"kind": "TASK"
}viewMode options:
list- List viewkanban- Kanban board viewtimeline- Timeline view
Delete Project
DELETE /ticktick/open/v1/project/{projectId}Returns empty response on success (status 200).
Get Task
GET /ticktick/open/v1/project/{projectId}/task/{taskId}Response:
{
"id": "69847732b8e5e969f70e7464",
"projectId": "69847732b8e5e969f70e7460",
"sortOrder": -1099511627776,
"title": "Task title",
"content": "Task description/notes",
"timeZone": "Asia/Shanghai",
"isAllDay": true,
"priority": 0,
"status": 0,
"tags": [],
"columnId": "69847732b8e5e969f70e7461",
"etag": "2sayfdsh",
"kind": "TEXT"
}Create Task
POST /ticktick/open/v1/task
Content-Type: application/json
{
"title": "New task",
"projectId": "6984773291819e6d58b746a8",
"content": "Task description",
"priority": 0,
"dueDate": "2026-02-15T10:00:00+0000",
"isAllDay": false
}Response:
{
"id": "69870cb08f08b86b38951175",
"projectId": "6984773291819e6d58b746a8",
"sortOrder": -1099511627776,
"title": "New task",
"timeZone": "America/Los_Angeles",
"isAllDay": false,
"priority": 0,
"status": 0,
"tags": [],
"etag": "gl7ibhor",
"kind": "TEXT"
}Priority values:
0- None1- Low3- Medium5- High
Update Task
POST /ticktick/open/v1/task/{taskId}
Content-Type: application/json
{
"id": "69870cb08f08b86b38951175",
"projectId": "6984773291819e6d58b746a8",
"title": "Updated task title",
"priority": 1
}Response:
{
"id": "69870cb08f08b86b38951175",
"projectId": "6984773291819e6d58b746a8",
"title": "Updated task title",
"priority": 1,
"status": 0,
"etag": "hmb7uk8c",
"kind": "TEXT"
}Complete Task
POST /ticktick/open/v1/project/{projectId}/task/{taskId}/completeReturns empty response on success (status 200).
Delete Task
DELETE /ticktick/open/v1/project/{projectId}/task/{taskId}Returns empty response on success (status 200).