Coupang Review Scraper — Ratings, Complaints & Sentiment avatar

Coupang Review Scraper — Ratings, Complaints & Sentiment

Pricing

from $5.20 / 1,000 product summary rows

Go to Apify Store
Coupang Review Scraper — Ratings, Complaints & Sentiment

Coupang Review Scraper — Ratings, Complaints & Sentiment

Scrape Coupang product reviews and get a computed verdict per product: rating distribution, top complaint keywords, per-option rating gaps and a one-line headline. Korean-native. Unofficial tool, not affiliated with Coupang.

Pricing

from $5.20 / 1,000 product summary rows

Rating

0.0

(0)

Developer

Daniel Carter

Daniel Carter

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

0

Monthly active users

1.7 hours

Issues response

7 days ago

Last modified

Share

Coupang Review Scraper — Complaints & Ratings

Collect Coupang product reviews and get a computed per-product verdict you can act on without reading a single review. Paste product URLs and run.

Example headline verdict:

Comet Disposable Mask (1234567) — 4.3/5 across 120 collected reviews (8% are 1–2★); top complaints: smell, elastic band, thin material; option rating gap 0.6

Complaint keywords are returned in the words buyers wrote them (Korean).

Who it is for

  • Sellers and brands: pull the complaint keywords of 10 competing products at once — your product page copy and improvement list write themselves
  • Sourcing and purchasing: spot a bad variant by its per-option rating gap before you buy stock
  • Marketers and researchers: get the category's real consumer language (complaints, repurchase phrasing) as structured data

What it does

Put in Coupang product URLs (Korea's largest e-commerce platform) and get back one flat dataset with two row types:

  1. review rows — rating, date, purchase option, review headline & text, photo count, helpful votes, reviewer's public nickname
  2. summary rows — one computed verdict per product, a layer no other Coupang scraper ships: rating distribution, top complaint keywords mined from 1–2★ reviews, per-option rating gaps (catches "the red variant is the bad one"), repurchase mentions, photo-review ratio, and a one-line headline verdict in English (headlineEn carries the same text).

The verdict is computed by counting, not by an LLM — deterministic, reproducible, no hallucinated claims.

Unofficial tool. This Actor is not affiliated with, endorsed by, or sponsored by Coupang Corp. It collects only publicly accessible pages — no login, no private data.

What you get (row types)

summary — one verdict row per product

FieldDescription
productId / productUrl / productTitleThe product (productTitle when Coupang exposes it, else null)
displayName / displayNameSourceThe name used in the headline. Priority: your productLabels entry (label) → official title (product-title) → the most-reviewed purchase option string (top-option, e.g. "Koro Koro grape gummies, 6 pcs" — Coupang option strings carry the product name, but this is a display fallback, not the official title) → null (product-id)
headlineOne-line verdict in English — read it and you know whether to buy/source/worry
headlineEnSame text as headline, kept for existing integrations
avgRating / ratingDistributionAverage and 1–5★ histogram of collected reviews
lowStarRatioShare of collected reviews at 1–2★
complaintKeywordsTop recurring words in 1–2★ reviews ([{word, mentions}])
optionRatings / optionRatingGapAverage rating per purchase option and the worst-vs-best gap
repurchaseMentionsReviews mentioning repurchase (Korean phrases for "repurchase", "reorder", "bought again", …)
photoReviewRatioShare of reviews with photos
reviewsCollected / pagesCollectedSample size behind the verdict
skippedEmptyReviewsNumber of reviews skipped due to having no reviewText AND no survey (only appears when skipEmptyReviews=true)
requestedScope / appliedScopeThe reviewScope you asked for, and the one actually applied (they differ when the URL carried no matching id)
matchedItemId / matchedVendorItemIdThe purchase option or seller listing this verdict is filtered to, when a narrow scope applied
totalReviewCountReviews Coupang reports for the whole product — the denominator behind reviewsCollected
scopeFilteredOutReviews read but not delivered because they belong to a different option or seller listing
stopReasonWhy collection stopped: limit, time-budget, end-of-list or blocked
previousAvgRating / ratingDeltaMonitor mode only — the average on your previous run and how far it moved

review — one row per review

FieldDescription
productId / productUrl / productTitleThe product
reviewIdCoupang's own id for this review, as a string. This is the column to join on when you compare this month's file with last month's — nickname and date are not unique, and Coupang re-ranks the "helpful" order between runs
itemId / vendorItemIdThe purchase option and the seller listing this review was written against, as strings
rating1–5 stars
reviewDateYYYY-MM-DD
optionPurchase option as displayed (size, color, count …)
reviewHeadline / reviewTextReview title and body
helpfulCount"Helpful" votes
imageCountPhotos attached
reviewerPublic display nickname only — exactly what Coupang shows any visitor
surveyCoupang's structured survey answers when present (e.g. "Taste satisfaction: Satisfied")
monitorRowIdMonitor mode only — the key this Actor's own run-to-run comparison uses
changeType / changeDetailMonitor mode only — new / changed / removed / unchanged, and what moved

Status rows (noticeCode + message) explain anything that could not be collected and are never charged. Two of them concern scope: scope-param-missing (your URL carried no itemId / vendorItemId, so that product was read at product scope) and scope-no-match (the product was read fine, but none of its reviews belong to the option or seller listing you asked for — the notice carries totalReviewCount and scopeFilteredOut so you can see what is there).

Input

{
"productUrls": [
"https://www.coupang.com/vp/products/7108509622",
"6912345678"
],
"maxReviewsPerProduct": 100,
"sortBy": "helpful"
}
  • productUrls — up to 20 products per run; full URLs or bare numeric IDs
  • productLabels — optional display names matched to productUrls by position (e.g. ["Our product", "Competitor A"]); when set, headlines use your label — recommended when comparing many products
  • maxReviewsPerProduct — 1–500; the verdict is computed from what is collected
  • sortBy — helpful (Coupang's best-ranked first, default) or recent (newest first — use for monitoring). Note: Coupang's own "newest" feed skews toward quick star-only ratings with little or no written text, since those take buyers seconds to submit — reviewText will often be empty on recent runs even though the rating and (when present) the survey answers are still real. Use helpful when you need text-rich reviews to read.
  • monitorMode — return only what changed since your previous run (default false); see Monitor mode below
  • monitorKey — optional name for the watch, e.g. our-product-weekly; empty = derived from your input
  • includeUnchanged — monitor mode only; also return reviews that have not changed (default false)
  • skipEmptyReviews — when true, excludes reviews that have no reviewText AND no survey answers (star-only ratings) from the output and does not charge for them. Default: false. The maxReviewsPerProduct limit applies to exported reviews only; skipped reviews do not count toward it, so more pages are fetched until the limit or run budget is reached. The skipped count appears in the summary row as skippedEmptyReviews.
  • reviewScope — product (default), item or vendorItem; see Scope: one seller's reviews below. The default returns every review on the product page, exactly as before.

Scope: one seller's reviews

A Coupang product page pools the reviews of every purchase option and every seller listing under it. If you sell one of those listings, most of what the page shows was written about somebody else's.

Set reviewScope and paste the full link from your own listing — the one that ends in ?itemId=…&vendorItemId=…:

  • product — every review on the page. The default, and the behaviour this Actor has always had.
  • item — only reviews of the purchase option in your itemId (one size, one colour, one pack count).
  • vendorItem — only reviews of the seller listing in your vendorItemId. This is the one to pick if you asked "my reviews, not the whole page".

Coupang's review endpoint serves the whole product and ignores those two parameters, so we read the product and filter here. Three consequences worth knowing:

  • You pay for delivered rows only. Reviews dropped by the scope filter are never written to the dataset and are never charged. The summary row reports scopeFilteredOut and totalReviewCount so you can see the whole page behind your slice.
  • A narrow scope reads more pages to fill maxReviewsPerProduct with matching reviews, so those runs take longer.
  • No match is an answer, not an error. If nothing on the page belongs to your listing, you get a free scope-no-match status row with the counts, and the run still finishes successfully.

Comparing two months

Join on reviewId. It is Coupang's own id and it does not move. Nicknames are masked and repeat, dates repeat, and the helpful ordering is re-ranked by Coupang between runs — matching on any of those will show you differences that are not there.

Monitor mode (weekly change alerts)

A product page is never finished: the review that decides your week is the 1★ one posted last night. Turn on Monitor mode and the Actor compares this run with your previous run and returns only what moved:

changeTypeMeaning
newA review that was not there the last time you ran this
changedSame reviewer, date and option — but the star rating or the text was edited; changeDetail shows what it was before
removedIt was in the list last time and is not now (deleted, or pulled from display)
unchangedIdentical to last time — withheld by default, set includeUnchanged to receive it

The verdict row is always delivered, and in monitor mode it carries previousAvgRating and ratingDelta, so the headline ends with … · +0.25 vs the previous run — the rating movement you actually schedule this for. Every run also returns one free change-report row, e.g. 12 new reviews, 1 gone, 3 changed since 2026-08-19.

Put it on a weekly schedule (3 steps)

  1. Run the Actor once with Monitor mode on and sortBy: "recent" — the first run saves a baseline and returns everything it collected.
  2. On the run's page click Actions ▸ Schedule Actor, and pick Every week.
  3. Add an integration on the schedule (Slack, email, webhook) so a new 1★ review reaches you without opening Apify.

Runs are matched by monitor key. Leave monitorKey empty and it is derived from your input, so one schedule keeps one history automatically; set it (e.g. our-product-weekly) to keep several independent watches. State is kept in a named key-value store holding only review identifiers and a 3★ Kim**-style label — never review text.

Two deliberate safeguards: a product that could not be collected this run is left untouched (its reviews are never reported as deleted because of a block), and removed is only reported when the whole review list fitted inside maxReviewsPerProduct — otherwise a review falling out of the collection window would look like a deletion.

Use cases

  • Competitor teardown — feed 10 competing products, read 10 headline verdicts: their complaint keywords are your product page and roadmap
  • Sourcing QA — the per-option rating gap flags the defective variant before you buy inventory
  • Weekly review monitoring — schedule with sortBy: "recent" to catch new complaints as they appear
  • Korean consumer language mining — real phrasing Korean buyers use to complain and to praise, structured

Pricing

Pay per event: a small per-run start fee, then per delivered row — review and summary rows are billed at their own rates (see the Pricing tab). Status/notice rows are free.

Rows scale with what you ask for: raise maxReviewsPerProduct and you pay for the extra reviews, nothing else.

In Monitor mode the same review price applies to each delivered change row, removed rows included: a deleted 1★ review is exactly the answer you scheduled the run for. A week with no new reviews delivers only the verdict row per product, so a quiet week costs the run-start fee plus one summary row per product. The change-report row is a notice and is never charged.

Fair collection

  • Only publicly accessible pages — no login, no CAPTCHA solving, no private data
  • Small, query-scoped collection with polite pacing — this Actor answers per-product questions, it is not a bulk database copier (per-run caps: 20 products, 500 reviews each)
  • Products that cannot be collected on a run are reported as status rows and not charged
  • Personal data: rows contain only what Coupang publicly displays to any visitor (public nickname, public review text). Use downstream in compliance with applicable law (e.g. PIPA, GDPR); you are the controller of what you do with the data, including compliance with Coupang's terms as they apply to you.
  • Optional cookies input: if you paste a session cookie, use only your own Coupang account. It is never logged or stored, and is used only to make this run's requests as your own session.

Limitations

  • Reviews are served by Coupang per product page; a product with reviews disabled or zero reviews returns a status row (not charged)
  • Coupang's edge accepts very little non-Korean traffic; this Actor routes through Korean residential proxies automatically — a run can still occasionally be turned away, in which case the affected product is reported as a status row (not charged) and usually passes on retry
  • The complaint-keyword miner reads Korean text frequency; it does not translate or interpret
  • Product Q&A and seller responses are not collected in this version
  • Invalid input ends the run as SUCCEEDED with a notice row; the run start fee (actor-start) is still charged once, as for every run

Works well with

  • naver-blog-scraper — See what Korean bloggers say about the same product — reviews plus search demand.
  • lighthouse-website-audit — Audit your own product page for speed and SEO once you know what buyers complain about.

Every run of this Actor also returns these suggestions in the nextSteps field of its summary row.

Leave a review

A short review on the Reviews tab, good or bad, helps other people find this Actor and tells us what to build next. Found a bug or need a feature? Open an issue on the Issues tab and we'll look into it.