Kaynaklar
Pasaportlar
Her Pasaportlar uç noktası; dayattığı kapsam, kabul ettiği gövde, okunabilir bir yanıt ve döndürebileceği ret yanıtlarıyla birlikte.
Pasaportları listeler.
/organizations/{organization}/passports- Kapsam
- passports:read
Idempotency-Key- Kabul edilmez
- Döndürür
- 200
Yol parametreleri
organizationdizgeZorunluBu isteğin adına işlem yaptığı kuruluş. Anahtarın bu kuruluş için yetkisi olmalıdır.
Sorgu parametreleri
limitdizgeİsteğe bağlıKaç kayıt döndürüleceği. Sunucu daha azını döndürebilir.
cursordizgeİsteğe bağlıÖnceki sayfadan gelen next_cursor değeri. Bir imleç, verildiği filtreleri kodlar; farklı filtrelerle gönderilmesi cursor_invalid ile reddedilir.
statusdizgeİsteğe bağlıYalnızca bu durumdaki pasaportları döndürür.
categorydizgeİsteğe bağlıYalnızca bu kategorideki pasaportları döndürür.
updated_sincedizgeİsteğe bağlıRFC 3339 biçiminde bir zaman damgası. Verilen an dahil olmak üzere ondan sonra güncellenen pasaportları döndürür; bir entegrasyon, kataloğu baştan okumadan değişiklikleri böyle sorgular.
Hatalar
Bu uç noktanın döndürebileceği tüm ret yanıtları, geldikleri durum koduyla birlikte.
curl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports?status=published&limit=25" \
-H "Authorization: Bearer $PASSPORTCRAFT_API_KEY"{
"object": "list",
"data": [
{
"object": "passport",
"id": "2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41",
"name": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41",
"organization_id": "8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2",
"category": "textile",
"status": "published",
"gtin": "02000000000053",
"external_id": "SKU-4471-BLK",
"version": 4,
"livemode": true,
"created_at": "2026-08-01T09:12:44.918Z",
"updated_at": "2026-08-01T14:03:22.501Z",
"data": {
"product_name": "Merino Crew Neck",
"product_description": "Mid-weight knitted crew neck in 100% merino wool.",
"manufacturer_name": "Atelier Kestrel SAS",
"manufacturer_address": "14 rue des Tanneurs, 59100 Roubaix",
"manufacturer_country": "FR",
"material_composition": [
{
"fiber": "Merino wool",
"percentage": 100
}
],
"substances_of_concern": [
"None above threshold"
],
"gtin": "02000000000053"
}
}
],
"has_more": false,
"next_cursor": null
}GET /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports?status=published&limit=25
Bir pasaport oluşturur.
/organizations/{organization}/passports- Kapsam
- passports:write
Idempotency-Key- Kabul edilir
- Döndürür
- 201
Yol parametreleri
organizationdizgeZorunluBu isteğin adına işlem yaptığı kuruluş. Anahtarın bu kuruluş için yetkisi olmalıdır.
İstek gövdesi
categorydizgeZorunluGET /categories çağrısından gelen bir kategori kimliği. Alan şemasını sabitler ve sonradan değiştirilemez.
external_iddizgeİsteğe bağlıBu ürün için kendi tanımlayıcınız, 1 ile 255 karakter arası. Kuruluş ve mod içinde benzersizdir; bizim kimliklerimizi saklamadan mutabakat sağlayabilmenizi bu sağlar, dolayısıyla aynı kimlik bir kez test bir kez canlı modda bulunabilir.
datanesneİsteğe bağlıPasaport belgesi. Anahtarlar, kategori şemasındaki alan adları ile belge alabilen her alanın document_id_key eşlik anahtarıdır; bunların dışındaki her şey sessizce saklanmak yerine reddedilir.
Hatalar
Bu uç noktanın döndürebileceği tüm ret yanıtları, geldikleri durum koduyla birlikte.
- 409already_exists
- 500configuration_error
- 409gtin_in_use
- 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
- 415unsupported_media_type
- 422validation_failed
- 400wildcard_not_supported
curl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports" \
-X POST \
-H "Authorization: Bearer $PASSPORTCRAFT_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"category": "textile",
"external_id": "SKU-4471-BLK",
"data": {
"product_name": "Merino Crew Neck",
"product_description": "Mid-weight knitted crew neck in 100% merino wool.",
"manufacturer_name": "Atelier Kestrel SAS",
"manufacturer_address": "14 rue des Tanneurs, 59100 Roubaix",
"manufacturer_country": "FR"
}
}'{
"object": "passport",
"id": "2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41",
"name": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41",
"organization_id": "8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2",
"category": "textile",
"status": "draft",
"gtin": null,
"serial_number": null,
"external_id": "SKU-4471-BLK",
"version": 1,
"livemode": true,
"registry_id": null,
"created_at": "2026-08-01T09:12:44.918Z",
"updated_at": "2026-08-01T09:12:44.918Z",
"published_at": null,
"trashed_at": null,
"data": {
"product_name": "Merino Crew Neck",
"product_description": "Mid-weight knitted crew neck in 100% merino wool.",
"manufacturer_name": "Atelier Kestrel SAS",
"manufacturer_address": "14 rue des Tanneurs, 59100 Roubaix",
"manufacturer_country": "FR",
"material_composition": [
{
"fiber": "Merino wool",
"percentage": 100
}
],
"substances_of_concern": [
"None above threshold"
]
}
}POST /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports
Tek bir pasaportu getirir.
/organizations/{organization}/passports/{id}- Kapsam
- passports:read
Idempotency-Key- Kabul edilmez
- Döndürür
- 200
Yol parametreleri
organizationdizgeZorunluBu isteğin adına işlem yaptığı kuruluş. Anahtarın bu kuruluş için yetkisi olmalıdır.
iddizgeZorunluKaynağın tanımlayıcısı. Bunu içeriği okunmayan bir dizge olarak değerlendirin.
Hatalar
Bu uç noktanın döndürebileceği tüm ret yanıtları, geldikleri durum koduyla birlikte.
curl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41" \
-H "Authorization: Bearer $PASSPORTCRAFT_API_KEY"{
"object": "passport",
"id": "2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41",
"name": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41",
"organization_id": "8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2",
"category": "textile",
"status": "published",
"gtin": "02000000000053",
"serial_number": null,
"external_id": "SKU-4471-BLK",
"version": 4,
"livemode": true,
"registry_id": null,
"created_at": "2026-08-01T09:12:44.918Z",
"updated_at": "2026-08-01T14:03:22.501Z",
"published_at": "2026-08-01T14:03:22.501Z",
"trashed_at": null,
"data": {
"product_name": "Merino Crew Neck",
"product_description": "Mid-weight knitted crew neck in 100% merino wool.",
"manufacturer_name": "Atelier Kestrel SAS",
"manufacturer_address": "14 rue des Tanneurs, 59100 Roubaix",
"manufacturer_country": "FR",
"material_composition": [
{
"fiber": "Merino wool",
"percentage": 100
}
],
"substances_of_concern": [
"None above threshold"
],
"gtin": "02000000000053"
}
}GET /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41
Bir pasaporta JSON Merge Patch uygular.
/organizations/{organization}/passports/{id}- Kapsam
- passports:write
Idempotency-Key- Kabul edilir
- Döndürür
- 200
Yol parametreleri
organizationdizgeZorunluBu isteğin adına işlem yaptığı kuruluş. Anahtarın bu kuruluş için yetkisi olmalıdır.
iddizgeZorunluKaynağın tanımlayıcısı. Bunu içeriği okunmayan bir dizge olarak değerlendirin.
İstek başlıkları
Expected-Versiontam sayıİsteğe bağlıOkuduğunuz pasaportun version değeri, tam sayı olarak. Pasaport bu arada değiştiyse yazma işlemi precondition_failed ile reddedilir; oku-değiştir-yaz döngüsünü eşzamanlı bir düzenleyiciye karşı güvenli kılmanın tek yolu budur. If-Match yerine bu başlığı kullanın. Reddedilen bir yazma işlemini YENİ bir Idempotency-Key ile tekrarlayın: ret yanıtı eski anahtara kaydedilmiştir ve yeniden döndürülür.
If-Matchdizgeİsteğe bağlıTam olarak * değilse invalid_request ile REDDEDİLİR; dolayısıyla bir ETag taşıdığında da reddedilir. CDN'imiz If-Match başlığını YANITLA karşılaştırır ve sonucu yeniden yazar: koşullu bir yazma işlemi bu yüzden uygulanırdı ama size yine de 412 olarak bildirilirdi; ret yanıtı tam olarak bunu engeller. Sürümü bunun yerine Expected-Version ile gönderin. Yalnızca pasaportun hâlâ var olmasını isteyen If-Match: * kabul edilir.
İstek gövdesi
datanesneİsteğe bağlıPasaport belgesine uygulanan, RFC 7386 uyarınca bir JSON Merge Patch. Bir anahtarı olduğu gibi bırakmak için onu hiç göndermeyin; silmek için null gönderin. Diziler birleştirilmez, tümüyle değiştirilir.
Hatalar
Bu uç noktanın döndürebileceği tüm ret yanıtları, geldikleri durum koduyla birlikte.
- 500configuration_error
- 409gtin_in_use
- 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
- 412precondition_failed
- 429rate_limited
- 404resource_not_found
- 415unsupported_media_type
- 422validation_failed
- 400wildcard_not_supported
- 409wrong_status
curl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41" \
-X PATCH \
-H "Authorization: Bearer $PASSPORTCRAFT_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"data": {
"recycled_content_percentage": 38,
"recycling_instructions": "Return to any Atelier Kestrel store for fibre recovery."
}
}'{
"object": "passport",
"id": "2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41",
"name": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41",
"organization_id": "8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2",
"category": "textile",
"status": "draft",
"gtin": null,
"serial_number": null,
"external_id": "SKU-4471-BLK",
"version": 2,
"livemode": true,
"registry_id": null,
"created_at": "2026-08-01T09:12:44.918Z",
"updated_at": "2026-08-01T10:44:12.700Z",
"published_at": null,
"trashed_at": null,
"data": {
"product_name": "Merino Crew Neck",
"product_description": "Mid-weight knitted crew neck in 100% merino wool.",
"manufacturer_name": "Atelier Kestrel SAS",
"manufacturer_address": "14 rue des Tanneurs, 59100 Roubaix",
"manufacturer_country": "FR",
"material_composition": [
{
"fiber": "Merino wool",
"percentage": 100
}
],
"substances_of_concern": [
"None above threshold"
],
"recycled_content_percentage": 38,
"recycling_instructions": "Return to any Atelier Kestrel store for fibre recovery."
}
}PATCH /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41
Bir pasaportu yayımlar.
/organizations/{organization}/passports/{id}/publish- Kapsam
- passports:write
Idempotency-Key- Kabul edilir
- Döndürür
- 200
Yol parametreleri
organizationdizgeZorunluBu isteğin adına işlem yaptığı kuruluş. Anahtarın bu kuruluş için yetkisi olmalıdır.
iddizgeZorunluKaynağın tanımlayıcısı. Bunu içeriği okunmayan bir dizge olarak değerlendirin.
İstek gövdesi
variant_review_fingerprintdizgeİsteğe bağlıPasaportta bir asistanın girdiği beden ve renkler varsa zorunludur: GET …/variants/review adresinden dönen parmak izi, bir kişi bu satırları gözden geçirdikten sonra gönderilir. Parmak izi olmadan yayımlama variant_review_required ile reddedilir; beden ve renkler gözden geçirmeden sonra değiştiyse variant_review_changed ile. Yeni bir idempotency anahtarıyla gönderin. 64 karakterlik onaltılık bir dize.
Hatalar
Bu uç noktanın döndürebileceği tüm ret yanıtları, geldikleri durum koduyla birlikte.
- 500configuration_error
- 422document_missing
- 409gtin_in_use
- 422gtin_required
- 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
- 402publish_limit_reached
- 429rate_limited
- 404resource_not_found
- 503storage_unavailable
- 402unit_limit_reached
- 415unsupported_media_type
- 422validation_failed
- 409variant_review_changed
- 409variant_review_required
- 400wildcard_not_supported
- 409wrong_status
curl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/publish" \
-X POST \
-H "Authorization: Bearer $PASSPORTCRAFT_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"{
"object": "passport",
"id": "2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41",
"name": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41",
"organization_id": "8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2",
"category": "textile",
"status": "published",
"gtin": "02000000000053",
"serial_number": null,
"external_id": "SKU-4471-BLK",
"version": 4,
"livemode": true,
"registry_id": null,
"created_at": "2026-08-01T09:12:44.918Z",
"updated_at": "2026-08-01T14:03:22.501Z",
"published_at": "2026-08-01T14:03:22.501Z",
"trashed_at": null,
"data": {
"product_name": "Merino Crew Neck",
"product_description": "Mid-weight knitted crew neck in 100% merino wool.",
"manufacturer_name": "Atelier Kestrel SAS",
"manufacturer_address": "14 rue des Tanneurs, 59100 Roubaix",
"manufacturer_country": "FR",
"material_composition": [
{
"fiber": "Merino wool",
"percentage": 100
}
],
"substances_of_concern": [
"None above threshold"
],
"gtin": "02000000000053"
},
"warnings": [
{
"code": "environmental_claim_detected",
"message": "This passport contains environmental claims (carbon neutral), found in its wording or in fields the brand marked as environmental information. From 27 September 2026, Directive (EU) 2024/825 requires the trader placing the product on the market to hold substantiation for such claims. Publishing succeeded; confirm the substantiation exists.",
"doc_url": "https://passportcraft.com/docs/api/errors#environmental_claim_detected"
}
]
}POST /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/publish
Bir pasaportun yayımını geri alır.
Yıkıcı/organizations/{organization}/passports/{id}/unpublish- Kapsam
- passports:write
Idempotency-Key- Kabul edilir
- Döndürür
- 200
Yol parametreleri
organizationdizgeZorunluBu isteğin adına işlem yaptığı kuruluş. Anahtarın bu kuruluş için yetkisi olmalıdır.
iddizgeZorunluKaynağın tanımlayıcısı. Bunu içeriği okunmayan bir dizge olarak değerlendirin.
Hatalar
Bu uç noktanın döndürebileceği tüm ret yanıtları, geldikleri durum koduyla birlikte.
- 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
- 412precondition_failed
- 429rate_limited
- 404resource_not_found
- 415unsupported_media_type
- 422validation_failed
- 400wildcard_not_supported
- 409wrong_status
curl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/unpublish" \
-X POST \
-H "Authorization: Bearer $PASSPORTCRAFT_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"{
"object": "passport",
"id": "2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41",
"name": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41",
"organization_id": "8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2",
"category": "textile",
"status": "draft",
"gtin": "02000000000053",
"serial_number": null,
"external_id": "SKU-4471-BLK",
"version": 5,
"livemode": true,
"registry_id": null,
"created_at": "2026-08-01T09:12:44.918Z",
"updated_at": "2026-08-02T08:15:09.113Z",
"published_at": null,
"trashed_at": null,
"data": {
"product_name": "Merino Crew Neck",
"product_description": "Mid-weight knitted crew neck in 100% merino wool.",
"manufacturer_name": "Atelier Kestrel SAS",
"manufacturer_address": "14 rue des Tanneurs, 59100 Roubaix",
"manufacturer_country": "FR",
"material_composition": [
{
"fiber": "Merino wool",
"percentage": 100
}
],
"substances_of_concern": [
"None above threshold"
],
"gtin": "02000000000053"
}
}POST /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/unpublish
Bir pasaportu çöp kutusuna taşır.
Yıkıcı/organizations/{organization}/passports/{id}/trash- Kapsam
- passports:write
Idempotency-Key- Kabul edilir
- Döndürür
- 200
Yol parametreleri
organizationdizgeZorunluBu isteğin adına işlem yaptığı kuruluş. Anahtarın bu kuruluş için yetkisi olmalıdır.
iddizgeZorunluKaynağın tanımlayıcısı. Bunu içeriği okunmayan bir dizge olarak değerlendirin.
Hatalar
Bu uç noktanın döndürebileceği tüm ret yanıtları, geldikleri durum koduyla birlikte.
- 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
- 412precondition_failed
- 429rate_limited
- 404resource_not_found
- 415unsupported_media_type
- 422validation_failed
- 400wildcard_not_supported
- 409wrong_status
curl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/trash" \
-X POST \
-H "Authorization: Bearer $PASSPORTCRAFT_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"{
"object": "passport",
"id": "2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41",
"name": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41",
"organization_id": "8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2",
"category": "textile",
"status": "trashed",
"gtin": "02000000000053",
"serial_number": null,
"external_id": "SKU-4471-BLK",
"version": 6,
"livemode": true,
"registry_id": null,
"created_at": "2026-08-01T09:12:44.918Z",
"updated_at": "2026-08-02T08:19:44.002Z",
"published_at": null,
"trashed_at": "2026-08-02T08:19:44.002Z",
"data": {
"product_name": "Merino Crew Neck",
"product_description": "Mid-weight knitted crew neck in 100% merino wool.",
"manufacturer_name": "Atelier Kestrel SAS",
"manufacturer_address": "14 rue des Tanneurs, 59100 Roubaix",
"manufacturer_country": "FR",
"material_composition": [
{
"fiber": "Merino wool",
"percentage": 100
}
],
"substances_of_concern": [
"None above threshold"
],
"gtin": "02000000000053"
}
}POST /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/trash
Bir pasaportu çöp kutusundan geri yükler.
/organizations/{organization}/passports/{id}/restore- Kapsam
- passports:write
Idempotency-Key- Kabul edilir
- Döndürür
- 200
Yol parametreleri
organizationdizgeZorunluBu isteğin adına işlem yaptığı kuruluş. Anahtarın bu kuruluş için yetkisi olmalıdır.
iddizgeZorunluKaynağın tanımlayıcısı. Bunu içeriği okunmayan bir dizge olarak değerlendirin.
Hatalar
Bu uç noktanın döndürebileceği tüm ret yanıtları, geldikleri durum koduyla birlikte.
- 500configuration_error
- 409idempotency_conflict
- 403insufficient_scope
- 500internal_error
- 401invalid_key
- 400invalid_request
- 401key_expired
- 401key_revoked
- 401key_rotated
- 400mode_mismatch
- 402no_subscription
- 409not_trashed
- 404organization_not_found_or_not_granted
- 413payload_too_large
- 402payment_overdue
- 402plan_required
- 412precondition_failed
- 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/restore" \
-X POST \
-H "Authorization: Bearer $PASSPORTCRAFT_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"{
"object": "passport",
"id": "2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41",
"name": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41",
"organization_id": "8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2",
"category": "textile",
"status": "draft",
"gtin": "02000000000053",
"serial_number": null,
"external_id": "SKU-4471-BLK",
"version": 7,
"livemode": true,
"registry_id": null,
"created_at": "2026-08-01T09:12:44.918Z",
"updated_at": "2026-08-02T08:21:03.884Z",
"published_at": null,
"trashed_at": null,
"data": {
"product_name": "Merino Crew Neck",
"product_description": "Mid-weight knitted crew neck in 100% merino wool.",
"manufacturer_name": "Atelier Kestrel SAS",
"manufacturer_address": "14 rue des Tanneurs, 59100 Roubaix",
"manufacturer_country": "FR",
"material_composition": [
{
"fiber": "Merino wool",
"percentage": 100
}
],
"substances_of_concern": [
"None above threshold"
],
"gtin": "02000000000053"
}
}POST /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/restore
Bir pasaportu, kaydetmeden kategori şemasına göre denetler.
/organizations/{organization}/passports/{id}/validate- Kapsam
- passports:read
Idempotency-Key- Kabul edilmez
- Döndürür
- 200
Yol parametreleri
organizationdizgeZorunluBu isteğin adına işlem yaptığı kuruluş. Anahtarın bu kuruluş için yetkisi olmalıdır.
iddizgeZorunluKaynağın tanımlayıcısı. Bunu içeriği okunmayan bir dizge olarak değerlendirin.
İstek gövdesi
datanesneİsteğe bağlıDenetimden önce belgeye birleştirilecek alanlar; böylece bir düzenlemeyi kaydetmeden deneyebilirsiniz. Her iki durumda da hiçbir şey yazılmaz.
variant_review_fingerprintdizgeİsteğe bağlıGET …/variants/review adresinden dönen parmak izi. Bu parmak izini taşıyan yayımlamanın başarılı olup olmayacağını sormak için gönderin; parmak izi olmadan, bir asistanın girdiği beden ve renkleri taşıyan pasaport gözden geçirmeyi hata olarak bildirir. 64 karakterlik onaltılık bir dize; bu uç nokta bir tahmin döndürdüğü için eski veya hatalı bir değer reddedilmek yerine bulgu olarak bildirilir.
Hatalar
Bu uç noktanın döndürebileceği tüm ret yanıtları, geldikleri durum koduyla birlikte.
- 500configuration_error
- 403insufficient_scope
- 500internal_error
- 401invalid_key
- 400invalid_request
- 401key_expired
- 401key_revoked
- 401key_rotated
- 400mode_mismatch
- 404organization_not_found_or_not_granted
- 413payload_too_large
- 429rate_limited
- 404resource_not_found
- 503storage_unavailable
- 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/validate" \
-X POST \
-H "Authorization: Bearer $PASSPORTCRAFT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"data": {
"material_composition": null
}
}'{
"object": "validation",
"id": "2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41",
"name": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/validation",
"organization_id": "8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2",
"passport_id": "2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41",
"category": "textile",
"schema_version": "1.0.0-draft",
"dry_run": true,
"valid": false,
"publishable": false,
"error_count": 2,
"warning_count": 0,
"checked_at": "2026-08-02T08:26:11.409Z",
"issues": [
{
"object": "validation_issue",
"field": "material_composition",
"source": {
"pointer": "/data/material_composition"
},
"rule": "required",
"severity": "error",
"message": "Material Composition is required",
"message_key": "required",
"message_params": {
"field": "Material Composition"
},
"writable_via_api": true
},
{
"object": "validation_issue",
"field": "gtin",
"source": {
"pointer": "/data/gtin"
},
"rule": "required",
"severity": "error",
"message": "A GTIN is required before this passport can be published. A saved size or colour with its own barcode also satisfies this.",
"writable_via_api": true
}
]
}POST /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/validate
Herkese açık URL’leri ve GS1 Digital Link adreslerini alın. gs1_digital_links tüm varyantları variant_id, size ve colour ile içerir. Ana GTIN’in URI’si varyant bilgileriyle bir kez görünür; seri numaralı ana URI ayrı kalır.
/organizations/{organization}/passports/{id}/links- Kapsam
- passports:read
Idempotency-Key- Kabul edilmez
- Döndürür
- 200
Yol parametreleri
organizationdizgeZorunluBu isteğin adına işlem yaptığı kuruluş. Anahtarın bu kuruluş için yetkisi olmalıdır.
iddizgeZorunluKaynağın tanımlayıcısı. Bunu içeriği okunmayan bir dizge olarak değerlendirin.
Hatalar
Bu uç noktanın döndürebileceği tüm ret yanıtları, geldikleri durum koduyla birlikte.
curl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/links" \
-H "Authorization: Bearer $PASSPORTCRAFT_API_KEY"{
"object": "passport_links",
"id": "2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41",
"name": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/links",
"organization_id": "8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2",
"passport": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41",
"status": "published",
"livemode": true,
"gtin": "02000000000053",
"serial_number": null,
"public_url": "https://passportcraft.com/passport/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41",
"qr_target": "https://passportcraft.com/01/02000000000053",
"gs1_digital_links": [
{
"uri": "https://passportcraft.com/01/02000000000053",
"gtin14": "02000000000053",
"serial": null,
"linkset_url": "https://passportcraft.com/01/02000000000053?linkType=linkset",
"unavailable_reason": null,
"variant_id": null,
"size": null,
"colour": null
}
],
"gs1_digital_link": {
"uri": "https://passportcraft.com/01/02000000000053",
"gtin14": "02000000000053",
"serial": null,
"linkset_url": "https://passportcraft.com/01/02000000000053?linkType=linkset",
"unavailable_reason": null
},
"resolves_publicly": true,
"not_resolvable_reason": null,
"preview_url": null
}GET /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/links
Pil okumalarını listele.
/organizations/{organization}/passports/{id}/units/{unitId}/readings- Kapsam
- units:read
Idempotency-Key- Kabul edilmez
- Döndürür
- 200
Yol parametreleri
organizationdizgeZorunluBu isteğin adına işlem yaptığı kuruluş. Anahtarın bu kuruluş için yetkisi olmalıdır.
iddizgeZorunluKaynağın tanımlayıcısı. Bunu içeriği okunmayan bir dizge olarak değerlendirin.
unitIddizgeZorunluKaynağın tanımlayıcısı. Bunu içeriği okunmayan bir dizge olarak değerlendirin.
Sorgu parametreleri
limitdizgeİsteğe bağlıDöndürülecek okuma sayısı: 1–100.
cursordizgeİsteğe bağlıÖnceki sayfanın next_cursor değeri. Aynı alan filtresini koruyun.
fielddizgeİsteğe bağlıYalnızca bu alana ait okumaları döndür.
Hatalar
Bu uç noktanın döndürebileceği tüm ret yanıtları, geldikleri durum koduyla birlikte.
- 500configuration_error
- 400cursor_invalid
- 403insufficient_scope
- 500internal_error
- 400invalid_field
- 401invalid_key
- 400invalid_request
- 401key_expired
- 401key_revoked
- 401key_rotated
- 400mode_mismatch
- 404organization_not_found_or_not_granted
- 413payload_too_large
- 429rate_limited
- 404resource_not_found
- 400wildcard_not_supported
curl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/b6f0d4a2-71c3-4e58-8a19-3f7c2d5e8b04/units/d41d8cd9-8f00-4b20-a204-9800998ecf84/readings?field=status&limit=50" \
-H "Authorization: Bearer $PASSPORTCRAFT_API_KEY"{
"object": "list",
"data": [
{
"object": "unit_reading",
"id": "a1100000-0000-4000-8000-000000000001",
"name": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/b6f0d4a2-71c3-4e58-8a19-3f7c2d5e8b04/units/d41d8cd9-8f00-4b20-a204-9800998ecf84/readings/a1100000-0000-4000-8000-000000000001",
"organization_id": "8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2",
"passport_id": "b6f0d4a2-71c3-4e58-8a19-3f7c2d5e8b04",
"unit_id": "d41d8cd9-8f00-4b20-a204-9800998ecf84",
"passport": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/b6f0d4a2-71c3-4e58-8a19-3f7c2d5e8b04",
"unit": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/b6f0d4a2-71c3-4e58-8a19-3f7c2d5e8b04/units/d41d8cd9-8f00-4b20-a204-9800998ecf84",
"livemode": true,
"field": "status",
"value": "original",
"observed_on": "2026-08-02",
"source": "brand_statement",
"note": null,
"document_id": null,
"recorded_by": "a1100000-0000-4000-8000-000000000002",
"recorded_actor_type": "api_key",
"recorded_via": "api",
"recorded_at": "2026-08-02T09:31:18.446123Z",
"legacy_import": false
}
],
"has_more": false,
"next_cursor": null
}GET /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/b6f0d4a2-71c3-4e58-8a19-3f7c2d5e8b04/units/d41d8cd9-8f00-4b20-a204-9800998ecf84/readings?field=status&limit=50
Pil okuması kaydedin.
/organizations/{organization}/passports/{id}/units/{unitId}/readings- Kapsam
- units:write
Idempotency-Key- Kabul edilir
- Döndürür
- 201
Yol parametreleri
organizationdizgeZorunluBu isteğin adına işlem yaptığı kuruluş. Anahtarın bu kuruluş için yetkisi olmalıdır.
iddizgeZorunluKaynağın tanımlayıcısı. Bunu içeriği okunmayan bir dizge olarak değerlendirin.
unitIddizgeZorunluKaynağın tanımlayıcısı. Bunu içeriği okunmayan bir dizge olarak değerlendirin.
İstek gövdesi
fielddizgeZorunluKategori şemasındaki pile özgü bir alan.
valuemetin, sayı veya birimli sayıZorunluAlan tanımına uygun değer; birim seçimi olan alanlarda sayı ve birim.
observed_ondizgeZorunluDeğerin ölçüldüğü veya beyan edildiği tarih, YYYY-AA-GG biçiminde.
sourcedizgeZorunlumeasurement veya brand_statement.
notedizgeİsteğe bağlıYöntem veya kanıt hakkında isteğe bağlı not, en fazla 500 karakter.
document_iddizgeİsteğe bağlıBu okumayı destekleyen isteğe bağlı kuruluş kütüphanesi belgesi.
Hatalar
Bu uç noktanın döndürebileceği tüm ret yanıtları, geldikleri durum koduyla birlikte.
- 500configuration_error
- 409connector_writes_drafts_only
- 409idempotency_conflict
- 403insufficient_scope
- 500internal_error
- 400invalid_document_id
- 400invalid_field
- 400invalid_input
- 401invalid_key
- 400invalid_note
- 400invalid_observed_on
- 400invalid_request
- 400invalid_source
- 400invalid_value
- 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
- 400unit_reading_document_unavailable
- 409unit_status_history_conflict
- 400unit_status_required
- 409unit_status_transition_forbidden
- 415unsupported_media_type
- 422validation_failed
- 400wildcard_not_supported
curl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/b6f0d4a2-71c3-4e58-8a19-3f7c2d5e8b04/units/d41d8cd9-8f00-4b20-a204-9800998ecf84/readings" \
-X POST \
-H "Authorization: Bearer $PASSPORTCRAFT_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"field": "status",
"value": "original",
"observed_on": "2026-08-02",
"source": "brand_statement"
}'{
"object": "unit_reading",
"id": "a1100000-0000-4000-8000-000000000001",
"name": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/b6f0d4a2-71c3-4e58-8a19-3f7c2d5e8b04/units/d41d8cd9-8f00-4b20-a204-9800998ecf84/readings/a1100000-0000-4000-8000-000000000001",
"organization_id": "8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2",
"passport_id": "b6f0d4a2-71c3-4e58-8a19-3f7c2d5e8b04",
"unit_id": "d41d8cd9-8f00-4b20-a204-9800998ecf84",
"passport": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/b6f0d4a2-71c3-4e58-8a19-3f7c2d5e8b04",
"unit": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/b6f0d4a2-71c3-4e58-8a19-3f7c2d5e8b04/units/d41d8cd9-8f00-4b20-a204-9800998ecf84",
"livemode": true,
"field": "status",
"value": "original",
"observed_on": "2026-08-02",
"source": "brand_statement",
"note": null,
"document_id": null,
"recorded_by": "a1100000-0000-4000-8000-000000000002",
"recorded_actor_type": "api_key",
"recorded_via": "api",
"recorded_at": "2026-08-02T09:31:18.446123Z",
"legacy_import": false
}POST /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/b6f0d4a2-71c3-4e58-8a19-3f7c2d5e8b04/units/d41d8cd9-8f00-4b20-a204-9800998ecf84/readings
Bir belgenin bağlantısını kaldırır ve başka hiçbir yerde kullanılmıyorsa kitaplıktan siler.
/organizations/{organization}/passports/{id}/documents/{documentId}- Kapsam
- documents:write
Idempotency-Key- Kabul edilmez
- Döndürür
- 200
Yol parametreleri
organizationdizgeZorunluBu isteğin adına işlem yaptığı kuruluş. Anahtarın bu kuruluş için yetkisi olmalıdır.
iddizgeZorunluKaynağın tanımlayıcısı. Bunu içeriği okunmayan bir dizge olarak değerlendirin.
documentIddizgeZorunluKaynağın tanımlayıcısı. Bunu içeriği okunmayan bir dizge olarak değerlendirin.
İstek başlıkları
If-Matchdizgeİsteğe bağlıTam olarak * değilse invalid_request ile REDDEDİLİR. Bu uç noktanın koşullu bir biçimi yoktur. DELETE, CDN'imize karşı ölçmediğimiz tek yöntemdir; CDN bazı yollarda If-Match başlığını YANITLA karşılaştırır ve bir başarıyı 412 olarak yeniden yazar — çoktan tamamlanmış bir ayırma işlemi ise size asla ret olarak bildirilmemelidir. Yalnızca belgenin hâlâ var olmasını isteyen If-Match: * kabul edilir.
Hatalar
Bu uç noktanın döndürebileceği tüm ret yanıtları, geldikleri durum koduyla birlikte.
- 500configuration_error
- 409document_feeds_extraction
- 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
- 409resource_busy
- 404resource_not_found
- 400wildcard_not_supported
curl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/documents/a3b8c2d1-5e64-4f79-8a0b-1c2d3e4f5a6b" \
-X DELETE \
-H "Authorization: Bearer $PASSPORTCRAFT_API_KEY"{
"object": "document.deleted",
"id": "a3b8c2d1-5e64-4f79-8a0b-1c2d3e4f5a6b",
"organization_id": "8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2",
"passport_id": "2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41",
"livemode": true,
"detached": true,
"deleted_from_library": true,
"remaining_links": 0,
"document_limit": 50
}DELETE /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/2c1f9e07-3b4d-4a18-9f6c-5e0a7b8d3c41/documents/a3b8c2d1-5e64-4f79-8a0b-1c2d3e4f5a6b