Ressources
Documents
Chaque point de terminaison Documents, avec la portée qu'il impose, le corps qu'il accepte, une réponse lisible et les refus qu'il peut renvoyer.
Lister tous les documents de la bibliothèque de documents de l’espace de travail.
/organizations/{organization}/documents- Portée
- documents:read
Idempotency-Key- Non accepté
- Renvoie
- 200
Paramètres de chemin
organizationchaîneObligatoireL'organisation pour laquelle cette requête agit. La clé doit disposer d'une autorisation sur celle-ci.
Paramètres de requête
limitchaîneFacultatifLe nombre d'enregistrements à renvoyer. Le serveur peut en renvoyer moins.
cursorchaîneFacultatifLe next_cursor de la page précédente. Un curseur encode les filtres sous lesquels il a été émis ; l'envoyer avec d'autres filtres est refusé par cursor_invalid.
typechaîneFacultatifNe renvoyer que les documents de ce type.
access_tierchaîneFacultatifNe renvoyer que les documents publiés pour ce niveau d'audience.
Erreurs
Tous les refus que ce point de terminaison peut renvoyer, avec le statut qui les accompagne.
curl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/documents?type=conformity_declaration" \
-H "Authorization: Bearer $PASSPORTCRAFT_API_KEY"{
"object": "list",
"data": [
{
"object": "document",
"id": "a3b8c2d1-5e64-4f79-8a0b-1c2d3e4f5a6b",
"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"
}
],
"has_more": false,
"next_cursor": null
}GET /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/documents?type=conformity_declaration
Lister les documents liés à un passeport.
/organizations/{organization}/passports/{id}/documents- Portée
- documents:read
Idempotency-Key- Non accepté
- Renvoie
- 200
Paramètres de chemin
organizationchaîneObligatoireL'organisation pour laquelle cette requête agit. La clé doit disposer d'une autorisation sur celle-ci.
idchaîneObligatoireL'identifiant de la ressource. Traitez-le comme une chaîne opaque.
Paramètres de requête
limitchaîneFacultatifLe nombre d'enregistrements à renvoyer. Le serveur peut en renvoyer moins.
cursorchaîneFacultatifLe next_cursor de la page précédente. Un curseur encode les filtres sous lesquels il a été émis ; l'envoyer avec d'autres filtres est refusé par cursor_invalid.
typechaîneFacultatifNe renvoyer que les documents de ce type.
access_tierchaîneFacultatifNe renvoyer que les documents publiés pour ce niveau d'audience.
Erreurs
Tous les refus que ce point de terminaison peut renvoyer, avec le statut qui les accompagne.
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
Créer un document et obtenir une URL de téléversement signée.
/organizations/{organization}/passports/{id}/documents- Portée
- documents:write
Idempotency-Key- Accepté
- Renvoie
- 201
Paramètres de chemin
organizationchaîneObligatoireL'organisation pour laquelle cette requête agit. La clé doit disposer d'une autorisation sur celle-ci.
idchaîneObligatoireL'identifiant de la ressource. Traitez-le comme une chaîne opaque.
Corps de la requête
Ce point de terminaison accepte l'un des deux corps de requête. N'envoyez qu'une seule forme : un corps combinant les champs des deux est refusé.
Associer un document déjà présent dans la bibliothèque
document_idchaîneObligatoireLier un document déjà présent dans la bibliothèque de l'organisation plutôt que d'en téléverser un. Ne peut être combiné avec aucun des champs de téléversement. Lier un document qui ne l'est pas encore répond 201 ; le lier de nouveau alors qu'il l'est déjà répond 200. Aucune des deux réponses ne porte d'objet upload.
Téléverser un nouveau fichier
typechaîneObligatoireObligatoire lors d'un téléversement ; doit être absent lorsque document_id est renseigné. Au choix : certification, image, document, conformity_declaration. Une image téléversée avec access_tier: public s'affiche comme photo du produit sur la page publiée du passeport ; plusieurs images forment une galerie. Cette API ne peut pas choisir laquelle est la photo principale : une personne la définit dans l'éditeur de passeport, dans les photos du produit. Aucun schéma de catégorie ne déclare de champ image ; le téléversement est le seul moyen d'attribuer une photo à un passeport.
access_tierchaîneObligatoireObligatoire lors d'un téléversement ; doit être absent lorsque document_id est renseigné. Au choix : public, restricted, authority. Ce niveau détermine qui pourra lire le fichier une fois le passeport en ligne.
file_namechaîneObligatoireObligatoire lors d'un téléversement ; doit être absent lorsque document_id est renseigné. Le nom sous lequel le fichier sera conservé.
mime_typechaîneObligatoireObligatoire lors d'un téléversement ; doit être absent lorsque document_id est renseigné. Au choix : application/pdf, image/png, image/jpeg, image/webp. Transmis tel quel au stockage, qui refuse toute discordance.
file_sizeentierFacultatifLa taille en octets, jusqu'à 10485760.
display_namechaîneFacultatifLe libellé que voit un lecteur. Par défaut, file_name.
Erreurs
Tous les refus que ce point de terminaison peut renvoyer, avec le statut qui les accompagne.
- 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
- 402plan_required
- 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