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

daehwan kim

daehwan kim

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

1.7 hours

Issues response

11 days ago

Last modified

Share

Coupang Review Scraper (쿠팡 리뷰 분석) — Complaints & Ratings

🇰🇷 한국어 안내

쿠팡 상품 리뷰를 수집하고, 읽으면 바로 판단이 서는 "판정 요약"까지 계산해 드립니다. 상품 URL만 넣으세요.

  • 리뷰 행 — 별점 · 작성일 · 구매 옵션 · 리뷰 제목/본문 · 사진 수 · 도움돼요 수
  • 판정 요약 행 (상품당 1행, 경쟁 스크래퍼에 없는 레이어) — 평균 별점과 별점 분포, 1~2점 리뷰에서 반복되는 불만 키워드 top 5, 옵션별 평점 편차("빨간색만 별점이 낮다"를 잡아냅니다), 재구매 언급 수, 사진 리뷰 비율, 그리고 이 모든 걸 압축한 한 줄 판정(headline).

예시 headline:

코멧 일회용 마스크 — 평점 4.3/5 (수집 120건, 1~2점 8%) · 주요 불만 키워드: 냄새, 고무줄, 얇음 · 옵션 간 평점 차 0.6점("대형 50매" 주의) · 재구매 언급 14건

누구에게 필요한가요

  • 셀러·브랜드: 경쟁 상품 10개의 불만 키워드를 한 번에 — 상세페이지와 개선 포인트가 그대로 나옵니다
  • 소싱·구매 담당: 옵션별 평점 편차로 불량 옵션을 사입 전에 걸러냅니다
  • 마케터·리서처: 카테고리의 실제 소비자 언어(불만·재구매 표현)를 정형 데이터로

모니터 모드 — 매주 "바뀐 것만" 받기

monitorMode를 켜면 지난 실행과 비교해 새 리뷰 · 수정된 리뷰 · 사라진 리뷰만 돌려주고, 판정 요약 행에는 지난 실행 대비 평점 변동(ratingDelta)이 붙습니다. 이 액터를 주 1회 스케줄로 걸어두면 어젯밤 달린 1점 리뷰가 알아서 도착합니다. 첫 실행은 기준점(baseline)을 저장하고 전부 돌려줍니다.

수집 실패(차단·품절 등) 시 해당 상품은 과금되지 않고, 상황을 설명하는 안내 행이 남습니다. 잠시 후 다시 실행하면 대개 통과합니다.

비공식 도구입니다. 쿠팡(Coupang Corp.)과 무관하며, 로그인 없이 누구에게나 공개된 페이지만 읽습니다.


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 Korean + headlineEn in English.

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. "유하미카쿠토 코로로 포도, 6개" — Coupang option strings carry the product name, but this is a display fallback, not the official title) → null (product-id)
headlineOne-line verdict in Korean — read it and you know whether to buy/source/worry
headlineEnThe same verdict in English
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 (재구매/재주문/또 구매 …)
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"도움돼요" votes
imageCountPhotos attached
reviewerPublic display nickname only — exactly what Coupang shows any visitor
surveyCoupang's structured survey answers when present (e.g. "맛 만족도: 만족")
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. ["우리 제품", "경쟁사 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 reads … · 지난 실행 대비 +0.25점 — 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★ 김**-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

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.