Live offers and inventory for up to 10 ASINs
offers_stockUse to compare sellers' current offers and see who holds the buy box, and, with check_inventory, how many units a buyer can add to the cart now. The stock number is not a sales estimate. Not for the listing's own details (product_details). Returns the current offer list per ASIN (seller, price, condition, buy-box winner) and, optionally, the actual purchasable stock quantity. Price: $0.0045 per item (max 10). Billed per lookup, which is more than one per ASIN when check_inventory is true. offers_count=winner returns only the offer flagged is_buybox_winner (offers_total keeps the full count); it used to scope only the inventory check and return every offer. /scrape is a legacy alias for the same handler. When Amazon will not return the offer list for an ASIN, the result carries source=product_page: the featured (buy-box) offer read from the product page, offers_on_amazon (how many offers Amazon says exist) and a note; other sellers' offers and stock are then not included. With check_inventory, a cart check that cannot read a quantity is retried once on another session; one that still fails says so on the offer, inventory_response {"error": "cart check failed", "code": "cart_check_failed", "retryable": true}, is not billed, and never reads as a quantity of 0. Each offer carries ships_from (the "Ships from" name: Amazon for FBA, else the seller), delivery_message (the offer's own delivery promise, e.g. "FREE delivery Friday, October 16 on orders shipped by Amazon over $35") and delivery_message_secondary (the "Or fastest delivery ..." line), null when the offer shows none. delivery is the same value as ships_from, kept for existing integrations; it never held delivery information. A row for an ASIN that could not be answered carries error, code, http_status, billed, retryable and next_step, like a top-level error: upstream_unavailable (not billed, retry that ASIN), no_offers ("No offers found": the offer list holds no offer that can be bought as is -- customizable listings have none; billed like a 404) or asin_redirected (Amazon answers the ASIN with another listing's offers; billed like a 404). On agent.apiguru.app the answer also carries success and _links (self, and details_url per row); billable_requests_count is there on your own key only.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | Marketplace country code. | US |
| asins | Yes | Comma-separated ASIN list, maximum 10. Each must be 10 uppercase alphanumeric characters; malformed entries are rejected with 400. An Amazon product URL (…/dp/ASIN) works too, in place of an ASIN; lower case is fine. A URL's domain sets the marketplace unless geo says otherwise. | |
| condition | No | Comma-separated condition filter: ALL, NEW, USED_LIKE_NEW, USED_VERY_GOOD, USED_GOOD, USED_ACCEPTABLE (case-insensitive). Omit for every offer. An unknown value is a free 400 listing the allowed ones; it used to be silently treated as ALL. | |
| offers_count | No | 'all' for every offer (default), 'winner' for the buy-box offer only, or a specific alphanumeric Offer ID. Every offer carries is_buybox_winner; with 'winner' the per-ASIN data holds that one offer and offers_total says how many exist. An ASIN with no featured offer answers an empty list with an explanatory error. The response echoes filters_applied. | all |
| check_inventory | No | Add each offer's purchasable stock quantity (`inventory_response`), read with a cart check. Slower, and each check that reads a quantity is billed, so leave off unless you need the number. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| results | No | ||
| request_id | No | ||
| country_code | No | ||
| response_time | No | ||
| filters_applied | No | ||
| amazon_request_count | No |