List products
const url = 'https://api.europlaybook.com/v1/products?limit=50&sku=TEA-001&archived=hide';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.europlaybook.com/v1/products?limit=50&sku=TEA-001&archived=hide' \ --header 'Authorization: Bearer <token>'Products ordered by SKU. ?sku= finds one product by its exact SKU (archived included).
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Items per page (1-200).
Items per page (1-200).
Hide = active products only (default), only = archived only, all = both.
Hide = active products only (default), only = archived only, all = both.
Responses
Section titled “Responses”OK
object
object
Your stock keeping unit; unique per account.
Product name.
Brand on the product.
Customs tariff code.
ISO 3166-1 alpha-2.
Archived products are kept for history.
A bundle of other products (bill of materials).
Electrical/electronic equipment (WEEE).
Textile product (textiles EPR).
Gate 1: a person confirmed this product’s packaging. Changing packaging (also through a proposal) clears it until someone confirms again in the portal.
Gate 1 in detail (complements packaging_confirmed, which equals state confirmed when the packaging is unchanged).
Example
{ "items": [ { "id": "0199f5a2-7c1e-7b4a-9d0e-3f6c2a1b8e44", "sku": "TEA-001", "title": "Green tea 100 g", "brand_name": "Demo Garden", "gtin": "8712345678906", "hs_code": "090210", "country_of_origin": "NL", "net_weight_mg": 100000, "status": "active", "confirmation": { "state": "none" } } ], "next_cursor": "WyIwMTk5ZjVhMi03YzFlLTdiNGEtOWQwZS0zZjZjMmExYjhlNDQiXQ"}Bad Request
object
Example
{ "detail": "This API key lacks the scope catalogue:write", "code": "insufficient_scope", "params": { "required_scope": "catalogue:write" }}Unauthorized
object
Example
{ "detail": "This API key lacks the scope catalogue:write", "code": "insufficient_scope", "params": { "required_scope": "catalogue:write" }}Forbidden
object
Example
{ "detail": "This API key lacks the scope catalogue:write", "code": "insufficient_scope", "params": { "required_scope": "catalogue:write" }}Not Found
object
Example
{ "detail": "This API key lacks the scope catalogue:write", "code": "insufficient_scope", "params": { "required_scope": "catalogue:write" }}Conflict
object
Example
{ "detail": "This API key lacks the scope catalogue:write", "code": "insufficient_scope", "params": { "required_scope": "catalogue:write" }}Unprocessable Content
object
What went wrong, in English, for people and logs.
Stable machine-readable error code; translate and branch on this.
Per-field problems (pydantic format: loc, msg, type).
object
Example
{ "detail": "This API key lacks the scope catalogue:write", "code": "insufficient_scope", "params": { "required_scope": "catalogue:write" }, "errors": []}Too Many Requests
object
Example
{ "detail": "This API key lacks the scope catalogue:write", "code": "insufficient_scope", "params": { "required_scope": "catalogue:write" }}