Ressourcen
Dokumente
Jeder Dokumente-Endpunkt, mit dem Scope, den er durchsetzt, dem Körper, den er annimmt, einer lesbaren Antwort und den Ablehnungen, die er zurückgeben kann.
Dokumente eines Produktpasses auflisten.
/organizations/{organization}/passports/{id}/documents- Scope
- documents:read
Idempotency-Key- Wird nicht akzeptiert
- Liefert
- 200
Pfadparameter
organizationstringPflichtDie Organisation, für die diese Anfrage handelt. Der Zugangsschlüssel muss dafür freigegeben sein.
idstringPflichtDie Kennung der Ressource. Behandeln Sie sie als undurchsichtige Zeichenkette.
Abfrageparameter
limitstringOptionalWie viele Datensätze zurückgegeben werden. Der Server darf weniger liefern.
cursorstringOptionalDer next_cursor der vorherigen Seite. Ein Cursor kodiert die Filter, unter denen er ausgegeben wurde; wird er mit anderen Filtern gesendet, folgt eine Ablehnung mit cursor_invalid.
typestringOptionalNur Dokumente dieses Typs zurückgeben.
access_tierstringOptionalNur Dokumente zurückgeben, die für diese Lesergruppe veröffentlicht sind.
Fehler
Jede Ablehnung, die dieser Endpunkt zurückgeben kann, samt dem HTTP-Status, mit dem sie eintrifft.
curl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/documents?access_tier=public" \
-H "Authorization: Bearer $PASSPORTCRAFT_API_KEY"{
"object": "list",
"data": [
{
"object": "document",
"id": "a3b8c2d1-5e64-4f79-8a0b-1c2d3e4f5a6b",
"name": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/documents/a3b8c2d1-5e64-4f79-8a0b-1c2d3e4f5a6b",
"organization_id": "8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2",
"passport_id": "2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41",
"passport": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41",
"type": "conformity_declaration",
"access_tier": "public",
"file_name": "doc-2026-kestrel.pdf",
"display_name": "EU Declaration of Conformity",
"mime_type": "application/pdf",
"file_size": 184320,
"upload_state": "ready",
"uploaded_at": "2026-07-29T15:44:02.008Z",
"livemode": true,
"created_at": "2026-07-29T15:43:51.660Z",
"linked_at": "2026-07-29T15:43:51.660Z"
}
],
"has_more": false,
"next_cursor": null
}GET /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/documents?access_tier=public
Ein Dokument anlegen und eine signierte Upload-URL erhalten.
/organizations/{organization}/passports/{id}/documents- Scope
- documents:write
Idempotency-Key- Wird akzeptiert
- Liefert
- 201
Pfadparameter
organizationstringPflichtDie Organisation, für die diese Anfrage handelt. Der Zugangsschlüssel muss dafür freigegeben sein.
idstringPflichtDie Kennung der Ressource. Behandeln Sie sie als undurchsichtige Zeichenkette.
Anfragekörper
Dieser Endpunkt akzeptiert einen von zwei Anfragekörpern. Senden Sie genau eine Variante — ein Anfragekörper mit Feldern aus beiden wird abgelehnt.
Ein bereits in der Bibliothek vorhandenes Dokument verknüpfen
document_idstringPflichtEin bereits in der Dokumentenbibliothek der Organisation vorhandenes Dokument verknüpfen, statt eines hochzuladen. Nicht mit den Upload-Feldern kombinierbar. Wird ein noch nicht angehängtes Dokument verknüpft, antwortet die API mit 201; wird ein bereits angehängtes erneut verknüpft, mit 200. Beide Antworten führen kein upload-Objekt mit.
Eine neue Datei hochladen
typestringPflichtBeim Hochladen erforderlich; muss fehlen, wenn document_id gesetzt ist. Einer der Werte certification, image, document, conformity_declaration.
access_tierstringPflichtBeim Hochladen erforderlich; muss fehlen, wenn document_id gesetzt ist. Einer der Werte public, restricted, authority. Er entscheidet, wer die Datei lesen darf, sobald der Produktpass live ist.
file_namestringPflichtBeim Hochladen erforderlich; muss fehlen, wenn document_id gesetzt ist. Der Dateiname, unter dem gespeichert wird.
mime_typestringPflichtBeim Hochladen erforderlich; muss fehlen, wenn document_id gesetzt ist. Einer der Werte application/pdf, image/png, image/jpeg, image/webp. Der Wert wird unverändert an den Speicher weitergereicht, der eine Abweichung ablehnt.
file_sizeintegerOptionalGröße in Bytes, bis zu 10485760.
display_namestringOptionalDie Bezeichnung, die ein Leser zu sehen bekommt. Voreingestellt ist file_name.
Fehler
Jede Ablehnung, die dieser Endpunkt zurückgeben kann, samt dem HTTP-Status, mit dem sie eintrifft.
- 500configuration_error
- 409idempotency_conflict
- 403insufficient_scope
- 500internal_error
- 401invalid_key
- 400invalid_request
- 401key_expired
- 401key_revoked
- 401key_rotated
- 400mode_mismatch
- 402no_subscription
- 404organization_not_found_or_not_granted
- 413payload_too_large
- 402payment_overdue
- 429rate_limited
- 404resource_not_found
- 415unsupported_media_type
- 422validation_failed
- 400wildcard_not_supported
curl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/documents" \
-X POST \
-H "Authorization: Bearer $PASSPORTCRAFT_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"type": "conformity_declaration",
"access_tier": "public",
"file_name": "doc-2026-kestrel.pdf",
"mime_type": "application/pdf",
"file_size": 184320,
"display_name": "EU Declaration of Conformity"
}'{
"object": "document",
"id": "a3b8c2d1-5e64-4f79-8a0b-1c2d3e4f5a6b",
"name": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/documents/a3b8c2d1-5e64-4f79-8a0b-1c2d3e4f5a6b",
"organization_id": "8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2",
"passport_id": "2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41",
"passport": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41",
"type": "conformity_declaration",
"access_tier": "public",
"file_name": "doc-2026-kestrel.pdf",
"display_name": "EU Declaration of Conformity",
"mime_type": "application/pdf",
"file_size": 184320,
"upload_state": "pending",
"uploaded_at": null,
"livemode": true,
"created_at": "2026-08-02T09:40:12.331Z",
"linked_at": "2026-08-02T09:40:12.331Z",
"upload": {
"url": "https://<project>.supabase.co/storage/v1/object/upload/sign/passport-assets/<organization>/library/<uuid>-doc-2026-kestrel.pdf?token=<jwt>",
"method": "PUT",
"headers": {
"Content-Type": "application/pdf"
},
"expires_at": "2026-08-02T11:40:12.331Z",
"max_bytes": 10485760
}
}POST /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/documents