Look up up to 100 products in one request
Last updated · Changelog · OpenAPI spec · Markdown
Look up multiple products at once. For small batches (up to 20 identifiers), results are returned immediately. For larger batches (21-100), processing happens asynchronously — you receive a batch ID and poll for results.
Endpoint: POST /v1/products/batch
Credit Cost: Same as individual lookups (1 credit per product found, + 3 per product that has offers if including offers, + 1 per product that has a review if including reviews)
Request Body:
| Field | Type | Required | Description |
|---|---|---|---|
identifiers | string[] | Yes | Array of product identifiers (1-100). Supports barcodes, ASINs, URLs, model numbers. |
include | string[] | No | Additional data to fetch: "offers" and/or "reviews" |
Example Request (Synchronous, <=20 identifiers):
curl -X POST 'https://api.shopsavvy.com/v1/products/batch' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"identifiers": ["B09XS7JWHH", "B0CHX3TW6K", "027242923782"],
"include": ["offers"]
}'Synchronous Response (<=20 identifiers):
{
"success": true,
"results": [
{ "identifier": "B09XS7JWHH", "status": "found", "product": { "title": "Sony WH-1000XM5", ... }, "offers": [...] },
{ "identifier": "B0CHX3TW6K", "status": "found", "product": { "title": "iPhone 15 Pro", ... }, "offers": [...] },
{ "identifier": "INVALID123", "status": "not_found", "product": null }
],
"summary": { "total": 3, "found": 2, "not_found": 1 },
"meta": { "request_id": "abc-123", "credits_used": 8, "credits_remaining": 992 }
}Async Response (>20 identifiers):
When submitting more than 20 identifiers, you receive a batch ID immediately:
{
"success": true,
"batch": {
"id": "batch_abc123def456",
"status": "processing",
"total": 50,
"processed": 0,
"poll_url": "/v1/batch/batch_abc123def456",
"estimated_seconds": 75
}
}Poll GET /v1/batch/{batch_id} until status is "completed", then the response includes the full results array.