Coupang (쿠팡) Product Search Scraper - Prices & Ratings
Pricing
$3.99 / 1,000 products
Coupang (쿠팡) Product Search Scraper - Prices & Ratings
Coupang product listings by keyword: product ID, title, URL, image, price, availability, rating, review count and rank. A keyword Coupang has no match for is reported as no_match instead of being filled with recommended products.
Pricing
$3.99 / 1,000 products
Rating
0.0
(0)
Developer
Lantern Lab
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Security
Limited permissionsShare
Coupang Product Search Scraper
A Lantern Lab Actor. Give it Korean or English keywords and get Coupang's public product listings back: product ID, title, URL, image, price, availability, rating, review count and the rank Coupang listed it at. No Coupang login, no cookies.
A keyword with no match is reported as having no match. Coupang does not say "no
results" — it fills the page with recommended products instead, and that page is otherwise
indistinguishable from a page of real results. This Actor reads the page's own filter
facets to tell the two apart and discards the recommendations, so you never get
unrelated products delivered as matches for your keyword. When the evidence is missing it
says unknown and writes nothing rather than guessing.
Price: you pay per product collected. Keyword status rows and the run summary are free, and so is a keyword that matched nothing or could not be finished.
Quick example
Input:
{"searchQueries": ["생수 2L 24개", "무선 이어폰"],"maxProductsPerQuery": 60}
One product row (recordType: "product"):
{"recordType": "product","productId": "6239512369","itemId": "18743957351","vendorItemId": "86494124999","title": "풀무원샘물 무라벨, 2L, 24개","url": "https://www.coupang.com/vp/products/6239512369?itemId=18743957351&vendorItemId=86494124999","imageUrl": "https://thumbnail.coupangcdn.com/thumbnails/remote/320x320ex/image/retail/images/65619175192380-c9d413ea-25b9-439c-949f-fa721087d86a.jpg","price": 13500,"currency": "KRW","availability": "InStock","rating": 5,"reviewCount": 256375,"query": "생수 2L 24개","rank": 1,"searchPage": 1,"partial": false,"partialReason": null,"collectedAt": "2026-10-24T05:41:08.112Z"}
One keyword row (recordType: "query_status", free) for a keyword Coupang has no match for:
{"recordType": "query_status","query": "qwzxlk9981nonexistentproduct","outcome": "no_match","productsReturned": 0,"productsCharged": 0,"productsOnPage": null,"titleKeywordCoverage": 0,"matchEvidence": {"found": true,"categoryTabs": 0,"priceRanges": 0,"ratingFilters": 0,"brands": 0,"attributeFilters": 0,"offerConditions": 0,"deliveryFiltersEnabled": 0},"partial": false,"statusText": "Coupang has no product matching this keyword. It answered with a page of recommended products instead, which this Actor discards: they are not results for your keyword, so no row was written and nothing was charged. This is an empty result, not a failed one."}
Limits
- The rating is rounded. Coupang's search listing rounds a product's rating to the nearest 0.5. Cross-checked against the products' own pages twice, 11 products in total: 0 matched exactly, every difference was 0.1-0.3. Use the product's own page when you need the rating to a decimal.
priceis the listing price, and the product page can show a lower one. Coupang shows one price in search results and applies card or coupon discounts on the product page. In 3 of 5 products cross-checked, the product page's headline price was 3-15 % below the listing price - and in all 3, the listing price was exactly the product page's own reference price (priceSpecification). Sopriceis what a buyer sees in the search results, which is the right number to compare listings with, and not necessarily what they pay at checkout.reviewCountis exact, and it moves. It matched the product page on 9 of 11 products cross-checked; the two differences were +1 and +2 reviews added between the two reads, minutes apart. Treat it as the count atcollectedAt.- No original price, discount, seller or Rocket delivery badge. A Coupang search listing does not carry them for an ordinary result — only for the promotional carousel, and not on every page — so this Actor does not offer those fields at all rather than offering a column that is almost always null.
- One page per keyword, 24-57 products. Coupang server-renders results onto the first
page of a search only;
&page=2and later answer with a 0.14 MB promotional shell that carries no product list. WhenmaxProductsPerQueryis above what the page holds, the keyword's status row sayspageLimitReached: true— Coupang's ceiling, not yours. - Coupang lists the same product more than once on one page — often 30 or more repeats of
a 55-entry list. Each
productIdis written once, at the first rank it appeared at, so it is charged once, andproductsOnPagecounts the unique products the page offered. - 20-30 seconds per keyword, and the anti-bot layer answers a share of requests with
HTTP 502 or with a page that is not the whole search page. Both are retried, up to 5
attempts per keyword. A page that never arrives whole is reported as
upstream_errorand never parsed: a short search page has the product list but not the match evidence, which is the one shape that could pass unrelated products off as results. Keywords are collected one after another. - Coupang throttles its listing pages after sustained use. Measured 2026-10-24: after
about 70 search requests from one account the search and category pages answered 502
through the proxy for tens of minutes - while coupang.com's own home page kept answering
200 in under 3 seconds, so it is the listing endpoints and not the proxy. Keywords hit by
it are reported
upstream_error, never as having no products. Spread large keyword lists over several runs rather than one. - Public listing data only. No login, no cookies, no account. No seller contact details, no buyer or reviewer data, no product reviews, no product detail pages.
- Prices and ratings are what the listing showed at
collectedAt; Coupang changes them during the day. - No scheduling or monitoring built in; use Apify schedules.
How a keyword with no match is caught
This is the one thing worth reading before you rely on the output. Coupang's answer to a keyword it has no product for is a normal-looking search page: same document shape, same JSON-LD product list, 25-57 recommended products in it, and the Korean "no results" sentence present only as an i18n dictionary entry that is on every page, matched or not. Counting results does not help either — the page's own telemetry reports the same constant on every page.
What does separate them is the filter sidebar, because Coupang computes it from the result set and not from the recommendations it padded the page with. A matched keyword is offered category tabs for the categories its results fall in, price buckets, star filters, brand names, attribute filters and at least one selectable delivery filter. An unmatched keyword is offered the "all" tab and nothing else, with every delivery filter disabled.
So every keyword's status row carries outcome plus the matchEvidence it was decided
from:
outcome | What it means | Products written |
|---|---|---|
matched | The page offers facets derived from a result set. | yes, charged |
no_match | The facets are there and all empty: Coupang has no match, and the products on the page are its recommendations. | no, free |
unknown | The facets were not found, so whether the products are results is unknown. partial: true, partialReason: "match_unverified". | no, free |
failed | The page could not be read, or Coupang served a different search. partial: true. | no, free |
titleKeywordCoverage is reported next to that as a second, independent number: how much
of your keyword appears in the returned titles, averaged over the products. It is not what
decides the outcome — Korean compounds written without spaces keep it well under 1 even on
a good result set — but it lets you judge the result set yourself.
What it does
- Searches Coupang for each keyword in order, one request per keyword.
- Returns the listing fields Coupang states:
productId,title,url,imageUrl,price,currency,availability,rating,reviewCount,rank, plus Coupang'sitemIdandvendorItemIdfor the offer the listing links to. - Tells a matched keyword from an unmatched one from the page's own filter facets, and discards the recommendations Coupang pads an unmatched keyword's page with.
- Checks that the page Coupang served is the search that was asked for, and marks the
keyword
wrong_pageinstead of writing another keyword's products. - Deduplicates across the whole run: a product that matches two of your keywords is written and charged once, and the second keyword's row says how many it had already seen.
- Keeps the source identifiers (
productId,itemId,vendorItemId) and our own collection time (collectedAt) as separate fields. A search listing states no publish time for a product, so there is none to report. - Says what happened to every keyword. A keyword with no match, a keyword that could not be judged and a keyword that was never reached are different records and are never confused.
- Gets past Coupang's Akamai bot protection through Apify's Unblocker proxy with a Korean exit, and retries a refused or failed page up to 4 times with a short wait in between.
- Caps itself:
maxUpstreamRequestsis a hard ceiling on requests to Coupang for the whole run, retries included, derived from your input when you leave it empty, so a run is never unbounded.
Input
| Field | Default | Meaning |
|---|---|---|
searchQueries | — | Keywords to search for, one per line, Korean or English. |
maxProductsPerQuery | 60 | Upper bound on products per keyword. Coupang's own page holds 24-57. |
proxyConfiguration | Apify Proxy, UNBLOCKER, KR | Leave at the default: nothing else is measured to get past Coupang's edge. |
maxUpstreamRequests | derived | Hard ceiling on requests to Coupang for the whole run, retries included. |
Output
One row per product, recordType: "product", charged:
| Field | Meaning |
|---|---|
productId | Coupang's product ID — the dedupe key. |
itemId, vendorItemId | Coupang's identifiers for the offer the listing links to. |
title, url, imageUrl | The listing's title, product page link and thumbnail. |
price, currency | The price shown in the listing, as a number, and KRW. |
availability | Coupang's schema.org availability, for example InStock. |
rating, reviewCount | Average rating rounded by Coupang to the nearest 0.5, and the exact review count. |
query, rank, searchPage | Which search produced the row, its position from 1, and the page it came from (always 1). |
partial, partialReason | Always false / null on a product row: the row exists because the product was collected from a page whose results were established to be results. |
collectedAt | Our own collection time. |
One row per keyword, recordType: "query_status", free: outcome (matched, no_match,
unknown, failed), matchEvidence, titleKeywordCoverage, keywordServed (the keyword
the page says it answered), productsReturned / productsCharged / duplicatesSkipped /
productsOnPage, pageLimitReached, and partial / partialReason
(match_unverified, wrong_page, upstream_request_cap, charge_limit_reached,
blocked, upstream_error, not_collected) with statusText.
The last row is recordType: "RUN_SUMMARY" — what the keywords resolved to, products
collected and charged, keywords with no match, partial keywords by reason, requests sent
(retries included) and why collection stopped. The same object is also in the run's
key-value store under RUN_SUMMARY.