Skip to main content

todoist-takeout

tests PyPI version Python versions

A command-line tool that keeps a complete, long-term readable local backup of a Todoist account, and lets you browse it in your web browser.

Why

Todoist is a cloud service, so your data is only reachable through it. If the service shuts down, or you lose access to your account for any other reason, the data is gone. todoist-takeout keeps a local copy that:

  • stays readable for years, without Todoist and without this tool,
  • includes your history, meaning completed tasks and not only the ones still open,
  • can serve as the source for migrating to another service.

What you get

  • Everything, not just open tasks: projects, sections, labels, tasks and comments, every completed task since the account was created, every completion of a recurring task, archived projects, and the files uploaded to comments.
  • Plain, documented files: the API's own JSON, one file per object, with a format description that every backup carries along.
  • Fast daily runs: after the first run, only what changed is downloaded. An interrupted run simply continues where it stopped.
  • Browse and search it: a SQLite database for Datasette, with filters, full-text search and ready-made views of your open tasks, everything you completed, and how regularly you do your recurring tasks.
  • Safe and simple: no dependencies beyond Python, runs on Windows, macOS and Linux, and your API token goes to Todoist and nowhere else.

The open tasks of a demo account in Datasette, with facets by project, priority, overdue and recurring

Quick start

todoist-takeout needs Python 3.11 or newer, which uv installs if needed. Install todoist-takeout with uv:

uv tool install todoist-takeout

With pipx, use pipx install todoist-takeout instead, and pipx run datasette where the commands below use uvx datasette.

Copy your API token from Todoist (Settings → Integrations → Developer) into the environment, back up your account, and open the result in Datasette:

export TODOIST_API_TOKEN=0123456789abcdef0123456789abcdef01234567
todoist-takeout backup-and-sqlite ~/Backups/todoist
uvx datasette ~/Backups/todoist

Then open the address that Datasette prints, usually http://127.0.0.1:8001. Run the same backup-and-sqlite command again at any time to bring the backup and the database up to date. The first run on a large account can take a while; see Backing up.

To keep only the JSON backup, use todoist-takeout backup instead.

Run it daily

The tool never asks for input, so a scheduler can run it every night: Scheduling has examples for cron, launchd and the Windows Task Scheduler.

Documentation

  • Backing up: the token, what the backup contains, large accounts, the Free plan, options, output and exit status.
  • Viewing the backup: backup-and-sqlite and sqlite, the directory layout, and the tables and views of the database.
  • Scheduling: unattended daily runs.
  • Platform notes: macOS certificates, network drives, Windows long paths.
  • Format description: the layout and files of a backup, for reading it without this tool.

Contributing

Installing the unreleased code from the repository, setting up a development environment, running the checks and the tests, the requirements and the key design decisions are described in CONTRIBUTING.md.

License

MIT

Metadata

Release files for todoist-takeout 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for todoist-takeout 0.1.0
File Size Uploaded Provenance Actions
todoist_takeout-0.1.0.tar.gz 379.5 kB With provenance Details for todoist_takeout-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for todoist-takeout 0.1.0
File Interpreter ABI Platform Actions
todoist_takeout-0.1.0-py3-none-any.whl Python 3 none any Details for todoist_takeout-0.1.0-py3-none-any.whl

Total release size: 450.3 kB

Release files / todoist_takeout-0.1.0.tar.gz

Download URL todoist_takeout-0.1.0.tar.gz
Size 379.5 kB
Tags Source
SHA-256 checksum
How to use checksums
31ada0e203ffdbc68dbf2a9d43d1d48f82200db867329f43c72fd4e98d8d8080
BLAKE2b-256 checksum
How to use checksums
203af3e1098be3e3a60e2b0c344fc60d005ba40d3bcc926a2eec090a5edb474a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.

Transparency log

Release files / todoist_takeout-0.1.0-py3-none-any.whl

Download URL todoist_takeout-0.1.0-py3-none-any.whl
Size 70.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8d947f5f788f6931818ee07be4293fc46f5f6cb47b34dca536097b287a2cfb11
BLAKE2b-256 checksum
How to use checksums
8f2b6cba26f82ff5122231ac7b7c8989014592d108d39f449f7de07f52f568e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.

Transparency log

Security for todoist-takeout 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for todoist_takeout-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page