Todoist

Connect & Ingest data from Todoist

Todoist is a task management and productivity platform for organizing tasks, projects, and team collaboration. The Sling Todoist connector extracts data from the Todoist API v1, supporting projects, sections, tasks, labels, comments, and collaborators.

circle-check

Setup

The following credentials are accepted:

Secrets:

  • api_token (required) -> Your Todoist API Token

Getting Your API Token

  1. Click your avatar (top-left corner)

  2. Go to Settings

  3. Navigate to Integrations in the left sidebar

  4. Click Developer

  5. Copy your API token

circle-exclamation

Using sling conns

Here are examples of setting a connection named TODOIST. We must provide the type=api property:

Environment Variable

See here to learn more about the .env.sling file.

Sling Env File YAML

See here to learn more about the sling env.yaml file.

Replication

Here's an example replication configuration to sync Todoist data to a PostgreSQL database:

Sync specific endpoints:

Endpoints

Endpoint
Description
Incremental
Depends On

projects

All projects accessible to the authenticated user

No

β€”

sections

All sections across all projects

No

β€”

tasks

All active tasks

No

β€”

labels

All personal labels

No

β€”

comments

Comments for each task

No

tasks

collaborators

Collaborators for each project

No

projects

The connector uses a queue-based architecture to handle Todoist's hierarchical structure. The projects endpoint populates project IDs used by collaborators. The tasks endpoint populates task IDs used by comments.

To discover available endpoints:

Endpoint Details

projects β€” Returns all projects the authenticated user has access to, including inbox project, shared projects, and their settings (color, view style, access permissions).

sections β€” Returns all sections across all projects, including section names, ordering, and archive status.

tasks β€” Returns all active (non-completed) tasks with full detail: content, description, priority, due dates, labels, parent task, project, and section assignment.

labels β€” Returns all personal labels created by the user, including label names, colors, and ordering.

comments β€” Returns all comments for each task. Iterates over task IDs collected from the tasks endpoint. Includes comment content, author, timestamps, and file attachments.

collaborators β€” Returns all collaborators for each project. Iterates over project IDs collected from the projects endpoint. Includes collaborator names and email addresses.

Rate Limiting

The Todoist API enforces rate limits:

  • Standard limit: 1000 requests per 15 minutes

The connector automatically:

  • Uses conservative rate limiting (1 request/second with concurrency of 3)

  • Retries with exponential backoff on 429 (rate limit) responses, up to 5 attempts

  • Retries with exponential backoff on 5xx server errors, up to 3 attempts

Common Use Cases

Sync All Todoist Data

Sync Tasks and Comments Only

Export Projects and Collaborators

If you are facing issues connecting, please reach out to us at [email protected]envelope, on discordarrow-up-right or open a Github Issue herearrow-up-right.

Last updated

Was this helpful?