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.

get/organizations/{organization}/passports/{id}/documents
Scope
documents:read
Idempotency-Key
Wird nicht akzeptiert
Liefert
200

Pfadparameter

organizationstringPflicht

Die Organisation, für die diese Anfrage handelt. Der Zugangsschlüssel muss dafür freigegeben sein.

idstringPflicht

Die Kennung der Ressource. Behandeln Sie sie als undurchsichtige Zeichenkette.

Abfrageparameter

limitstringOptional

Wie viele Datensätze zurückgegeben werden. Der Server darf weniger liefern.

cursorstringOptional

Der 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.

typestringOptional

Nur Dokumente dieses Typs zurückgeben.

access_tierstringOptional

Nur 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.

Anfrage
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"
Antwort · 200
{
  "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.

post/organizations/{organization}/passports/{id}/documents
Scope
documents:write
Idempotency-Key
Wird akzeptiert
Liefert
201

Pfadparameter

organizationstringPflicht

Die Organisation, für die diese Anfrage handelt. Der Zugangsschlüssel muss dafür freigegeben sein.

idstringPflicht

Die 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_idstringPflicht

Ein 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

typestringPflicht

Beim Hochladen erforderlich; muss fehlen, wenn document_id gesetzt ist. Einer der Werte certification, image, document, conformity_declaration.

access_tierstringPflicht

Beim 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_namestringPflicht

Beim Hochladen erforderlich; muss fehlen, wenn document_id gesetzt ist. Der Dateiname, unter dem gespeichert wird.

mime_typestringPflicht

Beim 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_sizeintegerOptional

Größe in Bytes, bis zu 10485760.

display_namestringOptional

Die 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.

Anfrage
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"
}'
Antwort · 201
{
  "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

Dokumente — API-Referenz von PassportCraft | PassportCraft