Files

2.7 KiB

Todoist Routing Reference

App name: todoist Base URL proxied: api.todoist.com

API Path Pattern

/todoist/api/v1/{resource}

Common Endpoints

List Projects

GET /todoist/api/v1/projects

Get Project

GET /todoist/api/v1/projects/{id}

Create Project

POST /todoist/api/v1/projects
Content-Type: application/json

{
  "name": "My Project",
  "color": "blue"
}

Update Project

POST /todoist/api/v1/projects/{id}
Content-Type: application/json

{
  "name": "Updated Name"
}

Delete Project

DELETE /todoist/api/v1/projects/{id}

List Tasks

GET /todoist/api/v1/tasks
GET /todoist/api/v1/tasks?project_id={project_id}
GET /todoist/api/v1/tasks?filter={filter}

Get Task

GET /todoist/api/v1/tasks/{id}

Create Task

POST /todoist/api/v1/tasks
Content-Type: application/json

{
  "content": "Buy groceries",
  "priority": 2,
  "due_string": "tomorrow"
}

Update Task

POST /todoist/api/v1/tasks/{id}
Content-Type: application/json

{
  "content": "Updated content",
  "priority": 4
}

Close Task (Complete)

POST /todoist/api/v1/tasks/{id}/close

Reopen Task

POST /todoist/api/v1/tasks/{id}/reopen

Delete Task

DELETE /todoist/api/v1/tasks/{id}

List Sections

GET /todoist/api/v1/sections
GET /todoist/api/v1/sections?project_id={project_id}

Create Section

POST /todoist/api/v1/sections
Content-Type: application/json

{
  "name": "In Progress",
  "project_id": "123456"
}

Delete Section

DELETE /todoist/api/v1/sections/{id}

List Labels

GET /todoist/api/v1/labels

Create Label

POST /todoist/api/v1/labels
Content-Type: application/json

{
  "name": "urgent",
  "color": "red"
}

Delete Label

DELETE /todoist/api/v1/labels/{id}

List Comments

GET /todoist/api/v1/comments?task_id={task_id}
GET /todoist/api/v1/comments?project_id={project_id}

Create Comment

POST /todoist/api/v1/comments
Content-Type: application/json

{
  "task_id": "123456",
  "content": "This is a comment"
}

Delete Comment

DELETE /todoist/api/v1/comments/{id}

Notes

  • Task and Project IDs are strings
  • Priority values: 1 (normal) to 4 (urgent)
  • Use only one due date format per request: due_string, due_date, or due_datetime
  • Comments require either task_id or project_id
  • Close/reopen/delete operations return 204 No Content

Resources