Products
Create, update, list, and retrieve products.
Create, update, list, and retrieve products.
List products
Authorization
bearerAuth API key authentication. Pass your key in the Authorization header:
Authorization: Bearer sk_live_...
In: header
Query Parameters
Maximum number of products to return.
25value <= 100Cursor for pagination. Pass the productId of the last item from the previous page.
Response Body
application/json
application/json
curl -X GET "https://api.eulabel.eu/v1/products"{
"data": [
{
"internalId": "6868d0ce-34a2-4e78-b137-31229ba3e81a",
"tenantId": "string",
"gtin": "string",
"name": "string",
"category": "wine",
"brand": "string",
"sku": "string",
"links": [
{
"href": "http://example.com",
"rel": "string",
"type": "string"
}
],
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z"
}
],
"hasMore": true
}{
"error": {
"type": "authentication_error",
"message": "Invalid API key",
"code": "authentication_error"
}
}Create a product
Authorization
bearerAuth 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/products" \ -H "Content-Type: application/json" \ -d '{ "name": "Quinta do Crasto Douro Red 2021", "category": "wine", "brand": "Quinta do Crasto", "gtin": "5601234567890" }'{
"productId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"qrCodeUrl": "https://eulabel.eu/01/05601234567890",
"createdAt": "2026-03-14T20:00:00.000Z"
}{
"error": {
"type": "authentication_error",
"message": "Invalid API key",
"code": "authentication_error"
}
}{
"error": {
"type": "duplicate_error",
"message": "A product with this GTIN already exists",
"code": "duplicate_error",
"param": "gtin"
}
}{
"error": {
"type": "validation_error",
"message": "gtin is required",
"code": "validation_error",
"param": "gtin"
}
}Get a product
Authorization
bearerAuth API key authentication. Pass your key in the Authorization header:
Authorization: Bearer sk_live_...
In: header
Path Parameters
Unique product identifier.
uuidResponse Body
application/json
application/json
application/json
curl -X GET "https://api.eulabel.eu/v1/products/497f6eca-6276-4993-bfeb-53cbbbba6f08"{
"internalId": "6868d0ce-34a2-4e78-b137-31229ba3e81a",
"tenantId": "string",
"gtin": "string",
"name": "string",
"category": "wine",
"brand": "string",
"sku": "string",
"links": [
{
"href": "http://example.com",
"rel": "string",
"type": "string"
}
],
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "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"
}
}Update a product
Authorization
bearerAuth API key authentication. Pass your key in the Authorization header:
Authorization: Bearer sk_live_...
In: header
Path Parameters
Unique product identifier.
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X PATCH "https://api.eulabel.eu/v1/products/497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{ "name": "Quinta do Crasto Douro Red 2022", "brand": "Quinta do Crasto" }'{
"product": {
"internalId": "6868d0ce-34a2-4e78-b137-31229ba3e81a",
"tenantId": "string",
"gtin": "string",
"name": "string",
"category": "wine",
"brand": "string",
"sku": "string",
"links": [
{
"href": "http://example.com",
"rel": "string",
"type": "string"
}
],
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "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"
}
}{
"error": {
"type": "validation_error",
"message": "gtin is required",
"code": "validation_error",
"param": "gtin"
}
}