Files
openclaw-workspace/skills/api-gateway/references/todoist.md
2026-04-11 09:45:12 -05:00

177 lines
2.7 KiB
Markdown

# Todoist Routing Reference
**App name:** `todoist`
**Base URL proxied:** `api.todoist.com`
## API Path Pattern
```
/todoist/rest/v2/{resource}
```
## Common Endpoints
### List Projects
```bash
GET /todoist/rest/v2/projects
```
### Get Project
```bash
GET /todoist/rest/v2/projects/{id}
```
### Create Project
```bash
POST /todoist/rest/v2/projects
Content-Type: application/json
{
"name": "My Project",
"color": "blue"
}
```
### Update Project
```bash
POST /todoist/rest/v2/projects/{id}
Content-Type: application/json
{
"name": "Updated Name"
}
```
### Delete Project
```bash
DELETE /todoist/rest/v2/projects/{id}
```
### List Tasks
```bash
GET /todoist/rest/v2/tasks
GET /todoist/rest/v2/tasks?project_id={project_id}
GET /todoist/rest/v2/tasks?filter={filter}
```
### Get Task
```bash
GET /todoist/rest/v2/tasks/{id}
```
### Create Task
```bash
POST /todoist/rest/v2/tasks
Content-Type: application/json
{
"content": "Buy groceries",
"priority": 2,
"due_string": "tomorrow"
}
```
### Update Task
```bash
POST /todoist/rest/v2/tasks/{id}
Content-Type: application/json
{
"content": "Updated content",
"priority": 4
}
```
### Close Task (Complete)
```bash
POST /todoist/rest/v2/tasks/{id}/close
```
### Reopen Task
```bash
POST /todoist/rest/v2/tasks/{id}/reopen
```
### Delete Task
```bash
DELETE /todoist/rest/v2/tasks/{id}
```
### List Sections
```bash
GET /todoist/rest/v2/sections
GET /todoist/rest/v2/sections?project_id={project_id}
```
### Create Section
```bash
POST /todoist/rest/v2/sections
Content-Type: application/json
{
"name": "In Progress",
"project_id": "123456"
}
```
### Delete Section
```bash
DELETE /todoist/rest/v2/sections/{id}
```
### List Labels
```bash
GET /todoist/rest/v2/labels
```
### Create Label
```bash
POST /todoist/rest/v2/labels
Content-Type: application/json
{
"name": "urgent",
"color": "red"
}
```
### Delete Label
```bash
DELETE /todoist/rest/v2/labels/{id}
```
### List Comments
```bash
GET /todoist/rest/v2/comments?task_id={task_id}
GET /todoist/rest/v2/comments?project_id={project_id}
```
### Create Comment
```bash
POST /todoist/rest/v2/comments
Content-Type: application/json
{
"task_id": "123456",
"content": "This is a comment"
}
```
### Delete Comment
```bash
DELETE /todoist/rest/v2/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
- [Todoist REST API v2 Documentation](https://developer.todoist.com/rest/v2)
- [Todoist Filter Syntax](https://todoist.com/help/articles/introduction-to-filters)