Todoist
Read and write Todoist tasks - browse and create projects, list and filter tasks with Todoist's own filter syntax, create, update, complete, reopen and delete them, and work their comment threads.
Connect a Todoist account with an API token to run its tasks end to end: list and create projects, page through active tasks or find them with Todoist's saved-filter syntax ("today", "overdue", "@work & p1"), read a task in full including whether it recurs, create tasks and subtasks with natural-language due dates, labels and priorities, update them, complete or reopen them, delete them, and read and post comments on tasks and projects. Everything written through this connection is attributed in Todoist to the person whose token it is.
Connect
| Credential field | Required | Where it comes from |
|---|---|---|
API token (API_TOKEN) | Yes | From Settings → Integrations → Developer. It carries the full access of the account it belongs to - there are no scopes to narrow it - and every write is attributed to them. |
Tools
| Tool | Access | What it does |
|---|---|---|
List projects (yekar.todoist.list-projects) | Read | A page of this token's Todoist projects, including which one is the Inbox. A project id is what List tasks and Create task take. |
Create project (yekar.todoist.create-project) | Write | Create a Todoist project, optionally nested under another. Todoist has no dry run: the project exists as soon as this returns. |
List tasks (yekar.todoist.list-tasks) | Read | A page of ACTIVE tasks, optionally narrowed to a project, section, parent task or label. Completed tasks are not returned at all - not even marked done - so their absence is not evidence they were deleted. |
Filter tasks (yekar.todoist.filter-tasks) | Read | Find tasks with a Todoist filter query - the same syntax as its saved filters ("today", "overdue", "@work & p1", "#Project & due before: next week"). Matches active tasks only; completed ones never appear. |
Get task (yekar.todoist.get-task) | Read | One task in full - content, description, labels, priority (as a word AND as Todoist's own P-label), due date, and whether it RECURS, which decides what completing it will do. |
Create task (yekar.todoist.create-task) | Write | Create a task, optionally in a project or as a subtask. A natural-language due string like "every monday" makes it RECURRING. Todoist has no dry run: the task exists as soon as this returns. |
Update task (yekar.todoist.update-task) | Write | Change a task - its text, description, labels, priority, due date or deadline. Only the fields you pass are touched, and labels REPLACE rather than add. This does not complete a task; use Close task for that. |
Close task (yekar.todoist.close-task) | Write | Complete a task. If the task RECURS, Todoist reschedules it to its next occurrence instead of finishing it - and answers identically either way - so this reports which actually happened. |
Reopen task (yekar.todoist.reopen-task) | Write | Un-complete a task, putting it back in the active task list. This is the counterpart to Close task - a deleted task cannot be reopened. |
Delete task (yekar.todoist.delete-task) | Write | PERMANENTLY delete a task and its subtasks. Todoist has no trash and nothing can undo this. Close task is the reversible operation and is almost always what is wanted instead. |
List comments (yekar.todoist.list-comments) | Read | A page of the comments on one task, or on one project. Todoist reports no total here - Get task carries its own comment count for a task. |
Add comment (yekar.todoist.add-comment) | Write | Post a comment on a task or a project, attributed to the user whose token this connection holds. Everyone the item is shared with is notified - there is no draft state and no unsend. |
Notes
- Copy the API token from Todoist under Settings → Integrations → Developer and paste it here.
- The token IS that person's Todoist: it carries exactly their access, and every task, completion and comment made through this connection appears under their name. Bind automations using this integration as service connections so the attribution is a role rather than an individual's side effect.
- There is no scope picker on a Todoist API token - the only ceiling is the account it belongs to. Create it from an account whose reach matches what the automation should be able to touch.
- Completing a RECURRING task does NOT finish it: Todoist advances it to its next occurrence and answers exactly as it would for a one-off. Close task reads the task first so it can tell you which of the two actually happened.
- A completed task disappears from the task endpoints entirely - it is not returned marked done, and no flag brings it back - so a task's absence from a listing is not evidence it was deleted. Reopen task restores a completed one; a DELETED task cannot be recovered at all.
- Priority is inverted twice: on the wire 4 is the most urgent, while Todoist's UI calls that same priority P1. Every tool here takes the word - urgent, high, medium, normal - and reports both renderings back, so neither inversion can bite.
- Due dates are parsed from natural language, which is Todoist's best feature and its most surprising: "every monday" creates a RECURRING task rather than a one-off.
- Rate limits are 1,000 requests per 15 minutes per user, shared by everything using that token.
- Add one credential per token - a personal and a shared-account token can live on the same connection.