Look up products by identifier
Find what published sources say about a product from its GTIN, EAN, UPC, ISBN, ASIN, part number, stock code or page address. Every fact comes back with the source that states it, how sure the match is, and any disagreement between sources. Send one product or a batch of up to 500. Sources are your own catalogue, your connected Amazon store, the Open Food Facts database, a product page you point at, and a web search. Only a web search is charged, and an answer already found is served from cache at no cost. Add enrich to also write content from what was found. Small requests answer inline (200, or 207 when an item failed); larger ones return a job (202). Requires the enrichment:write scope.
API key in the Authorization header: Authorization: Bearer ace_live_.... Use an ace_test_... key for the free, rate-capped sandbox.
In: header
Header Parameters
Makes a retried batch return the same job instead of a second one.
length <= 255Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Send either one product (q, identifiers, hints, ref, product) or items. Unknown keys are refused.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/enrichment/lookup" \ -H "Content-Type: application/json" \ -d '{ "q": "4006381333931", "market": "GB" }'{ "data": { "operation": "lookup", "items": [ { "index": 0, "ref": "string", "status": "ok", "error": { "code": "string", "message": "string", "details": {} }, "warnings": [ { "code": "INVALID_IDENTIFIER", "field": "string", "value": "string", "reason": "empty", "usedAs": "asin" } ], "match": { "status": "matched", "confidence": 0, "identifiers": { "property1": "string", "property2": "string" }, "partial": true, "candidates": [ {} ] }, "product": { "title": "string", "brand": "string", "description": "string", "bullets": [ "string" ], "category": "string", "images": [ { "url": "string", "source": "string", "sourceUrl": "string", "licence": "string", "attribution": "string" } ], "gtin": "string", "mpn": "string", "asin": "string", "attributes": { "property1": { "value": null, "unit": "string" }, "property2": { "value": null, "unit": "string" } } }, "facts": [ { "field": "title", "name": "string", "value": null, "unit": "string", "source": "catalog", "provider": "open_food_facts", "url": "http://example.com", "retrievedAt": "2019-08-24T14:15:22Z", "matchMethod": "exact_gtin", "extraction": "structured", "confidence": 0, "verified": true, "licence": "ODbL 1.0", "attribution": "string" } ], "sources": [ { "id": "catalog", "status": "hit", "reason": "AMAZON_NOT_CONNECTED", "cached": true, "stale": true, "urls": [ "http://example.com" ], "attribution": { "source": "string", "provider": "string", "text": "string", "licence": "string", "url": "string" }, "retryAfterMs": 0 } ], "conflicts": [ {} ], "content": {}, "generation": { "status": "generated", "reason": "MATCH_NOT_FOUND", "units": [ { "type": "string", "status": "ok", "error": { "code": "string", "message": "string" } } ], "skippedContentTypes": [ "string" ] }, "usage": { "searchCalls": 0, "cacheHits": 0 } } ], "summary": { "total": 0, "matched": 0, "ambiguous": 0, "notFound": 0, "errors": 0, "searchCalls": 0, "cacheHits": 0, "generated": 0, "generationErrors": 0 }, "attributions": [ { "source": "string", "provider": "string", "text": "string", "licence": "string", "url": "string" } ] }}{ "data": { "id": "string", "kind": "rules", "status": "pending", "progress": { "phase": "string", "completed": 0, "total": 0 }, "estimateMs": 0, "productCount": 0, "succeededCount": 0, "failedCount": 0, "storeId": "string", "createdAt": "2019-08-24T14:15:22Z", "links": { "self": "string", "results": "string" } }}{ "data": { "operation": "lookup", "items": [ { "index": 0, "ref": "string", "status": "ok", "error": { "code": "string", "message": "string", "details": {} }, "warnings": [ { "code": "INVALID_IDENTIFIER", "field": "string", "value": "string", "reason": "empty", "usedAs": "asin" } ], "match": { "status": "matched", "confidence": 0, "identifiers": { "property1": "string", "property2": "string" }, "partial": true, "candidates": [ {} ] }, "product": { "title": "string", "brand": "string", "description": "string", "bullets": [ "string" ], "category": "string", "images": [ { "url": "string", "source": "string", "sourceUrl": "string", "licence": "string", "attribution": "string" } ], "gtin": "string", "mpn": "string", "asin": "string", "attributes": { "property1": { "value": null, "unit": "string" }, "property2": { "value": null, "unit": "string" } } }, "facts": [ { "field": "title", "name": "string", "value": null, "unit": "string", "source": "catalog", "provider": "open_food_facts", "url": "http://example.com", "retrievedAt": "2019-08-24T14:15:22Z", "matchMethod": "exact_gtin", "extraction": "structured", "confidence": 0, "verified": true, "licence": "ODbL 1.0", "attribution": "string" } ], "sources": [ { "id": "catalog", "status": "hit", "reason": "AMAZON_NOT_CONNECTED", "cached": true, "stale": true, "urls": [ "http://example.com" ], "attribution": { "source": "string", "provider": "string", "text": "string", "licence": "string", "url": "string" }, "retryAfterMs": 0 } ], "conflicts": [ {} ], "content": {}, "generation": { "status": "generated", "reason": "MATCH_NOT_FOUND", "units": [ { "type": "string", "status": "ok", "error": { "code": "string", "message": "string" } } ], "skippedContentTypes": [ "string" ] }, "usage": { "searchCalls": 0, "cacheHits": 0 } } ], "summary": { "total": 0, "matched": 0, "ambiguous": 0, "notFound": 0, "errors": 0, "searchCalls": 0, "cacheHits": 0, "generated": 0, "generationErrors": 0 }, "attributions": [ { "source": "string", "provider": "string", "text": "string", "licence": "string", "url": "string" } ] }}{ "error": { "code": "NO_IDENTIFIER", "message": "Send at least one identifier: a GTIN, EAN, UPC, ISBN, ASIN, part number with a brand, stock code, page address, or a bare value in q." }}{ "error": { "code": "INSUFFICIENT_CREDITS", "message": "Not enough credits for this request.", "details": null }}{ "error": { "code": "INSUFFICIENT_CREDITS", "message": "Not enough credits for this request.", "details": null }}{ "error": { "code": "PROJECT_SCOPE_MISMATCH", "message": "This API key is scoped to a different project." }}{ "error": { "code": "INSUFFICIENT_CREDITS", "message": "Not enough credits for this request.", "details": null }}