# Coupang Product Detail Scraper (쿠팡) - Prices & Specs (`parsebird/coupang-detail-scraper`) Actor

Scrape full Coupang.com Korea product pages by URL or product ID. Get the priced option matrix, live pricing and coupons, delivery, stock steps, category breadcrumb, specifications, certifications, description blocks, and return policy. Paste up to 1,000 URLs or bare product IDs per run.

- **URL**: https://apify.com/parsebird/coupang-detail-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 $3.39 / 1,000 product details

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 Product Detail Scraper (쿠팡) - Prices & Specs

Scrape full [Coupang.com](https://www.coupang.com/) Korea **product pages** by URL or bare product ID. Every row carries the **priced option matrix** — each variant with its own vendor item ID, price, coupon price, stock, and sold-out flag — plus live pricing and coupons, delivery, stock, category breadcrumb, specifications, certifications, and return policy.

<table><tr>
<td style="border-left:4px solid #AE1D2A;padding:12px 16px;font-weight:600">
Paste up to 1,000 Coupang product URLs or bare product IDs and get each product's full page: every option variant priced and in stock, coupons, delivery, category path, and specs — one row per product.
</td>
</tr></table>

<br>

<table>
<tr>
<td colspan="3" 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-radius:0 0 0 4px;border-right:none;border-top:none;vertical-align:top;width:33%;background:#FBEEEF">
<a href="https://apify.com/parsebird/coupang-detail-scraper" style="color:#AE1D2A;text-decoration:none;font-weight:700;font-size:13px">Coupang Product Detail Scraper</a><br>
<span style="color:#AE1D2A;font-size:11px;font-weight:600">You are here</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-top:none;vertical-align:top;width:33%;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>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-radius:0 0 4px 0;border-top:none;vertical-align:top;width:33%;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>
</tr>
</table>

##### Copy to your AI assistant

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

```
parsebird/coupang-detail-scraper on Apify. Scrapes full Coupang.com (Korea) product pages by URL or ID. Call: ApifyClient("TOKEN").actor("parsebird/coupang-detail-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/6359373947, or bare numeric product IDs; max 1000, deduped; a URL with a placeholder product ID still resolves if it carries a vendorItemId), includeStock (bool, default true). Output per product: productId, itemId, vendorItemId, name, price, offerPrice (when a coupon undercuts the list price), ratingAverage, ratingCount, url, incomplete (array naming any section that could not be collected), detail{core (itemName, soldOut, buyableQuantity, otherSellerCount, images, vendor, quantityBase pricing/coupon matrix, couponList), optionRows (priced variant matrix: typeId, name, values[] each with vendorItemId/price/salePrice/couponPrice/inventory/soldOut), breadcrumbs ([{id,name}] category path), options (flat current-selection summary), stock (per quantity-step price/delivery, when includeStock), specs [{title,description}], certifications, detailBlocks, returnPolicy, sellingPoints, ratingSummary{ratingCount,ratingAverage}}. Requires Apify Proxy "Unblocker" group (default). Full spec: GET https://api.apify.com/v2/acts/parsebird~coupang-detail-scraper (Bearer TOKEN). Token: https://console.apify.com/account/integrations
```

### What is Coupang Product Detail Scraper?

**Coupang Product Detail Scraper** turns a list of [Coupang.com](https://www.coupang.com/) product URLs or IDs into full structured product data. Coupang has no public product API, so this Actor is the practical **Coupang API alternative** for pulling variant pricing, stock, and specs into JSON, CSV, or Excel.

Give it **product URLs** (`https://www.coupang.com/vp/products/6359373947`) or **bare product IDs** (`6359373947`) — up to 1,000 per run — and get each product's full page back: the priced option matrix, coupons, delivery, category path, and specs. No coding required, or drive it through the [Apify API](https://docs.apify.com/api/v2) for scheduled price and stock monitoring.

### What can Coupang Product Detail Scraper do?

- 🔗 **URL or ID input** — mix full product URLs and bare numeric IDs in one list; duplicates are removed automatically
- 🧩 **Priced option matrix** — every variant (storage, RAM, colour, size, …) with its own `vendorItemId`, price, coupon price, inventory, and sold-out flag
- 💰 **Live pricing** — sale price, coupon price, original price, discount rate, and an `offerPrice` when a coupon beats the list price
- 📦 **Stock & delivery** — per-quantity-step pricing, shipping fee, and delivery estimate text
- 🏷️ **Category path** — full breadcrumb with Coupang's own category IDs
- 📋 **Specs & certifications** — the product-info table and any regulatory certifications, when Coupang's page includes them
- ✅ **Completeness flags** — every row carries an `incomplete` array naming exactly what could not be collected, so a partial result is never silently returned as complete
- 🔄 **Scheduling & integrations** — run on a schedule and push to Google Sheets, Zapier, Make, or webhooks

### What data can you extract from a Coupang product page?

**Top level**

| Field | Description |
|-------|-------------|
| `productId` / `itemId` / `vendorItemId` | Coupang's product, item, and vendor-item identifiers |
| `name` | Product / item name |
| `price` | Current price in KRW |
| `offerPrice` | Present only when a coupon price undercuts the list price |
| `ratingAverage` / `ratingCount` | Average star rating (0–5) and number of reviews |
| `url` | Canonical product URL |
| `incomplete` | Array naming any section that could not be collected this run; absent when the row is fully complete |

**`detail` object**

| Field | Description |
|-------|-------------|
| `detail.core` | Item name, sold-out / almost-sold-out / buyable quantity, `otherSellerCount`, images, vendor, the pricing & coupon matrix (`quantityBase`), coupon list, country of origin |
| `detail.optionRows` | The priced option matrix — one entry per attribute type (storage, RAM, colour, …), each value carrying its own `vendorItemId`, `price`, `salePrice`, `couponPrice`, `inventory`, and `soldOut` |
| `detail.breadcrumbs` | Category path as `[{id, name}]` |
| `detail.options` | Flat summary of the currently-selected variant |
| `detail.stock` | Price and delivery per quantity step (with `includeStock`) |
| `detail.specs` | Spec rows as `{title, description}` — model name, KC certification, release date, A/S contact, … |
| `detail.certifications` | Certification number, name, description, and lookup URL |
| `detail.detailBlocks` | The product's rich HTML / image description blocks |
| `detail.returnPolicy` | Delivery notice, return notice, and seller info |
| `detail.sellingPoints` | Seller-provided selling points |
| `detail.ratingSummary` | `ratingCount` and `ratingAverage` |

> `detail.core` is passed through close to how Coupang serves it: some delivery strings carry inline `<em>` markup, `salePrice` / `originPrice` can be `null` when there is no strike-through price, and a field a product doesn't declare (certifications, selling points) comes back empty rather than omitted.

### How to scrape a Coupang product page

1. On [Coupang.com](https://www.coupang.com/), open the product (or products) you want and copy the URL — or note the numeric product ID from it
2. Open the [Coupang Product Detail Scraper](https://apify.com/parsebird/coupang-detail-scraper) on Apify and click **Try for free**
3. Paste your URLs or IDs into **Product URLs or IDs**, one per line
4. Leave **Include stock** on for per-quantity-step pricing and delivery
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-detail-scraper").call(run_input={
    "productUrls": [
        "https://www.coupang.com/vp/products/6359373947",
        "8512549241",
    ],
    "includeStock": True,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    if item.get("incomplete") == ["product-detail"]:
        print(f'{item["productId"]}: could not be retrieved — re-run this ID')
        continue
    print(f'{item["price"]} KRW | {item["name"]}')
    for row in item["detail"]["optionRows"]:
        print(f'  {row["name"]}:', [(v["name"], v["price"], v["inventory"]) for v in row["values"]])
```

#### JavaScript API example

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

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

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

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((i) => console.log(`${i.price} — ${i.name}`));
```

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `productUrls` | array | **Yes** | — | Coupang product URLs or bare product IDs, up to 1,000, deduped |
| `includeStock` | boolean | No | `true` | Include per-quantity-step price and delivery |
| `proxy` | object | No | Unblocker | Proxy configuration — the Apify Proxy "Unblocker" group is required |

### Output example

```json
{
  "productId": "8512549241",
  "itemId": "24641516609",
  "vendorItemId": "91652297692",
  "name": "HP 2025 VICTUS 15 게이밍 노트북 …, Mica Silver, 512GB, 16GB, Free DOS",
  "price": 1598960,
  "ratingAverage": 5,
  "ratingCount": 271,
  "url": "https://www.coupang.com/vp/products/8512549241?itemId=24641516609&vendorItemId=91652297692",
  "detail": {
    "core": {
      "itemName": "HP 2025 VICTUS 15 게이밍 노트북 …",
      "soldOut": false,
      "buyableQuantity": 2,
      "otherSellerCount": 11,
      "images": [{ "detailImage": "https://thumbnail.coupangcdn.com/thumbnails/remote/492x492ex/…" }]
    },
    "optionRows": [
      {
        "typeId": "11192",
        "name": "저장용량",
        "values": [
          { "name": "512GB", "vendorItemId": 91652297692, "price": 1598960, "inventory": 2, "soldOut": false },
          { "name": "1TB", "vendorItemId": 93839553217, "price": 1913430, "inventory": 1000, "soldOut": false }
        ]
      }
    ],
    "breadcrumbs": [{ "id": 178255, "name": "가전디지털" }, { "id": 497135, "name": "노트북" }],
    "specs": [{ "title": "품명 및 모델명", "description": "노트북 컴퓨터 / 모델명: 15-fb3001AX" }],
    "ratingSummary": { "ratingCount": 271, "ratingAverage": 5 }
  }
}
```

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

### Use cases

- 💹 **Variant price & stock monitoring** — track every SKU's price, coupon, and inventory across a catalog
- 🧩 **Option-matrix analysis** — see how price scales across storage / RAM / colour combinations
- 🏷️ **Category and spec enrichment** — attach Coupang's own category path and spec table to your product database
- 📉 **Coupon tracking** — `offerPrice` flags when a coupon beats the sticker price
- 🔁 **Bulk re-verification** — re-run the same 1,000 IDs on a schedule to catch sold-out and price changes

### 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. Requests each product's page through the Apify Unblocker, retrying with a fresh session until the page renders with real product data
3. Parses the page's embedded product data into the pricing & coupon matrix, the full option matrix (via Coupang's per-variant pricing map), category breadcrumb, stock, and — when present — specs, certifications, and return policy
4. Emits one row per product, immediately as it finishes, and charges a `product-detail` event for every row that was successfully parsed

### How much does it cost to scrape a Coupang product page?

| Event | Free | Bronze | Silver | Gold |
|-------|------|--------|--------|------|
| `product-detail` (per 1,000) | **$3.99** | $3.79 | $3.59 | $3.39 |

A `product-detail` event is charged once per product whose page was successfully retrieved and parsed. A product that could not be retrieved this run (`incomplete: ["product-detail"]`) 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` — the Actor resolves the real product from the page Coupang serves for that vendor item.

**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.

**What does the `incomplete` field mean?**
`incomplete: ["product-detail"]` means the whole product could not be retrieved this run — only its ID is returned, and it is not charged; re-run that ID. `incomplete: ["optionRows"]` or `["specs"]` means the product itself is complete and charged normally, but that one section wasn't present on Coupang's page this run.

**Does this include customer reviews, other-seller listings, Q\&A, or related products?**
No. Customer reviews, the expanded "other sellers" (buybox) list, product Q\&A, and recommended/related items are all loaded by the live site through separate same-origin browser requests that are not reachable through the proxy tooling available to this Actor — the same limitation documented on the [Coupang Korea Product Scraper](https://apify.com/parsebird/coupang-scraper). `detail.core.otherSellerCount` (a count, not the list) and `detail.ratingSummary` (count and average, not the per-star breakdown) are included.

**How is `price` different from `offerPrice`?**
`price` is the product's current price. `offerPrice` appears only when a coupon price is lower than the list (sale) price — treat it as the best obtainable price when present.

**Can I scrape more than 1,000 products?**
Split the list across multiple runs — `productUrls` is capped at 1,000 per run.

**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 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/6359373947) or bare numeric product IDs (e.g. 6359373947). 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.

## `includeStock` (type: `boolean`):

Also collect the current stock / availability signal for each quantity step.

## `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/6359373947"
  ],
  "includeStock": true,
  "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/6359373947"
    ],
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "UNBLOCKER"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/coupang-detail-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/6359373947"],
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["UNBLOCKER"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/coupang-detail-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/6359373947"
  ],
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "UNBLOCKER"
    ]
  }
}' |
apify call parsebird/coupang-detail-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parsebird/coupang-detail-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/gi3xvrg1Hx9nfSIYL/builds/uKy0GzZomfWQfJOnL/openapi.json
