Skip to content

Export your data

Your data belongs to you. The project owner can download the whole project at any time, on every plan, from Project Settings → Export the project. The result is a ZIP archive you can open, read, and reuse anywhere — another CMS, your own database, a spreadsheet.

What the archive contains

ekit-export.json      everything in one file (see the format below)
csv/<table>.csv       one spreadsheet per table (UTF-8)
media/                files and images of your entries
sites/<site id>/      source code of each site: views, layouts, partials, i18n, assets, meta.json
README.txt            a short description of the archive

Never included, on purpose: secret values (only their names are listed), API tokens, collaborators and invitations, site version history, AI usage.

Format of ekit-export.json (ekit-export/1)

{
  "format": "ekit-export/1",
  "exportedAt": "2026-10-01T12:00:00.000Z",
  "project": {
    "id": "6989c6835aa08414bd86a290",
    "name": { "en": "My project", "fr": "Mon projet" },
    "description": { "en": "…", "fr": "…" },
    "website": null,
    "langs": ["en", "fr"],
    "defaultLang": "en",
    "createdAt": "…", "updatedAt": "…"
  },
  "tables": [
    {
      "id": "6989c6905aa08414bd86a295",
      "slug": "articles",
      "name": { "en": "Articles", "fr": "Articles" },
      "description": { "en": null, "fr": null },
      "createdAt": "…", "updatedAt": "…",
      "fields": [
        {
          "id": "6989d1683c2c69c3e3f80fbc",
          "slug": "title",
          "type": "text",
          "typeId": "5912f7034c3181110079e09e",
          "multilingual": true,
          "name": { "en": "Title", "fr": "Titre" },
          "description": { "en": null, "fr": null },
          "order": 1,
          "isTitle": true,
          "required": false,
          "linkedTable": null,
          "config": {}
        }
      ],
      "entries": [
        {
          "id": "6989d1703c2c69c3e3f80fc1",
          "slug": "hello-world",
          "createdAt": "…", "updatedAt": "…",
          "values": {
            "title": { "en": "Hello world", "fr": "Bonjour le monde" },
            "price": 12,
            "author": ["696b3f01a32ddc00adc58d41"],
            "cover": { "url": "media/6989c6905aa08414bd86a295/1700000000-photo.png", "name": "photo.png" }
          }
        }
      ],
      "entryCount": 1
    }
  ],
  "sites": [
    {
      "id": "6989c7805aa08414bd86a2c2",
      "slug": null,
      "name": { "en": "Website", "fr": "Site" },
      "domain": null,
      "folder": "sites/6989c7805aa08414bd86a2c2/",
      "hasFiles": true,
      "methods": [ { "id": "…", "name": "Weather", "slug": "weather", "request": { "…": "…" } } ],
      "secrets": [ { "name": "WEATHER_KEY", "createdAt": "…", "updatedAt": "…" } ]
    }
  ],
  "media": { "folder": "media/" },
  "summary": { "tables": 1, "fields": 1, "entries": 1, "sites": 1, "methods": 1 }
}

Values

Entry values are keyed by field slug (or field id when a field has no slug).

Field type Exported value
multilingual field one value per language: { "en": …, "fr": … }
text, textarea, richtext (HTML), email, url, color, date, datetime string
number number
checkbox boolean (older entries may contain "true" / "false")
relation array of entry ids of the linked table (linkedTable)
enum entry id of the selected option (in linkedTable)
file { "url": "media/…", "urlThumb": "media/…/thumbs/…" (images only), "name", "type", "kind" ("image", "document" or "media"), "size" } or an array of these
map [latitude, longitude]

A missing value is null. Ids are the ones used by Ekit: relations and options always point to entries present in the same export (when the linked table belongs to the project).

CSV files

One file per table, UTF-8 with BOM (opens correctly in Excel). Columns: id, slug, one column per field — one column per language for multilingual fields (title_en, title_fr) — then createdAt, updatedAt. Relations are listed as comma-separated ids, files as their path in media/. Cells starting with =, +, - or @ are prefixed with ' so that spreadsheets never run them as formulas.

Download a single site

To get only the code of one site, open it in the site editor, then the Versions panel:

  • Download the site (.zip) (button at the top of the panel, also in the ⋯ menu on small screens) — the current files, in their real folders (views/, layouts/, partials/, i18n/, assets/, meta.json), plus methods.json with the site's Methods and the names of its secrets;
  • the download button of a version — that version of the site, as regular files, without restoring it.

Project members (owner and collaborators) can download sites.

Limits

  • Owner only (collaborators can still export a table to XLSX from the grid).
  • One export at a time per project, and 10 exports per day per owner.
  • Large projects are streamed: there is no limit on the number of entries.

Bring an archive back

An export archive can be imported into Ekit as a new project, on the same account or another one. See Import a project.