> ## Documentation Index
> Fetch the complete documentation index at: https://docs.querying.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Commerce Product API (COMMERCE_PRODUCT)

> Read one product page from Amazon, Walmart, Target, Sephora, Ulta, Olive Young, 11st, Musinsa, Kurly, Rakuten, Flipkart, Zalando and more, and get its price, stock, seller, rating, images, specs and options in one shape.

Read one storefront product page and receive the product as JSON through the async task API. Pass the page's `url`; the URL picks the storefront, and every storefront returns the same fields. A completed read costs **3 credits**.

## Request

```bash theme={"theme":"css-variables"}
curl -X POST https://api.querying.ai/v1/async/task \
  -H "Authorization: Bearer $QUERYING_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "taskType": "COMMERCE_PRODUCT", "payload": { "url": "https://www.amazon.com/dp/B00TTD9BRC" } }'
```

Submit the task, then poll `GET /v1/async/task/{id}` or receive its webhook. See [Async tasks](/concepts/async-tasks.md).

## Parameters

* `url`: Required. A product page on one of the storefronts below, up to 2,048 characters. Product `url` values that [Commerce Search](/engines/commerce-serp.md) returns for these storefronts work as they are, except Yahoo! Shopping's LOHACO pages on `lohaco.yahoo.co.jp`. Parameters the result does not depend on, such as tracking codes, are dropped before the page is read.
* `country`: Optional. Defaults to the storefront's country. Any other country is rejected with `422 REGION_UNSUPPORTED`.

| `site` | Product page | `country` |
| - | - | - |
| `amazon` | `amazon.com/dp/{ASIN}` | `US` |
| `walmart` | `walmart.com/ip/{name}/{id}` | `US` |
| `target` | `target.com/p/{name}/-/A-{TCIN}` | `US` |
| `sephora` | `sephora.com/product/{name}-P{id}` | `US` |
| `ulta` | `ulta.com/p/{name}-{id}` | `US` |
| `11st` | `11st.co.kr/products/{id}` | `KR` |
| `lotteon` | `lotteon.com/p/product/{id}` | `KR` |
| `musinsa` | `musinsa.com/products/{id}` | `KR` |
| `kurly` | `kurly.com/goods/{id}` | `KR` |
| `oliveyoung` | `oliveyoung.co.kr/store/goods/getGoodsDetail.do?goodsNo={id}` | `KR` |
| `rakuten` | `item.rakuten.co.jp/{shop}/{item}/` | `JP` |
| `yahoo_shopping` | `store.shopping.yahoo.co.jp/{store}/{item}.html` | `JP` |
| `qoo10` | `qoo10.jp/g/{id}` | `JP` |
| `flipkart` | `flipkart.com/{name}/p/{itm}?pid={pid}` | `IN` |
| `myntra` | `myntra.com/{category}/{brand}/{name}/{id}/buy` | `IN` |
| `nykaa` | `nykaa.com/{name}/p/{id}` | `IN` |
| `zalando` | `zalando.de/{name}-{sku}.html` | `DE` |
| `google_shopping` | `google.com/search?q={query}&udm=28#product={productId}&title={title}` | `US` |

Other addresses of the same page also work, such as Amazon's `/gp/product/{ASIN}` and 11st's mobile pages.

## Response example

```json theme={"theme":"css-variables"}
{
  "site": "amazon",
  "country": "US",
  "url": "https://www.amazon.com/dp/B00TTD9BRC",
  "productId": "B00TTD9BRC",
  "title": "CeraVe Moisturizing Cream, Face & Body Moisturizer for Dry Skin, 19oz",
  "brand": "CeraVe",
  "price": 16.77,
  "listPrice": 18.96,
  "currency": "USD",
  "inStock": true,
  "seller": "Amazon.com",
  "rating": 4.7,
  "reviewCount": 149149,
  "images": ["https://m.media-amazon.com/images/I/61EidjXUBrL._SL1000_.jpg"],
  "description": "[ HYALURONIC ACID MOISTURIZER ] With hyaluronic acid, ceramides and MVE technology for 24 hour hydration.",
  "descriptionImages": ["https://m.media-amazon.com/images/S/aplus-media-library-service-media/8c56d081-e316-4b57-9731-fcf4eda0821f.__CR0,0,1464,600_PT0_SX1464_V1___.jpg"],
  "specs": [
    { "name": "Item Form", "value": "Cream" },
    { "name": "Skin Type", "value": "All, Dry, Sensitive" }
  ],
  "options": [{ "name": "Size", "values": ["8 Ounce", "16 Ounce (Pack of 1)", "19 Ounce (Pack of 1)"] }],
  "categories": ["Beauty & Personal Care", "Skin Care", "Face", "Creams & Moisturizers", "Face Moisturizers"]
}
```

## Result fields

* `site`, `country`, `url` and `productId` identify the page. `url` is the page that was read. `productId` is the storefront's own product ID, such as the ASIN on Amazon or `shop:item` on Rakuten, and matches the one Commerce Search returns. The exception is a Nykaa product with shades or sizes: Commerce Search returns the ID of one option, and this read returns the ID of the product page.
* `title` is always present. The other fields appear when the page shows them; the table below lists the storefronts that return each one.
* `price` is what a shopper pays for the product as the page first shows it, before coupons and delivery, in `currency` (ISO 4217). `listPrice` is the regular price the page strikes through, present when it is above `price`. `inStock` is that product's stock status, and `seller` is the merchant selling it.
* `rating` uses a five-point scale with two decimals. `reviewCount` is the number of reviews.
* `images` lists up to 30 photos from the product's gallery, in page order. 11st and Lotte ON return the main photo only, Sephora up to two, and on Rakuten and Yahoo! Shopping the banners or notices a seller places in that gallery come along. `description` is plain text with one line per paragraph, up to 10,000 characters; text that appears only inside images is not included.
* `descriptionImages` lists up to 300 images from the product description, such as a seller's detail page or Amazon's A+ content, in page order. Banners and notices that sellers place in their description come along, and text inside the images is not read.
* `specs` lists up to 100 `{ name, value }` pairs from the product details. `options` lists up to 20 choices such as size or color, each with up to 100 `values`; the other fields describe the choice the page opens on. `categories` runs from the broadest category to the narrowest, up to 10 levels. `gtin` is the UPC, EAN or JAN the page lists.
* `google_shopping` reads a product that [Commerce Search](/engines/commerce-serp.md) returned: its `url` carries the search query, Google's product ID and the product's title. The read runs that query on Google Shopping again, or the title when Google no longer lists the product for the query, and opens the product's panel, so it takes longer than a storefront page. `offers` lists the stores Google shows for the product, starting with the one Google marks as the best price, each with `seller`, `title` (the store's product name), `url` (the store's product page), `price`, `listPrice`, `currency` and `inStock`. The product's `price`, `listPrice`, `seller` and `inStock` are the first store's. `reviewCount` appears only when Google shows the exact count (below 1,000). If Google lists the product for neither, the task ends with `PAGE_UNAVAILABLE`.
* A page the storefront answers with 404 or 410, such as a removed product, ends the task with `PAGE_UNAVAILABLE`, and the message carries the storefront's answer. Other failed reads end with `ENGINE_NO_RESULT`. Billing applies per completed read.

| Field | Storefronts that return it |
| - | - |
| `title`, `price`, `currency`, `images` | All |
| `brand` | All except Rakuten |
| `inStock` | All except Target and Sephora |
| `rating` | All except Lotte ON, Kurly and Zalando |
| `reviewCount` | All except Lotte ON and Zalando |
| `categories` | All except Sephora, Qoo10, Flipkart and Google Shopping |
| `description` | All except 11st and Qoo10. Lotte ON, Musinsa and Olive Young show most product details as images, so few of their pages have one. Flipkart and Zalando return the short summary they publish for search engines. |
| `descriptionImages` | Amazon, Ulta, 11st, Lotte ON, Musinsa, Kurly, Olive Young, Rakuten, Yahoo! Shopping and Qoo10 |
| `specs` | Amazon, Walmart, Target, Ulta, Lotte ON, Musinsa, Kurly, Myntra, Nykaa and Google Shopping |
| `options` | Amazon, Walmart, Ulta, Musinsa, Kurly, Olive Young, Rakuten, Myntra, Nykaa and Zalando |
| `seller` | Amazon, Walmart, Lotte ON, Kurly, Rakuten, Myntra, Nykaa and Google Shopping |
| `listPrice` | Amazon, Walmart, Target, Sephora, Musinsa, Kurly, Olive Young, Qoo10, Myntra, Nykaa and Google Shopping |
| `offers` | Google Shopping |
| `gtin` | Amazon, Walmart, Target, Ulta, Olive Young, Rakuten and Yahoo! Shopping |

## Related

* [Commerce Search](/engines/commerce-serp.md)
* [Engine overview](/engines/overview.md)
* [Credits and limits](/concepts/credits-and-limits.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.