Lazada Product
Lazada Product
/lazada/v1/product3 creditsFull product detail for one Lazada item id: title, numeric price with the currency and the exact string Lazada displays, brand, seller id, the full 3-level category path, description as clean text and as the original HTML, the whole image gallery, the product video where one exists, every SKU and variant axis, schema.org sku/mpn, the return-policy code and Lazada's per-order purchase limit. Measured 2026-10-06 over 37 live products from all six marketplaces and six currencies: 20 of those field groups arrived on 37/37, brand on 35/37 (two were genuinely unbranded), variants on 27/37 and a video on 12/37. 🔴 Lazada does NOT publish rating, review count, seller NAME, list price, discount or stock quantity on this document — those exist only on its listing surface, which this API does not offer, so they come back null and are never guessed at. A dead or withdrawn item id returns NOT_FOUND (Lazada answers 404 with its 'no longer available' page); it is not a block and retrying will not change it.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| itemId | required | — | Lazada item id — the digits in a product URL (…-i3492111551.html) or an `item_id` from `catalog_ids`. A whole product URL is accepted too. 🔴 Lazada item ids EXPIRE: measured 2026-10-06, 12 of 13 resolvable ids that were live 30 days earlier were still live, but ids taken from Lazada's own 15-month-old product feed were dead on 18-75 % of fetches depending on the storefront. Take a fresh id from `catalog_ids` rather than reusing an old one; a dead id comes back as NOT_FOUND, never as a block. |
| country = sg | optional | sg · my · th · id · vn · ph | Lazada storefront to query — each is a separate marketplace with its own catalogue, sellers and currency. Default sg. |
/lazada/v1/catalog_ids1 creditItem ids straight out of Lazada's OWN published product feed, so a caller with no id can get one. It is the `sitemap-products-order-last-N-days-morethan0` feed the storefront publishes for search engines: a second-level index of leaves, each leaf exactly 10 000 canonical product URLs. `page` picks the leaf, and `offset`/`limit` slice inside it. Measured 2026-10-06: sg 235 leaves (≈2.34 M ids), my 600 (≈6.00 M), th 762 (≈7.61 M), vn 241 (≈2.40 M), ph 627 (≈6.26 M), id 1308 (≈13.08 M); leaves are disjoint. 🔴 READ `sitemap_lastmod` BEFORE TRUSTING THE NAME. The feed says 'last 30 days' but every URL in it carries one single lastmod — the day Lazada regenerated the file — and on 2026-10-06 that was today for Indonesia and 2025-07 for the other five storefronts. So a share of these ids is already withdrawn: measured dead rate (n=12 per storefront, fetched through `product`) id 0 %, my 25 %, th 42 %, ph 58 %, sg 82 %, vn 83 %. Every response repeats that figure in `dead_id_rate_measured`. This action is NOT a search: it cannot be filtered by keyword, price or category, it is ordered the way Lazada orders its feed, and it returns no product data — only the id and the canonical URL.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| country = sg | optional | sg · my · th · id · vn · ph | Lazada storefront to query — each is a separate marketplace with its own catalogue, sellers and currency. Default sg. |
| page = 1 | optional | 1– | Which leaf of the feed to read, 1-based. `leaves_total` in the response is the ceiling and it differs per storefront (235 on sg, 1308 on id). |
| limit = 200 | optional | 1–2000 | How many ids to return from that leaf (max 2000). A full leaf holds 10 000, so walk it with `offset`. |
| offset = 0 | optional | 0–9999 | How many ids to skip inside the leaf. 0-9999. |
curl -X POST https://api.reefapi.com/lazada/v1/product \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"itemId":"3478876886","country":"sg"}'{
"ok": true,
"data": { /* the result */ },
"meta": {
"latency_ms": 240,
"record_count": 12,
"completeness_pct": 100
},
"error": null
}Measured at 60 requests a second across the fleet, with no central bottleneck. Volume pricing is on request, and per-key limits are raised for high-volume accounts.
Tell us a site we do not cover yet and it becomes an engine. A customer asked for bestprice.gr on a Sunday and it was in the catalog the next day.
Median time from a question in the live chat to the first answer, measured across every answered conversation. Setup help included, no support tier to buy.
No per-site plans and no separate subscriptions. One key and one credit pool across the whole catalog, so adding a source costs nothing up front.
Planning something large? Tell us the volume and the sources and we will come back with what it costs and what we would have to build.