Products
Create, update, list, and retrieve products.
Create, update, list, and retrieve products.
https://api.eulabel.eu/v1Authentication
API keys, scopes, and session-based dashboard auth
Error handling
Structured errors, retry strategy, and rate limits
SDKs
Typed client libraries for TypeScript and Python
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"
}
}