/api/v1/passports/{id}/snapshots/{snapshotId}Ottenere uno snapshot del passaporto
Restituisce il registro archivistico completo per uno **snapshot** di immutabilità: l'intero payload JSON-LD esattamente com'era il passaporto quando è stato acquisito lo snapshot — alla pubblicazione o dopo ogni modifica di un passaporto pubblicato, sospeso, scaduto o archiviato — i metadati dello snapshot (versione, motivo, `actor` — chi ha causato la modifica — e timestamp) e la ri-verifica dell'hash del contenuto. Per ottenere la versione valida a una certa data, usare `?at=` in **Elencare gli snapshot del passaporto**. `hashValid: false` significa che il payload memorizzato è stato modificato dopo che lo snapshot è stato acquisito — indicativo di manomissione at-rest.
Il flag `restorable` indica se `rawFields` è stato catturato al momento dello snapshot. Quando `restorable` è `true`, un'azione di ripristino dalla dashboard può riportare il passaporto live a questa versione campo per campo. Quando è `false` (perché `rawFields` non è stato catturato, o è vuoto), lo snapshot è solo di evidenza — il JSON-LD è ancora preservato e verificabile, ma un ripristino automatizzato a livello di campo non è possibile.
Scoped per tenant: puoi leggere solo gli snapshot dei passaporti della tua azienda. Conta come una lettura v1 passaporto contro il limite giornaliero. Fornisci l'ID dello snapshot dai valori `entries[].id` restituiti da **Elencare gli snapshot del passaporto**.
Parametri di percorso
- idobbligatorio
ObjectId
ID del passaporto.
- snapshotIdobbligatorio
ObjectId
ID dello snapshot (dal campo entries[].id di Elencare gli snapshot del passaporto).
Header
- Authorizationobbligatorio
string
`Bearer <token>` — una chiave API `tp_` (Developer → API Keys; più semplice, per server-to-server) oppure un access token OAuth 2.0 (Developer → OAuth Apps; per app autorizzate dall'utente, scoped e revocabili). La pagina Authentication contiene il flusso OAuth completo e l'elenco degli scopes.
e.g. Bearer tp_REDACTED_xxxxxxxxxxxx
Richiesta
curl -sS "https://app.tracepass.eu/api/v1/passports/6650b2c3d4e5f6a7b8c9d0e1/snapshots/65a0f1b2c3d4e5f6a7b8c9d1" \
-H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx"Risposta
{
"id": "65a0f1b2c3d4e5f6a7b8c9d1",
"version": 3,
"reason": "field_edit",
"actor": "apikey:tp_89b2482d",
"snapshotAt": "2026-09-15T14:32:00.000Z",
"contentHash": "a3f1c2d4e5b6a7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2",
"hashValid": true,
"restorable": true,
"fieldCount": 124,
"jsonLd": {
"@context": "https://gs1.org/voc/",
"@type": "gs1:Product",
"gs1:productName": "Industrial Battery 48V 200Ah",
"gs1:gtin": "09506000134376"
}
}