# Coupang Scraper — Products, Prices, Ratings by Keyword (`memo23/coupang-scraper`) Actor

Structured Coupang (쿠팡) product data for pricing, research or AI agents. Any Korean or English keyword or search URL returns name, KRW price, discount %, rating, review count, Rocket badge, rank, image and URL, about 60 products per search. Korean residential proxies built in, JSON or CSV.

- **URL**: https://apify.com/memo23/coupang-scraper.md
- **Developed by:** [Muhamed Didovic](https://apify.com/memo23) (community)
- **Categories:** E-commerce, AI, Agents
- **Features:** Limited permissions
- **Stats:** 101 total users, 30 monthly users, 97.4% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $2.40 / 1,000 products

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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Coupang Scraper

Scrape **Coupang** (쿠팡, Korea's largest online marketplace) search results at scale: product name, price in KRW, original price and discount, rating, review count, Rocket badge, rank, image and URL, for any keyword. It reads Coupang's own server-rendered search data over HTTP, with no browser, so it is fast and cheap to run.

![How Coupang Scraper works](https://raw.githubusercontent.com/muhamed-didovic/muhamed-didovic.github.io/main/assets/how-it-works-coupang.png)

### What does Coupang Scraper do?

Give it keywords (Korean or English) or Coupang search URLs. For each one it opens the Coupang search results and reads every product on the page. Every product becomes one row in the dataset, ready to download as JSON, CSV, Excel or HTML, or to read through the Apify API.

Coupang shows visitors one page of results per search, about 60 products, and a second page comes back as "no results" even in a browser. So each keyword or search URL returns up to about 60 products. To collect more, add more keywords, or the same keyword with other sort orders (see [Tips and limits](#tips-and-limits)). **Max items** caps the total across all of them.

### Why use this scraper?

- **Every product Coupang shows.** All products on the results page for each keyword or URL, about 60 each.
- **Korean or English keywords.** Search `노트북`, `laptop`, `에어팟` or `airpods`, whatever you would type on coupang.com.
- **Real KRW prices, ratings and reviews.** Taken from Coupang's own structured product data, so they match the site.
- **No browser overhead.** Most runs finish in under a minute.
- **Korean residential proxies built in.** Coupang blocks datacenter and non-Korean traffic. The actor rotates a fresh Korean residential IP per request and falls back to a paid anti-bot bypass when Coupang's bot protection shuts the door. No proxy setup needed.
- **Clean, predictable output.** One row per product, no padding rows, the same fields every time.

### Use cases

- **Price monitoring and repricing.** Track competitor prices on Coupang for your catalog.
- **Market and assortment research.** See what sells, how it is rated and how it ranks for any category keyword.
- **Brand and seller monitoring.** Follow how your products, and knock-offs, show up in Coupang search.
- **Demand signals.** Review counts and ratings are a strong proxy for demand and product maturity.
- **Rocket delivery analysis.** Spot which listings carry Coupang's Rocket (로켓배송) badge and which are sponsored.

### How to use Coupang Scraper

1. Open the actor in the Apify Console and go to the **Input** tab.
2. Add one or more **Search keywords** (for example `노트북`), or paste **Coupang search URLs**.
3. Set **Max items** to the number of products you want in total. It is also your spending cap.
4. Click **Start** and wait for the run to finish.
5. Open the **Output** tab. The **Products** view shows each result with its image, and the **Prices** view is laid out for price tracking. Export as JSON, CSV, Excel or HTML.

To repeat a search on a schedule, save the input as a task and add a schedule in the Console.

### Input

| Field | Type | What it does |
|---|---|---|
| `searchQueries` | array of strings | Keywords to search, Korean or English. Each one returns up to about 60 products. |
| `startUrls` | array of strings | Coupang search URLs (`https://www.coupang.com/np/search?q=…`). Sort and filter parameters in the URL are kept. A product URL is accepted; its id is searched as a keyword. |
| `maxItems` | integer | Hard cap on product rows across all searches. Default 1,000. |
| `proxy` | object | Optional proxy override. Leave it empty to use the built-in Korean residential proxies. |

Search by keyword:

```json
{
    "searchQueries": ["노트북", "airpods"],
    "maxItems": 200
}
```

Search by URL, here the best sellers for 그래놀라 (granola):

```json
{
    "startUrls": ["https://www.coupang.com/np/search?q=%EA%B7%B8%EB%9E%98%EB%86%80%EB%9D%BC&sorter=saleCountDesc"],
    "maxItems": 100
}
```

### Output

One row per **search-result product**. Every row carries the keyword it came from (`sourceQuery`) and its position (`rank`), so rows describe themselves in CSV exports.

```json
{
    "productId": "9425678602",
    "itemId": "28018355098",
    "vendorItemId": "94975619139",
    "title": "Apple 2025 에어팟 프로 3 USB-C 블루투스 이어폰",
    "productUrl": "https://www.coupang.com/vp/products/9425678602?itemId=28018355098&vendorItemId=94975619139",
    "image": "https://thumbnail.coupangcdn.com/thumbnails/remote/320x320ex/image/…",
    "price": 332100,
    "basePrice": 359000,
    "discountRate": 7,
    "currency": "KRW",
    "rating": 5,
    "reviewCount": 15278,
    "availability": "InStock",
    "soldOut": false,
    "isRocket": true,
    "isAd": false,
    "rank": 1,
    "sourceQuery": "airpods",
    "scrapedAt": "2026-07-22T08:25:00.000Z"
}
```

#### Output fields

| Field | Meaning |
|---|---|
| `productId`, `itemId`, `vendorItemId` | Coupang's three product identifiers, from the product URL |
| `title` | Product name as shown on Coupang (usually Korean) |
| `price`, `currency` | Current selling price, whole KRW |
| `basePrice`, `discountRate` | Original price (KRW) and percent off; `null` when the item is not discounted |
| `rating`, `reviewCount` | Average star rating and number of reviews |
| `availability`, `soldOut` | Stock status (`InStock` and so on) and an explicit sold-out flag |
| `isRocket` | Carries the Rocket delivery (로켓배송) badge |
| `isAd` | Sponsored placement in the results |
| `rank` | 1-based position in the search results |
| `sourceQuery` | The keyword the product was found with |
| `image`, `productUrl` | Thumbnail URL and product page URL |
| `scrapedAt` | When the row was scraped (ISO 8601, UTC) |

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

The actor uses pay-per-event pricing. You pay per product row, plus a small fee when a run starts, and Apify platform usage is included.

| Apify plan | Price per 1,000 products |
|---|---|
| Free, Bronze | $3.00 |
| Silver | $2.70 |
| Gold, Platinum, Diamond | $2.40 |

The run start costs $0.005. For example, 5 keywords at about 60 products each (300 products) cost about $0.91 on the Free plan. Set **Max items** to cap what a run can spend. Free-plan runs return up to 100 products per run.

### Run it from code

Use the Apify API or one of the Apify clients. Replace `<YOUR_API_TOKEN>` with your token from **Settings → API & Integrations** in the Apify Console.

Node.js (`npm install apify-client`):

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

const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('memo23/coupang-scraper').call({
    searchQueries: ['노트북'],
    maxItems: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

Python (`pip install apify-client`):

```python
from apify_client import ApifyClient

client = ApifyClient('<YOUR_API_TOKEN>')
run = client.actor('memo23/coupang-scraper').call(run_input={
    'searchQueries': ['노트북'],
    'maxItems': 100,
})
for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item['title'], item['price'])
```

One HTTP call that runs the actor and returns the rows:

```bash
curl -X POST "https://api.apify.com/v2/acts/memo23~coupang-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"searchQueries": ["노트북"], "maxItems": 100}'
```

### How it works

1. Every keyword becomes a Coupang search URL (`/np/search?q=<query>&channel=user`).
2. The request goes out through a fresh Korean residential IP and fetches the server-rendered search page.
3. The actor parses Coupang's embedded product list (schema.org JSON-LD) and merges in the Rocket, ad and rank details from the page markup.
4. Each product is pushed as one row. Coupang serves one page of results per search, so a search ends after its first page; the actor asks for page 2 once in case Coupang starts serving more.
5. Coupang's bot protection sometimes blocks every request for a few minutes. When that happens the actor retries on new Korean IPs, races a paid anti-bot bypass alongside them, and keeps trying for up to a few minutes before it reports the block.

### Tips and limits

- **About 60 products per search.** Coupang shows one page of results per search to visitors. For more products, use more keywords, or the same keyword with other sort orders: add `&sorter=` to a search URL with `scoreDesc` (Coupang ranking, the default), `saleCountDesc` (best sellers), `salePriceAsc` (cheapest first), `salePriceDesc` (most expensive first) or `latestAsc` (newest). Rows are deduplicated by product id within a run.
- **Product detail pages are not scraped.** Coupang blocks `/vp/products/…` pages for non-browser clients. Everything in the output comes from the search results.
- **Korean keywords return the most complete results.** English works too.
- **A run with no rows fails on purpose,** with a status message that says why: a blocked window, or Coupang's own "no results" page. A search that Coupang answers with "no results" is reported as a finished run, not a failure.
- **Blocked windows pass.** If a run reports a block, running it again a few minutes later usually works.

### FAQ

**Does this scrape individual product detail pages?**
No. Coupang hard-blocks its product detail pages (`/vp/products/…`) for non-browser clients. The search results already carry name, price, rating, review count, image and URL for every product. If you paste a product URL, its id is searched as a keyword instead.

**Are prices really in KRW?**
Yes. The actor requests Coupang from a Korean IP, so prices and availability are what a shopper in Korea sees, in Korean won.

**Why do I need proxies? Can I turn them off?**
Coupang blocks datacenter and non-Korean traffic. The actor ships with Korean residential proxies and rotates a fresh IP per request. You can supply your own proxy through the `proxy` input, but it has to be Korean residential to work.

**How many products per search?**
About 60. Coupang shows visitors one page of results per search, and the actor returns every product on it. Use more keywords or other sort orders to collect more.

**Can I search in English?**
Yes. Coupang search handles English and Korean terms. Korean keywords generally return more complete results.

### Integrations

- **Schedules and monitoring.** Run the actor on a schedule from the Apify Console and send new rows to a webhook, a database or Google Sheets.
- **Make, Zapier, n8n and the Apify API.** Start runs and pick up results from your own workflows.

### Support

- Found a bug or need a field added? Open an issue on the actor's **Issues** tab in the Apify Console. Issues are answered within a day.
- Custom requirements (specific categories, bigger volumes, private deployment)? Send a message through the Apify contact form.
- Need another marketplace scraped to the same standard? Get in touch through the profile below.

### Explore more scrapers

See other scrapers on [memo23's Apify profile](https://apify.com/memo23), covering e-commerce, social media, real estate, job boards and more.

### For AI agents and LLM apps

The output is deterministic JSON, one self-describing row per product, and the input schema is small. Call the actor from LLM tool use or MCP setups to give an agent live Korean-market prices and demand signals. "What do AirPods cost on Coupang and how well are they rated?" maps to one run with `searchQueries: ["airpods"]`. Use `maxItems` to bound the cost per call.

### Disclaimer

This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Coupang Corp. It retrieves only publicly available data that Coupang serves to any visitor without signing in. "Coupang" and "쿠팡" are trademarks of Coupang Corp. You are responsible for how you use the data, including compliance with applicable laws and Coupang's terms of service.

### SEO Keywords

coupang scraper, coupang api, scrape coupang, coupang product scraper, coupang price scraper, korean ecommerce scraper, coupang search scraper, 쿠팡 스크래퍼, coupang data export, coupang price monitoring, coupang product data, korean marketplace scraper, coupang listings scraper, coupang json, coupang csv, coupang competitor pricing, coupang rating scraper, coupang review count, coupang no login

# Actor input Schema

## `searchQueries` (type: `array`):

Keywords to search on Coupang (Korean or English), e.g. `노트북`, `laptop`, `airpods`. Coupang shows one page of results per search, so each keyword returns up to about 60 products.

## `startUrls` (type: `array`):

Direct Coupang search URLs (e.g. `https://www.coupang.com/np/search?q=laptop`). Sorting and filters in the URL are kept, so `&sorter=saleCountDesc` returns best sellers first. A pasted product URL is accepted but, because product pages are blocked, its id is searched as a keyword instead.

## `maxItems` (type: `integer`):

Hard cap on the number of product rows produced across all searches (billing cap). Each keyword or search URL returns up to about 60 products.

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

Reserved for future parallelism. Coupang is fetched sequentially per search to stay under Akamai's radar.

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

Custom proxy override. By default the actor routes through built-in Korean residential proxies with per-request IP rotation — you normally don't need to change this. Datacenter proxies will be blocked.

## Actor input object example

```json
{
  "searchQueries": [
    "노트북"
  ],
  "startUrls": [],
  "maxItems": 1000,
  "maxConcurrency": 8
}
```

# Actor output Schema

## `products` (type: `string`):

All products in the products view.

## `prices` (type: `string`):

The same products in the prices view: current and original price, discount and stock.

# 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 = {
    "searchQueries": [
        "노트북"
    ],
    "startUrls": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("memo23/coupang-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 = {
    "searchQueries": ["노트북"],
    "startUrls": [],
}

# Run the Actor and wait for it to finish
run = client.actor("memo23/coupang-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 '{
  "searchQueries": [
    "노트북"
  ],
  "startUrls": []
}' |
apify call memo23/coupang-scraper --silent --output-dataset

```

## MCP server setup

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