# Todoist

Manage Todoist: projects, sections, tasks, comments, and labels. Exposes **32 actions** covering the full API surface
the agent needs - read and write.

## What it can do

| Method | What it does |
| --- | --- |
| `todoist_get_user` | Get authenticated user info - GET /sync/v9/user. |
| `todoist_list_projects` | List all projects - GET /projects. |
| `todoist_get_project` | Get one project - GET /projects/&#123;project_id&#125;. |
| `todoist_create_project` | Create a project - POST /projects. |
| `todoist_update_project` | Update a project - POST /projects/&#123;project_id&#125;. |
| `todoist_delete_project` | Delete a project - DELETE /projects/&#123;project_id&#125;. |
| `todoist_list_sections` | List sections in a project - GET /sections?project_id=ID. |
| `todoist_get_section` | Get one section - GET /sections/&#123;section_id&#125;. |
| `todoist_create_section` | Create a section - POST /sections. |
| `todoist_update_section` | Update a section - POST /sections/&#123;section_id&#125;. |
| `todoist_delete_section` | Delete a section - DELETE /sections/&#123;section_id&#125;. |
| `todoist_list_tasks` | List tasks - GET /tasks. |
| `todoist_get_task` | Get one task - GET /tasks/&#123;task_id&#125;. |
| `todoist_create_task` | Create a task - POST /tasks. |
| `todoist_update_task` | Update a task - POST /tasks/&#123;task_id&#125;. |
| `todoist_delete_task` | Delete a task - DELETE /tasks/&#123;task_id&#125;. |
| `todoist_close_task` | Close a task (mark complete) - POST /tasks/&#123;task_id&#125;/close. |
| `todoist_reopen_task` | Reopen a task (mark incomplete) - POST /tasks/&#123;task_id&#125;/reopen. |
| `todoist_list_comments` | List comments on a task or project - GET /comments. |
| `todoist_get_comment` | Get one comment - GET /comments/&#123;comment_id&#125;. |
| `todoist_create_comment` | Create a comment - POST /comments. |
| `todoist_update_comment` | Update a comment - POST /comments/&#123;comment_id&#125;. |
| `todoist_delete_comment` | Delete a comment - DELETE /comments/&#123;comment_id&#125;. |
| `todoist_list_labels` | List all labels - GET /labels. |
| `todoist_get_label` | Get one label - GET /labels/&#123;label_id&#125;. |
| `todoist_create_label` | Create a label - POST /labels. |
| `todoist_update_label` | Update a label - POST /labels/&#123;label_id&#125;. |
| `todoist_delete_label` | Delete a label - DELETE /labels/&#123;label_id&#125;. |
| `todoist_list_collaborators` | List collaborators on a project - GET /projects/&#123;project_id&#125;/collaborators. |
| `todoist_add_collaborator` | Add a collaborator to a project - POST /projects/&#123;project_id&#125;/collaborators. |
| `todoist_update_collaborator` | Update a collaborator's role - PUT /projects/&#123;project_id&#125;/collaborators/&#123;user_id&#125;. |
| `todoist_remove_collaborator` | Remove a collaborator from a project - DELETE /projects/&#123;project_id&#125;/collaborators/&#123;user_id&#125;. |

## How to get credentials

This connector uses an **API key / token**. Create one in the provider
dashboard, then paste it into FlyMyAI:

- **`TODOIST_API_TOKEN`** - Todoist - Settings - Integrations - Developer - API token. (https://todoist.com/app/settings/integrations/developer)

## Fields to fill in FlyMyAI

| FlyMyAI field | Where it comes from |
| --- | --- |
| `TODOIST_API_TOKEN` | Todoist - Settings - Integrations - Developer - API token. |

## Troubleshooting

- **`401 Unauthorized` / `403 Forbidden`** - the token is wrong, expired, or missing a required scope - regenerate it.
- **`429 Too Many Requests`** - you hit the provider rate limit; retry after a short backoff.
- **Unexpected `4xx` on writes** - double-check required fields; the agent confirms before write actions.

## Links

- [Todoist API documentation](https://developer.todoist.com/rest/v2)
