# Coupang Product Detail Scraper (`koreanscraper/coupang-product-detail-scraper-actor`) Actor

Scrape product details (name, price, images, description, seller) from Coupang product pages.

- **URL**: https://apify.com/koreanscraper/coupang-product-detail-scraper-actor.md
- **Developed by:** [Scraper KR](https://apify.com/koreanscraper) (community)
- **Categories:** E-commerce, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## 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 Product Detail Scraper

**Coupang Product Detail Scraper** extracts structured product data from [Coupang](https://www.coupang.com) product detail pages. Give it a list of product URLs and it returns each product's **name, price, image URLs, description URL, and seller name** as clean JSON you can download or pipe into your own systems via the Apify API.

Built on the [Apify platform](https://apify.com/actors), it comes with API access, scheduling, integrations, proxy rotation, and run monitoring out of the box.

### Why use Coupang Product Detail Scraper?

- **Price monitoring** — track competitor and reseller pricing over time.
- **Catalog enrichment** — pull product names, images, and sellers into your own database.
- **Market & brand research** — analyze how products are listed and who sells them.
- **MAP / brand-protection** — detect unauthorized sellers and pricing violations.

### How to use Coupang Product Detail Scraper

1. Open the Actor in the Apify Console.
2. In the **Input** tab, paste the Coupang product URLs you want to scrape (one per line).
3. Leave **Proxy** on Apify Proxy (recommended — see below).
4. Click **Start**.
5. When the run finishes, open the **Output** tab and download the data as JSON, CSV, or Excel.

### Input

| Field | Type | Description |
|-------|------|-------------|
| `productUrls` | array | **(required)** Coupang product detail page URLs, e.g. `https://www.coupang.com/vp/products/123456789`. |
| `proxyConfiguration` | object | Proxy settings. Apify Proxy (ideally residential) is strongly recommended — Coupang blocks unproxied bot traffic. |
| `maxConcurrency` | integer | Max pages scraped in parallel (default `3`). Keep it low to avoid blocking. |
| `debugHtml` | boolean | Save each page's raw HTML to the key-value store under `DEBUG_HTML_<productId>` (default `false`). Use it to diagnose empty fields. |

Example input:

```json
{
    "productUrls": [
        { "url": "https://www.coupang.com/vp/products/123456789" },
        { "url": "https://www.coupang.com/vp/products/987654321" }
    ],
    "proxyConfiguration": { "useApifyProxy": true },
    "maxConcurrency": 3
}
```

### Output

Each scraped product is stored as one dataset item. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

```json
{
    "listing_name": "칠성사이다 페트, 2L, 6개",
    "listing_url": "https://www.coupang.com/vp/products/9395261751?itemId=15291569422&vendorItemId=82511982388",
    "request_url": "https://www.coupang.com/vp/products/9395261751?itemId=15291569422&vendorItemId=82511982388&q=...",
    "platform_listing_id": "9395261751_15291569422_82511982388",
    "status": "scraped",
    "price": 16720,
    "wow_price": 14210,
    "origin_price": 16720,
    "sale_rate": 15,
    "currency": "KRW",
    "image_urls": [
        "https://thumbnail.coupangcdn.com/thumbnails/remote/492x492ex/image/retail/images/3837926387254376-....jpg"
    ],
    "description_image_urls": [
        "https://thumbnail.coupangcdn.com/thumbnails/remote/q89/image/retail/images/1546850209605462-....jpg"
    ],
    "features": [
        "맛/향: 오리지널",
        "용기 타입: 플라스틱병",
        "쿠팡상품번호: 9395261751 - 15291569422"
    ],
    "description": "맛/향: 오리지널\n용기 타입: 플라스틱병\n쿠팡상품번호: 9395261751 - 15291569422",
    "seller_name": "쿠팡",
    "rating_value": 4.8,
    "review_count": 24418
}
```

#### Data fields

| Field | Type | Description |
|-------|------|-------------|
| `listing_name` | string | Product title, without the site's `- <category> \| 쿠팡` suffix. |
| `listing_url` | string | Canonical product URL, free of search/tracking parameters. |
| `request_url` | string | The URL that was actually requested, as supplied in the input. |
| `platform_listing_id` | string | `{productId}_{itemId}_{vendorItemId}`. |
| `status` | string | `scraped`, `unavailable` (delisted product) or `blocked` (non-200 response). |
| `price` | number | Regular selling price ("일반판매가") in KRW — comparable across listings regardless of membership. |
| `wow_price` | number | WOW-membership price, when it undercuts `price`; otherwise `null`. |
| `origin_price` | number | The struck-through reference price. Coupang uses it as the regular price, so it equals `price` whenever present. |
| `sale_rate` | number | Discount percentage from `price` to `wow_price` — the rate shown on the page. `0` when there is no membership discount. |
| `currency` | string | ISO currency code — `KRW`. |
| `image_urls` | array | Main product gallery image URLs. |
| `description_image_urls` | array | Image URLs making up the vendor's description below the fold. |
| `features` | array | Spec bullets, e.g. `"맛/향: 오리지널"`. |
| `description` | string | `features` joined with newlines. |
| `seller_name` | string | Name of the seller / vendor. |
| `rating_value` | number | Average customer rating (0–5). |
| `review_count` | number | Number of customer ratings. |

Every field is `null` (or `[]` for arrays) when the page does not carry it. Check `status` to
tell a successful scrape from a delisted product or a blocked request; the Actor also logs a
warning naming the URL whenever `status` is not `scraped`. `request_url` and
`platform_listing_id` are derived from the input URL, so they are populated even then.

### Pricing / cost estimation

This Actor runs on the Apify platform and is billed by the compute resources it uses (plus proxy traffic if you use Apify Proxy). Because it uses a fast HTTP crawler rather than a full browser, scraping a handful of products costs only a small fraction of a compute unit. Residential proxy traffic, if enabled, is billed separately per GB.

### Tips

- **Use residential proxies** for the best success rate — Coupang aggressively blocks datacenter IPs.
- **Keep `maxConcurrency` low** (2–5). Higher concurrency increases the block rate.
- If a field comes back `null`, the page was likely blocked or Coupang changed its markup — see the FAQ.
- **Turn on `debugHtml`** to diagnose empty fields. Each page's raw HTML is saved to the run's key-value store as `DEBUG_HTML_<productId>`, so you can open it and see whether Coupang served the product page or an anti-bot challenge. Leave it off for normal runs — it writes a full copy of every page to storage.

### FAQ, disclaimers, and support

**Is scraping Coupang legal?** This Actor is intended for scraping publicly available data. You are responsible for complying with Coupang's Terms of Service, applicable laws, and data-protection regulations. Do not collect personal data without a lawful basis.

**Why did my run fail?** If not a single URL could be fetched, the run fails rather than
finishing with an empty dataset — almost always a proxy problem (wrong credentials, exhausted
quota) or Coupang blocking the exit IP. When only *some* URLs fail, the run succeeds and logs a
warning naming how many; failed URLs produce no dataset record at all, so compare the item
count against your input.

**Why are some fields empty?** Coupang periodically changes its HTML structure and serves anti-bot challenges. If a field is consistently empty, the CSS selectors in `my_actor/coupang/com/parser.py` may need updating, or you may need a stronger proxy. Turn on `debugHtml` to tell the two cases apart.

**Support** — Found a bug or need a custom field? Open an issue in the Actor's **Issues** tab.

# Actor input Schema

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

List of Coupang product detail page URLs to scrape (e.g. https://www.coupang.com/vp/products/123456789).

## `proxyConfiguration` (type: `object`):

Proxy settings. Coupang has strong anti-bot protection, so using Apify Proxy (ideally residential) is strongly recommended.

## `maxConcurrency` (type: `integer`):

Maximum number of pages scraped in parallel. Keep low to avoid being blocked by Coupang.

## `debugHtml` (type: `boolean`):

Save each page's raw HTML to the key-value store under DEBUG\_HTML\_<productId>. Turn this on when scraped fields come back empty - the dump shows whether Coupang returned a real product page (outdated selectors) or an anti-bot challenge page (stronger proxy needed).

## Actor input object example

```json
{
  "productUrls": [
    {
      "url": "https://www.coupang.com/vp/products/7038410144?itemId=17397678800&vendorItemId=84567136130"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "maxConcurrency": 3,
  "debugHtml": false
}
```

# 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": [
        {
            "url": "https://www.coupang.com/vp/products/7038410144?itemId=17397678800&vendorItemId=84567136130"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("koreanscraper/coupang-product-detail-scraper-actor").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": [{ "url": "https://www.coupang.com/vp/products/7038410144?itemId=17397678800&vendorItemId=84567136130" }],
    "proxyConfiguration": { "useApifyProxy": True },
}

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

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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": [
    {
      "url": "https://www.coupang.com/vp/products/7038410144?itemId=17397678800&vendorItemId=84567136130"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call koreanscraper/coupang-product-detail-scraper-actor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=koreanscraper/coupang-product-detail-scraper-actor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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