Build with Todoist

The central hub for the Todoist developer platform. One API, official SDKs, a CLI, and an MCP server — built for developers and agents.

Free to use with any Todoist account.

Everything you need to build

Pick the building block that fits your project. They all interface with the same object model — tasks, projects, sections, comments — and share one unified approach to authentication.

API

A unified, (mostly) RESTful API for tasks, projects, sections, comments, and more. Fully described by an OpenAPI specification.

SDKs

Official Python and TypeScript SDKs with typed access to the full API, published to PyPI and npm.

MCP server

Our hosted Model Context Protocol server connects Claude, ChatGPT, Cursor, VS Code, and others to Todoist with a one-minute OAuth setup.

CLI

The official td command line: quick capture and terminal workflows for humans.

Webhooks

HTTP callbacks the moment things change, so your integration reacts in real time instead of polling.

Sync endpoint

The batching endpoint that powers our first-party apps: read and write many resources in a single request.

AI agents welcome

Agents are first-class users of Todoist. Whether it's a personal assistant using MCP or a coding agent in your terminal, they get the same full-featured access.

Connect over MCP

Add the hosted server to Claude, ChatGPT, Cursor, VS Code, or another MCP-compatible client, and authorize with OAuth. Setup guide

# Server URL (Streamable HTTP)
https://ai.todoist.net/mcp

# e.g. Claude Code
claude mcp add --transport http todoist https://ai.todoist.net/mcp

Give your coding agent the CLI

JSON output, dry runs, and installable skills for Claude Code, Codex, Copilot, Gemini, and more. CLI reference

npm install -g @doist/todoist-cli
td auth login

# Support for various agents
td skill install claude-code
td skill install codex

Make your first call

Grab your API token from Todoist under Settings → Integrations → Developer, then create a task:

curl "https://api.todoist.com/api/v1/tasks" \
  -H "Authorization: Bearer $TODOIST_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"content": "Ship the integration", "due_string": "tomorrow"}'

Building for other people? Use OAuth authorization instead of a personal token.