---
title: Esportazione massiva JSON-LD per tenant
description: Esportazione completa del workspace come un documento JSON-LD — ogni prodotto, passaporto, riferimento template. Solo JWT dashboard (admin); niente API key.
canonical: "https://www.tracepass.eu/it/docs/tenant-export"
locale: it
source: "https://www.tracepass.eu/it/docs/tenant-export"
---

# Esportazione massiva JSON-LD per tenant

> Esportazione completa del workspace come un documento JSON-LD — ogni prodotto, passaporto, riferimento template. Solo JWT dashboard (admin); niente API key.

```http
GET /api/exports/tenant
```

Restituisce ogni prodotto, ogni passaporto (indipendentemente dallo stato) e ogni template di categoria referenziato che lo spazio di lavoro possiede, come un unico documento JSON-LD. La forma rispecchia l'emissione JSON-LD per singolo passaporto del visualizzatore pubblico, racchiusa in un envelope per tenant con metadati sull'esecuzione dell'esportazione.

**Non raggiungibile tramite chiave API.** L'autenticazione è il JWT della dashboard (ruolo admin) + il gate per clienti paganti — lo stesso livello di fiducia dell'eliminazione dell'azienda. Il flusso pragmatico è: aprire Settings → Data export nella dashboard e cliccare "Export tenant". L'accesso programmatico richiede un cookie di sessione emesso da `/api/auth/login`.

Risposta sincrona con `Content-Disposition: attachment; filename="tracepass-tenant-export-<companyId>-<YYYY-MM-DD>.jsonld"`. Include gli URL dei documenti di prova ma non i byte dei documenti stessi; recuperateli separatamente se vi servono copie offline. Nessuna impaginazione — tutto o niente.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `Cookie` | header | string | yes | Cookie di sessione della dashboard (`tp_session=...`) emesso da `/api/auth/login`. I browser lo allegano automaticamente quando l'esportazione viene avviata dalla dashboard. |
| `Accept` | header | string | no | `application/ld+json` (predefinito) o `application/json`. Equivalenti a livello di byte — cambia solo il Content-Type della risposta. |

## Examples

```bash
# 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/tenant
```

```typescript
import { createWriteStream } from "node:fs";
import { Readable } from "node:stream";
import { finished } from "node:stream/promises";

// session cookie captured from a prior /api/auth/login call
const cookie = process.env.TRACEPASS_SESSION_COOKIE!;

const res = await fetch("https://app.tracepass.eu/api/exports/tenant", {
  headers: {
    Cookie: `tp_session=${cookie}`,
    Accept: "application/ld+json",
  },
});
if (!res.ok || !res.body) throw new Error(`Export failed: ${res.status}`);

const dest = createWriteStream("tenant-export.jsonld");
await finished(Readable.fromWeb(res.body).pipe(dest));
```

```python
import os, requests

cookie = os.environ["TRACEPASS_SESSION_COOKIE"]
with requests.get(
    "https://app.tracepass.eu/api/exports/tenant",
    cookies={"tp_session": cookie},
    headers={"Accept": "application/ld+json"},
    stream=True,
) as res:
    res.raise_for_status()
    with open("tenant-export.jsonld", "wb") as fh:
        for chunk in res.iter_content(chunk_size=1024 * 64):
            fh.write(chunk)
```

## Responses

### 200 — OK

```json
{
  "@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": "batteries", "version": "v3" } ]
}
```

### 401 — Non autenticato

```json
{ "error": "Authentication required" }
```

### 402 — Abbonamento richiesto

```json
{ "error": "Active paid subscription required" }
```

### 403 — Vietato

```json
{ "error": "admin role required" }
```

## Related

- [Creare un passaporto](https://www.tracepass.eu/it/docs/create-passport.md)
