/api/exports/tenantBulk JSON-LD tenant export
Returns every product, every passport (regardless of status), and every referenced category template the workspace owns, as one JSON-LD document. The shape mirrors the public passport viewer's per-passport JSON-LD emission, wrapped in a tenant envelope with metadata about the export run.
Not API-key reachable. Auth is a dashboard session with the admin (or owner) role — same trust level as deleting the company. Available on every plan, Free included, whatever the billing status and after cancelling (EU Data Act). The pragmatic flow is: open Settings → Data export in the dashboard and click "Download JSON-LD". Programmatic access requires a session cookie issued by /api/auth/login.
Synchronous response with Content-Disposition: attachment; filename="tracepass-tenant-export-<companyId>-<YYYY-MM-DD>.jsonld". Includes evidence-document URLs but not the document bytes themselves; the full-account export ("Export everything" on the same page) adds the original files, supplier requests, passport versions, battery measurements and scan analytics in one ZIP. No pagination — all-or-nothing.
Headers
- Cookierequired
string
Dashboard session cookie (
tp_session=...) issued by/api/auth/login. Browsers attach it automatically when the export is initiated from the dashboard. - Accept
string
Not used: the export is always returned as
application/ld+json, whatever this header says.
Request
# In practice: open Settings -> Data export in the dashboard.
# For curl, capture the session cookie after a login first:
curl -sS -L \
--cookie "tp_session=$TRACEPASS_SESSION_COOKIE" \
-H "Accept: application/ld+json" \
-o tenant-export.jsonld \
https://app.tracepass.eu/api/exports/tenantResponse
{
"@context": "https://app.tracepass.eu/schemas/tenant-export-v1.jsonld",
"@type": "TenantExport",
"exportedAt": "2026-05-09T12:00:00.000Z",
"company": { "_id": "...", "name": "Acme Batteries Ltd", "country": "DE" },
"counts": { "products": 12, "passports": 4327, "templates": 3 },
"products": [ { "...": "...one entry per product..." } ],
"passports": [ { "...": "...one entry per passport, with full fieldValues + parties..." } ],
"templates": [ { "id": "...", "category": "battery", "version": "v3" } ]
}