# Coupang Review Scraper (`parsebird/coupang-review-scraper`) Actor

Scrape customer reviews from Coupang.com Korea product pages by URL or product ID. Get review text, rating, title, helpful counts, reviewer photos and videos, purchase details, and Coupang's rating summary. Filter by star rating, keyword, or photos/videos only, and sort by newest or most helpful.

- **URL**: https://apify.com/parsebird/coupang-review-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.39 / 1,000 reviews

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### Coupang Review Scraper (쿠팡) - Ratings, Text & Photos

Scrape customer reviews from [Coupang.com](https://www.coupang.com/) Korea product pages by URL or bare product ID. Get review text, star rating, title, helpful counts, reviewer photos and videos, and Coupang's own rating breakdown — filterable by star rating, keyword, or photos/videos only.

<table><tr>
<td style="border-left:4px solid #AE1D2A;padding:12px 16px;font-weight:600">
Paste a Coupang product URL or bare product ID and get its reviews back: text, rating, helpful count, reviewer photos/videos, and a rating-distribution summary — one row per review.
</td>
</tr></table>

<br>

<table>
<tr>
<td colspan="2" style="padding:10px 14px;background:#AE1D2A;border:none;border-radius:4px 4px 0 0">
<span style="color:#FFFFFF;font-size:14px;font-weight:700;letter-spacing:0.5px">ParseBird Coupang Suite</span>
<span style="color:#FBD8DC;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;Korea's largest marketplace</span>
</td>
</tr>
<tr>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:50%;background:#FFFFFF">
<a href="https://apify.com/parsebird/coupang-detail-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Coupang Product Detail Scraper</a><br>
<span style="color:#78716C;font-size:11px">Full pages by URL/ID: option matrix, specs</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-top:none;vertical-align:top;width:50%;background:#FFFFFF">
<a href="https://apify.com/parsebird/coupang-search-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Coupang Search Scraper</a><br>
<span style="color:#78716C;font-size:11px">Keyword search + optional detail</span>
</td>
</tr>
<tr>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-radius:0 0 0 4px;border-right:none;border-top:none;vertical-align:top;width:50%;background:#FFFFFF">
<a href="https://apify.com/parsebird/coupang-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Coupang Korea Product Scraper</a><br>
<span style="color:#78716C;font-size:11px">Search + category + product URLs, monitoring</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-radius:0 0 4px 0;border-top:none;vertical-align:top;width:50%;background:#FBEEEF">
<a href="https://apify.com/parsebird/coupang-review-scraper" style="color:#AE1D2A;text-decoration:none;font-weight:700;font-size:13px">Coupang Review Scraper</a><br>
<span style="color:#AE1D2A;font-size:11px;font-weight:600">You are here</span>
</td>
</tr>
</table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
parsebird/coupang-review-scraper on Apify. Scrapes customer reviews from Coupang.com (Korea) product pages by URL or ID. Call: ApifyClient("TOKEN").actor("parsebird/coupang-review-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items. Inputs: productUrls (array, required — Coupang product URLs like https://www.coupang.com/vp/products/6135671310, or bare numeric product IDs), maxReviewsPerProduct (int, optional, default 5 — capped at 3,000/product), sort ("newest"|"best", default "newest"), starRatings (array of "1".."5", optional — ignored when keyword is set), keyword (string, optional — text match on review title/content, takes precedence over starRatings), photosVideosOnly (bool, default false). Output: one summary row per product (productId, url, reviewTotalCount, ratingSummary{ratingCount,ratingAverage,ratingSummaries[{rating,count,percentage}]}, attachedImageSummary{count}, attachedVideoSummary{count}) followed by one row per review (reviewId, rating, title, content, reviewedAt, createdAt, helpfulCount/helpfulTrueCount/helpfulFalseCount, commentCount, itemName, itemImagePath, vendorName, reviewerName, reviewerEmail (masked by Coupang), displayWriter, displayName, isMyReview, isAdventurerReview, reviewerRank, reviewerBadges, vine, incentive, surveyAnswers, attachments, videoAttachments, hasPhoto, hasVideo, reviewerDisplayImage, url). Requires Apify Proxy "Unblocker" group (default). Full spec: GET https://api.apify.com/v2/acts/parsebird~coupang-review-scraper (Bearer TOKEN). Token: https://console.apify.com/account/integrations
```

### What is Coupang Review Scraper?

**Coupang Review Scraper** turns a list of [Coupang.com](https://www.coupang.com/) product URLs or IDs into structured customer review data. Coupang has no public review API, so this Actor is the practical **Coupang review API alternative** for pulling review text, ratings, and reviewer photos/videos into JSON, CSV, or Excel.

Give it **product URLs** (`https://www.coupang.com/vp/products/6135671310`) or **bare product IDs** (`6135671310`) and get every review back: star rating, title and text, helpful vote counts, reviewer photos/videos, and Coupang's own rating-distribution summary. No coding required, or drive it through the [Apify API](https://docs.apify.com/api/v2) for ongoing review monitoring.

### What can Coupang Review Scraper do?

- 🔗 **URL or ID input** — mix full product URLs and bare numeric IDs in one list
- ⭐ **Full rating breakdown** — Coupang's own 1–5 star distribution (count and percentage per star) as a summary row
- 📝 **Review text & metadata** — title, content, star rating, helpful counts, purchased item name/image, and the seller name
- 📸 **Photo/video filter** — pull only reviews that include reviewer photos or videos, or just tag them via `hasPhoto`/`hasVideo`
- 🔍 **Keyword & star filters** — narrow to reviews mentioning a term, or to specific star ratings
- 🔃 **Sort by newest or best** — order by review date or by Coupang's own relevance ranking
- 🔄 **Scheduling & integrations** — run on a schedule and push to Google Sheets, Zapier, Make, or webhooks

### What data can you extract from Coupang reviews?

**Summary row** (one per product, not charged)

| Field | Description |
|-------|-------------|
| `productId` / `url` | Product identifier and canonical URL |
| `reviewTotalCount` | Total number of reviews Coupang reports for the product |
| `ratingSummary` | `{ratingCount, ratingAverage, ratingSummaries: [{rating, count, percentage}]}` — the full 1–5 star breakdown |
| `attachedImageSummary` / `attachedVideoSummary` | `{count}` — how many of the collected reviews included photos / videos |

**Review row** (one per review, charged)

| Field | Description |
|-------|-------------|
| `reviewId` | Coupang's review identifier |
| `rating` | Star rating, 1–5 |
| `title` / `content` | Review title and body text |
| `reviewedAt` / `createdAt` | ISO timestamps |
| `helpfulCount` / `helpfulTrueCount` / `helpfulFalseCount` | Helpful-vote counts |
| `itemName` / `itemImagePath` | The specific item/variant the review was left on |
| `vendorName` | Seller name |
| `reviewerName` / `reviewerEmail` | Masked reviewer identity, as Coupang displays it (e.g. `김*민`, `kjm****@nate.com`) |
| `attachments` / `videoAttachments` | Reviewer-uploaded photo/video URLs |
| `hasPhoto` / `hasVideo` | Convenience booleans derived from the above |
| `surveyAnswers` | Coupang's short post-purchase survey answers (e.g. taste satisfaction, sweetness), when present |
| `reviewerBadges` / `reviewerRank` / `isAdventurerReview` / `vine` / `incentive` | Reviewer badges/program flags Coupang attaches to some reviews |
| `url` | Canonical product URL |

> Fields are passed through as Coupang's own API returns them: `reviewerEmail` and `reviewerName` are already masked by Coupang, not by this Actor, and a field a review doesn't have (e.g. `surveyAnswers`) comes back empty rather than omitted.

### How to scrape Coupang reviews

1. On [Coupang.com](https://www.coupang.com/), open the product you want and copy the URL — or note the numeric product ID from it
2. Open the [Coupang Review Scraper](https://apify.com/parsebird/coupang-review-scraper) on Apify and click **Try for free**
3. Paste your URLs or IDs into **Product URLs or IDs**, one per line
4. Optionally set **Max reviews per product**, **Sort by**, **Star ratings**, **Keyword**, or **Photos/videos only**
5. Click **Start**, then download the data as **JSON, CSV, Excel**, or read it via the **Apify API**

#### Python API example

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("parsebird/coupang-review-scraper").call(run_input={
    "productUrls": ["https://www.coupang.com/vp/products/6135671310"],
    "maxReviewsPerProduct": 100,
    "sort": "newest",
    "photosVideosOnly": False,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    if "reviewTotalCount" in item:
        print(f'{item["productId"]}: {item["reviewTotalCount"]} reviews, avg {item["ratingSummary"]["ratingAverage"]}')
        continue
    print(f'{item["rating"]}★ {item["title"]}: {item["content"][:60]}')
```

#### JavaScript API example

```javascript
import { ApifyClient } from "apify-client";

const client = new ApifyClient({ token: "YOUR_API_TOKEN" });

const run = await client.actor("parsebird/coupang-review-scraper").call({
    productUrls: ["https://www.coupang.com/vp/products/6135671310"],
    starRatings: ["4", "5"],
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((i) => console.log(i.rating, i.title));
```

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `productUrls` | array | **Yes** | — | Coupang product URLs or bare product IDs, up to 1,000, deduped |
| `maxReviewsPerProduct` | integer | No | 5 | Stop after this many reviews per product (hard-capped at 3,000/product) |
| `sort` | string | No | `newest` | `newest` or `best` (most-helpful/relevance) |
| `starRatings` | array | No | all | Only these star ratings (`"1"`–`"5"`); ignored when `keyword` is set |
| `keyword` | string | No | — | Only reviews whose title/content contain this text; takes precedence over `starRatings` |
| `photosVideosOnly` | boolean | No | `false` | Only reviews with reviewer photos or videos |
| `proxy` | object | No | Unblocker | Proxy configuration — the Apify Proxy "Unblocker" group is required |

### Output example

```json
{
  "productId": "9652682545",
  "reviewId": "1001481506",
  "rating": 5,
  "title": "한번쯤 경험해볼만한 정도?",
  "content": "",
  "reviewedAt": "2026-08-07T14:22:51.000Z",
  "helpfulCount": 0,
  "itemName": "포스트 오레오 오즈바 4p, 96g, 1개",
  "vendorName": "판매자: 쿠팡(주)",
  "reviewerName": "김*린",
  "reviewerEmail": "wkd*******@naver.com",
  "attachments": [],
  "videoAttachments": [],
  "hasPhoto": false,
  "hasVideo": false,
  "surveyAnswers": [
    { "question": "맛 만족도", "answer": "맛있어요" },
    { "question": "당도", "answer": "적당해요" }
  ],
  "url": "https://www.coupang.com/vp/products/9652682545"
}
```

Download results in JSON, HTML, CSV, or Excel.

### Use cases

- 📣 **Complaint / defect audits** — filter by low star ratings or a defect keyword to find recurring product issues
- 🔍 **Keyword research** — mine review text for the words real buyers use about a product
- 📸 **Most-helpful & photo mining** — pull the most-helpful or photo/video reviews for merchandising or social proof
- 📊 **Rating trend tracking** — re-run on a schedule and track `ratingSummary` drift over time
- 🗂️ **Bulk multi-product audits** — one run across many product IDs for a full catalog review sweep

### How it works

1. Normalizes each entry in `productUrls` into a product target — a full URL, a bare ID, or a placeholder-ID URL carrying a `vendorItemId`
2. Loads the product page once through the Apify Unblocker to pick up a working session, then immediately reuses that same session to call Coupang's `next-api/review` and `next-api/review/batch` endpoints — retrying with a fresh session whenever a step doesn't come back clean
3. Paginates `next-api/review` (10 reviews/page, Coupang's own fixed page size) up to the requested count or a 3,000-review safety ceiling per product
4. Applies star-rating / keyword / photos-video filters, sorts (`newest` re-orders by review date client-side, since Coupang's own `sortBy` parameter does not affect result order), and truncates to `maxReviewsPerProduct`
5. Emits one summary row per product, then one row per review, charging a `review` event for every review row

### How much does it cost to scrape Coupang reviews?

| Event | Free | Bronze | Silver | Gold |
|-------|------|--------|--------|------|
| `review` (per 1,000) | **$2.99** | $2.79 | $2.59 | $2.39 |

A `review` event is charged once per review row returned. The per-product summary row is never charged. A product whose reviews could not be retrieved at all (`incomplete: ["reviews"]`) is **not** charged — re-run that ID. Your Apify plan's free monthly usage covers the platform compute and proxy.

### FAQ

**What can I paste into Product URLs or IDs?**
A full Coupang product URL (`https://www.coupang.com/vp/products/{id}`, with or without `itemId`/`vendorItemId`), a bare numeric product ID, or a URL whose product ID is a placeholder (e.g. `0`) as long as it carries a `vendorItemId`.

**Why does it need the Unblocker proxy?**
Coupang serves Korean shoppers and its Akamai edge refuses almost all datacenter and non-Korean residential traffic. The Apify Proxy "Unblocker" group is the transport that gets through and is the default.

**Does "Sort by: Newest" call Coupang's own newest sort?**
No — testing showed Coupang's `sortBy` API parameter doesn't change result order, so "Newest" is applied by this Actor after fetching, ordering by each review's actual timestamp. "Best" leaves Coupang's own default (relevance) order as-is.

**Why is there a 3,000-review cap per product?**
It's a safety ceiling so a single very-high-review product can't run away with proxy bandwidth. Set `maxReviewsPerProduct` for anything below that; contact support if you need the cap raised for a specific use case.

**What does the `incomplete` field mean?**
`incomplete: ["reviews"]` means the product's reviews could not be retrieved at all this run — only its ID is returned, and it is not charged; re-run that ID.

**Can I schedule it?**
Yes. Use [Apify scheduling](https://docs.apify.com/platform/schedules) to re-run the same product IDs on any interval and connect the output to Google Sheets, Zapier, Make, or webhooks. Found a bug? Open an issue on the **Issues** tab.

### Is it legal to scrape Coupang?

This Actor extracts publicly available data from Coupang.com. Scraping public data is generally considered legal based on recent court rulings, including the US Ninth Circuit's decision in *hiQ Labs v. LinkedIn*. Users are responsible for ensuring their use of the scraped data complies with applicable laws, Coupang's Terms of Service, and data-protection regulations. For more, read Apify's post on [web scraping legality](https://blog.apify.com/is-web-scraping-legal/).

### Other ParseBird scrapers

| Actor | Target site | Data |
|-------|------------|------|
| [Coupang Review Scraper](https://apify.com/parsebird/coupang-review-scraper) | Coupang.com | Customer reviews by URL/ID |
| [Coupang Product Detail Scraper](https://apify.com/parsebird/coupang-detail-scraper) | Coupang.com | Full product pages: option matrix, prices, specs |
| [Coupang Search Scraper](https://apify.com/parsebird/coupang-search-scraper) | Coupang.com | Keyword search results + optional detail |
| [Coupang Korea Product Scraper](https://apify.com/parsebird/coupang-scraper) | Coupang.com | Search / category / product URLs, monitoring |
| [Naver Map Scraper](https://apify.com/parsebird/naver-map-scraper) | Naver Map | Korean business listings |

Browse all ParseBird actors on the [Apify Store](https://apify.com/parsebird).

# Actor input Schema

## `productUrls` (type: `array`):

Coupang product page URLs (e.g. https://www.coupang.com/vp/products/6135671310) or bare numeric product IDs (e.g. 6135671310). Max 1,000 per run — longer lists are truncated (split into more runs). Duplicates are removed automatically. A URL also works when the product ID in it is a placeholder (e.g. 0) as long as it carries a vendorItemId — the product is resolved from that vendor item ID.

## `maxReviewsPerProduct` (type: `integer`):

Stop after this many reviews per product (hard-capped at 3,000/product).

## `sort` (type: `string`):

Order reviews by newest first or by best (most-helpful) ranking.

## `starRatings` (type: `array`):

Only return reviews with these star ratings. Leave empty for all ratings. Ignored when a keyword is set.

## `keyword` (type: `string`):

Only return reviews whose text mentions this keyword. Works best in Korean. Takes precedence over Star ratings.

## `photosVideosOnly` (type: `boolean`):

Only return reviews that include reviewer photos or videos.

## `proxy` (type: `object`):

Coupang's edge blocks datacenter and non-Korean residential IPs, so the Apify Proxy "Unblocker" group is required and is the default.

## Actor input object example

```json
{
  "productUrls": [
    "https://www.coupang.com/vp/products/6135671310"
  ],
  "maxReviewsPerProduct": 5,
  "sort": "newest",
  "starRatings": [],
  "photosVideosOnly": false,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "UNBLOCKER"
    ]
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "productUrls": [
        "https://www.coupang.com/vp/products/6135671310"
    ],
    "maxReviewsPerProduct": 5,
    "starRatings": [],
    "keyword": "",
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "UNBLOCKER"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/coupang-review-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "productUrls": ["https://www.coupang.com/vp/products/6135671310"],
    "maxReviewsPerProduct": 5,
    "starRatings": [],
    "keyword": "",
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["UNBLOCKER"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/coupang-review-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "productUrls": [
    "https://www.coupang.com/vp/products/6135671310"
  ],
  "maxReviewsPerProduct": 5,
  "starRatings": [],
  "keyword": "",
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "UNBLOCKER"
    ]
  }
}' |
apify call parsebird/coupang-review-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parsebird/coupang-review-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/PW9aFIKq8gsV9JrVs/builds/NE0Jn9y8hiigCGRFl/openapi.json
