API Reference
Passports
Attach and retrieve Digital Product Passports.
Attach and retrieve Digital Product Passports.
Create a passport
Authorization
bearerAuth AuthorizationBearer <token>
API key authentication. Pass your key in the Authorization header:
Authorization: Bearer sk_live_...
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://api.eulabel.eu/v1/passports" \ -H "Content-Type: application/json" \ -d '{ "productId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "data": { "productType": "wine", "ingredients": [ "Grapes", "Sulphur Dioxide" ], "nutrition": { "energyKj": 300, "energyKcal": 72, "fatG": 0, "saturatedFatG": 0, "carbohydratesG": 0.5, "sugarsG": 0.2, "proteinG": 0.1, "saltG": 0, "alcoholG": 12 }, "allergens": { "containsSulphites": true, "containsEgg": false, "containsFish": false, "containsMilk": false }, "origin": { "country": "PT", "region": "Douro" }, "producers": [ { "name": "Quinta do Crasto", "role": "producer", "country": "PT" } ] } }'{
"passportId": "e5f6g7h8-i9j0-1234-klmn-opqrstuvwxyz",
"productId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"version": 1,
"status": "published",
"createdAt": "2026-03-14T20:00:00.000Z"
}{
"error": {
"type": "authentication_error",
"message": "Invalid API key",
"code": "authentication_error"
}
}{
"error": {
"type": "not_found",
"message": "No product found for this GTIN",
"code": "not_found"
}
}{
"error": {
"type": "validation_error",
"message": "gtin is required",
"code": "validation_error",
"param": "gtin"
}
}Get a product's passport
Authorization
bearerAuth AuthorizationBearer <token>
API key authentication. Pass your key in the Authorization header:
Authorization: Bearer sk_live_...
In: header
Path Parameters
productId*string
Unique product identifier.
Format
uuidResponse Body
application/json
application/json
application/json
curl -X GET "https://api.eulabel.eu/v1/products/497f6eca-6276-4993-bfeb-53cbbbba6f08/passport"{
"productId": "dcd53ddb-8104-4e48-8cc0-5df1088c6113",
"passportId": "cc3d87d5-4fa3-490e-b981-91f55888c0b7",
"name": "string",
"category": "string",
"gtin": "string",
"data": {
"productType": "wine",
"colour": "red",
"vintage": 0,
"ingredients": [
"string"
],
"nutrition": {
"energyKj": 0,
"energyKcal": 0,
"fatG": 0,
"saturatedFatG": 0,
"carbohydratesG": 0,
"sugarsG": 0,
"proteinG": 0,
"saltG": 0,
"alcoholG": 0
},
"allergens": {
"containsSulphites": true,
"containsEgg": true,
"containsFish": true,
"containsMilk": true
},
"origin": {
"country": "string",
"region": "string",
"designation": "string"
},
"producers": [
{
"name": "string",
"role": "producer",
"country": "string"
}
]
},
"qrCodeUrl": "http://example.com",
"status": "published",
"version": 0,
"lastUpdated": "2019-08-24T14:15:22Z"
}{
"error": {
"type": "authentication_error",
"message": "Invalid API key",
"code": "authentication_error"
}
}{
"error": {
"type": "not_found",
"message": "Resource not found",
"code": "not_found"
}
}