developers

Your data is yours.

Every 42 Todo! account can be exported — all of it — as one portable, documented JSON file. Import it back, move it elsewhere, or build against the format. No lock-in, by design.

JSON SchemaFull specification (RFC 0001)
{
  "$schema": "https://www.42todo.com/schemas/export/v1.json",
  "format": "42todo-export",
  "version": 1,
  "exportedAt": "2026-08-08T17:04:00.000Z",
  "spaces": [
    { "id": "general", "name": "inbox", "type": "general", "system": true },
    { "id": "01J4XQ8Z3N…", "name": "Q3 Launch", "type": "project" }
  ],
  "tasks": [
    {
      "title": "Write launch announcement",
      "completed": false,
      "dueDate": "2026-08-15",
      "dueTime": "09:00",
      "space": "01J4XQ8Z3N…"
    },
    { "title": "Pick up dry cleaning", "completed": false, "space": "general" }
  ]
}

A document is one UTF-8 JSON object: an envelope, your spaces, your tasks. Media type application/vnd.42todo.export+json.

Ids are file-local

Ids only wire tasks to spaces inside the document. Importers mint fresh ids and never treat a file’s ids as identity — so files from any tool can be imported safely.

Dates float

Due dates (YYYY-MM-DD) and times (HH:MM) carry no timezone and are never converted. August 15th means August 15th wherever you are. Absolute instants like exportedAt are RFC 3339 UTC.

Imports are predictable

Spaces merge with yours by name, so re-importing never duplicates a space. Tasks are always added. Every import can be dry-run first — the server reports exactly what it would create before anything is written.

Forward compatible

Readers ignore unknown fields; the version number only changes for breaking changes. Third-party tools can carry their own data in namespaced ext objects.

Try it now

Export lives in your dashboard under Settings → Export your data — one click for JSON or CSV. AI assistants connected over MCP get the same capability through the export_data and import_data tools.

Open your settings