Developers · Guides

Data portability

Take everything with you: the JSON export, the ZIP archive with JSON-LD, documents, labels, audit trail and a SHA-256 manifest.

Version
v1.0.0
Base URL
https://dppapi-production.up.railway.app/v1
Format
JSON · OpenAPI 3.1
FeedbackLast updated

Cet article n'est pas encore disponible en français ; il est affiché ci-dessous en anglais.

On this pageTwo exports

Your data is yours, in formats that need nothing from us to read. Export is on every plan and keeps working even if the organisation is frozen.

Two exports

EndpointFormatUse it for
`GET /export`One JSON document, format collecta-dpp-export/1Loading into another system or a warehouse.
`GET /export/archive`ZIP, streamedA complete, verifiable copy — including files.

What the archive contains

PathContents
export.jsonOrganisation, plants, models, items, passports, dynamic events, registry records, declarations, conformity records, components.
passports/*.jsonldEach published passport as JSON-LD, with its version number and content hash.
documents/*The uploaded files — declarations of conformity, test reports and others.
qr/*.svgThe QR code of each passport, as vector artwork.
labels/*.svgPrint-ready label artwork produced for a passport.
uploads/*Files suppliers uploaded, with metadata in uploads.json.
mapping-templates.jsonSaved column-mapping templates from imports.
audit.jsonlThe audit trail, one entry per line.
manifest.jsonEvery entry with its size and SHA-256.
Download the archive
curl "https://dppapi-production.up.railway.app/v1/export/archive" \-H "Authorization: Bearer $DPP_API_KEY"
Save it to a file
curl -fSL "https://dppapi-production.up.railway.app/v1/export/archive" \-H "Authorization: Bearer $DPP_API_KEY" \-o collecta-dpp-export.zip

Verify it

manifest.json lists every other entry as { path, bytes, sha256 } under files. Recompute each SHA-256 and compare: a truncated or altered archive fails here.

// Node.js 18+. Node has no built-in ZIP reader, so extract with the system unzip first.import { execFileSync } from 'node:child_process';import { createHash } from 'node:crypto';import { readFile } from 'node:fs/promises';import { join } from 'node:path';const dir = 'collecta-dpp-export';execFileSync('unzip', ['-q', '-o', 'collecta-dpp-export.zip', '-d', dir]);const manifest = JSON.parse(await readFile(join(dir, 'manifest.json'), 'utf8'));let failures = 0;for (const entry of manifest.files) {const bytes = await readFile(join(dir, entry.path));const digest = createHash('sha256').update(bytes).digest('hex');const ok = bytes.length === entry.bytes && digest === entry.sha256;if (!ok) failures++;console.log(ok ? 'ok      ' : 'MISMATCH', entry.path);}console.log(`${manifest.files.length - failures} of ${manifest.files.length} files verified`);process.exitCode = failures ? 1 : 0;

Deliberately not included

  • Supplier upload-link tokens — they are live credentials, not data.
  • Passwords and session data, in any form.
  • Anything belonging to another organisation.

The identifiers

Identifiers are printed on batteries and never change, so an export does not move them: the printed address keeps pointing where it was printed to. Moving to another provider means the new provider takes the identifiers over and the printed address is redirected — arranged between providers. We accept identifiers issued elsewhere for exactly that reason, and the same works in reverse.

Préférences en matière de cookies

Vous choisissez les cookies utilisés. Vous pouvez modifier votre choix à tout moment via « Paramètres des cookies » en bas de page. Politique de confidentialité

Nécessaires

Toujours actifs

Indispensables au fonctionnement du site : votre thème clair/sombre et ce choix de cookies sont enregistrés dans votre navigateur. Ils ne servent pas à vous suivre.

Analyse

Google Analytics 4 mesure l’utilisation des pages au moyen de statistiques, ce qui nous aide à améliorer le site. Si vous acceptez, il dépose des cookies et mesure votre visite en détail. Si vous refusez, il ne dépose aucun cookie, mais Google peut tout de même recevoir des données techniques, comme la page consultée, le type de navigateur et l’adresse IP.

_ga, _ga_* · jusqu’à 2 ans · Google