# Coupang Scraper — Products, Prices & Rocket Delivery (`crawloop/coupang-scraper`) Actor

Coupang scraper for Korean product search by keyword or search URL. Returns KRW price, rating, review count, Rocket and tomorrow-delivery badges, and the product URL. Export JSON for pricing monitors, Python, Node.js, and MCP.

- **URL**: https://apify.com/crawloop/coupang-scraper.md
- **Developed by:** [Andrej Kiva](https://apify.com/crawloop) (community)
- **Categories:** E-commerce, AI
- **Stats:** 2 total users, 1 monthly users, 33.3% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.99 / 1,000 products

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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 — Products, Prices & Rocket Delivery

> **Disclaimer:** Unofficial tool — not affiliated with, sponsored by, or endorsed by Coupang. Data is read from publicly accessible search pages only. No login. You are responsible for complying with applicable law and the site’s terms. No warranty on accuracy or availability. Provided for informational and research use.

**Coupang scraper** for Korean product search. One row per search result with **KRW price**, **rating**, **review count**, **Rocket** and **tomorrow-delivery** badges, rank, and the product URL. Built for pricing monitors, assortment checks, and catalog research. Export JSON via the Apify API, **Python** / **Node.js** clients, or **MCP**.

**Best for:** sellers and analysts who need a Coupang keyword snapshot — price, stars, and Rocket — without a seller Wing account.

> **Crawloop Marketplace Suite** — Korean product cards here, Korean web SERP on Naver Search.

| **Coupang Scraper** ◄── *you are here* | [Naver Search Scraper](https://apify.com/crawloop/naver-search-scraper) | [Amazon Search Scraper](https://apify.com/crawloop/amazon-search-scraper) |
| :---: | :---: | :---: |
| Coupang keyword cards, KRW price, Rocket | Naver 통합검색 blocks, Powerlink, PC/mobile | Amazon keyword SERP, ASIN, badges |

Also see: [AliExpress Search Scraper](https://apify.com/crawloop/aliexpress-search-scraper) · [eBay Sold Listings Scraper](https://apify.com/crawloop/ebay-sold-listings-scraper)

***

### When to use this Actor

- Snapshot **Coupang search** for a Korean or English keyword (price, rating, reviews, Rocket)
- Track **rank** of a product on a search page
- Filter to **Rocket delivery** or a **KRW price band**
- Feed rows into Sheets, a warehouse, or an AI / MCP workflow
- Schedule a keyword and diff prices between runs

### When not to use this Actor

- **Review text, photos, or Q\&A** — this Actor saves the search card, not the review thread
- **Seller Wing / Open API catalog** — that API is your own vendor catalog, not public search
- **Coupang Eats** — restaurant delivery, not this retail search
- **Korean web rankings** — use [Naver Search Scraper](https://apify.com/crawloop/naver-search-scraper)
- **US Amazon keyword SERP** — use [Amazon Search Scraper](https://apify.com/crawloop/amazon-search-scraper)

***

### Key features

- Keyword or search URL input, up to 5 targets per run
- KRW offer price, currency, stock flag, star rating, review count
- Rocket and tomorrow-delivery flags, discount percent when the card shows one
- Product, item, and vendor-item ids taken from the product URL
- Apify unblocker proxy by default (datacenter and residential exits are denied)
- JSON dataset for Python, Node.js, and MCP

***

### Input

| Field | Required | Default | What it does |
| :--- | :--- | :--- | :--- |
| `query` | No | `아이폰` | One search keyword |
| `searchTerms` | No | empty | Extra keywords (same filters) |
| `startUrls` | No | empty | Coupang search URLs |
| `maxItems` | No | `36` | Cap on rows saved for the whole run |
| `rocketOnly` | No | `false` | Rocket-only filter on keywords |
| `minPrice` / `maxPrice` | No | empty | KRW band on keywords |
| `proxyConfiguration` | No | Unblocker, US | Apify proxy. Keep the unblocker group |

```json
{
  "query": "아이폰",
  "maxItems": 36,
  "rocketOnly": false,
    "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["UNBLOCKER"],
    "apifyProxyCountry": "US"
  }
}
```

A search URL belongs in `startUrls`:

```json
{
  "startUrls": [
    { "url": "https://www.coupang.com/np/search?component=&q=iphone&channel=user&page=1" }
  ],
  "maxItems": 20
}
```

***

### Output

| Field | Meaning |
| :--- | :--- |
| `query` | Keyword for this row |
| `page` / `rank` | Search page and 1-based position |
| `title` | Product title |
| `price` / `currency` | Offer price, usually KRW |
| `rating` / `reviewCount` | Stars and review count |
| `isRocket` / `isTomorrowDelivery` | Delivery badges on the card |
| `discountPercent` | Percent off when the card shows it |
| `productId` / `itemId` / `vendorItemId` | Ids from the product URL |
| `url` / `imageUrl` | Product page and image |
| `availability` | `InStock` or `OutOfStock` when stated |
| `scrapedAt` | UTC time the row was saved |

```json
{
  "source": "coupang",
  "query": "iphone",
  "page": 1,
  "rank": 1,
  "title": "Apple iPhone 17 Pro",
  "price": 1718400,
  "currency": "KRW",
  "rating": 5,
  "reviewCount": 10969,
  "isRocket": true,
  "isTomorrowDelivery": true,
  "productId": "9024167576",
  "itemId": "26462330287",
  "vendorItemId": "93437609640",
  "url": "https://www.coupang.com/vp/products/9024167576?itemId=26462330287&vendorItemId=93437609640",
  "availability": "InStock"
}
```

***

### Use cases

| Use case | What you get | Why it helps |
| :--- | :--- | :--- |
| **Price monitor** | KRW price, rank, Rocket | See who is cheapest on a keyword |
| **Assortment check** | Titles and ids for a query | Confirm a brand is listed |
| **Rocket coverage** | `isRocket` on each row | Separate Rocket from marketplace sellers |
| **Rating screen** | Stars and review count | Drop thin listings before a buy |
| **Cross-market compare** | Coupang price, then another marketplace | Same keyword, different country |

***

### Integration examples

#### Node.js

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('crawloop/coupang-scraper').call({
  query: '아이폰',
  maxItems: 20,
  proxyConfiguration: { useApifyProxy: true, apifyProxyGroups: ['UNBLOCKER'], apifyProxyCountry: 'US' },
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.slice(0, 10));
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient(token)
run = client.actor("crawloop/coupang-scraper").call(
    run_input={
        "query": "아이폰",
        "maxItems": 20,
        "proxyConfiguration": {
            "useApifyProxy": True,
            "apifyProxyGroups": ["UNBLOCKER"],
            "apifyProxyCountry": "US",
        },
    }
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item.get("rank"), item.get("price"), item.get("title"))
```

#### cURL

```bash
curl "https://api.apify.com/v2/acts/crawloop~coupang-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"query":"아이폰","maxItems":20,"proxyConfiguration":{"useApifyProxy":true,"apifyProxyGroups":["UNBLOCKER"],"apifyProxyCountry":"US"}}'
```

### MCP and AI assistants

Use this Actor from AI tools via [Apify MCP](https://docs.apify.com/platform/integrations/mcp). Connect your Apify account, then call `crawloop/coupang-scraper`.

Example prompts:

- "Run Coupang Scraper for 아이폰 and return rank, title, price, isRocket, and url as JSON"
- "Scrape Coupang for wireless earbuds, Rocket only, and list the five lowest KRW prices"
- "Chain Coupang Scraper then Naver Search Scraper for the same Korean keyword and summarize price vs web rank"

### Suite next step

After a Coupang price snapshot, run [Naver Search Scraper](https://apify.com/crawloop/naver-search-scraper) for the same keyword on Korean 통합검색 (Powerlink, shopping, blog). For the same product on Amazon, use [Amazon Search Scraper](https://apify.com/crawloop/amazon-search-scraper).

***

### FAQ

**What input do I need?**\
A keyword in `query` (or `searchTerms`), or Coupang search URLs in `startUrls`. Other fields are optional.

**Is this a Coupang API alternative?**\
Yes, for public search cards. It is not the seller Open API and not the affiliate Partners API. You get the price, rating, and Rocket badge shown on search.

**Can I scrape Coupang with Python or Node.js?**\
Yes. Use `apify-client` as in the examples above, or call the Actor from an AI assistant via Apify MCP.

**Why does a run with no proxy fail?**\
Search pages return Access Denied from datacenter and residential exits. Leave the default unblocker proxy on.

**What if the dataset is empty?**\
The keyword or price band matched nothing, or the session was blocked. A blocked run fails instead of saving an empty success. Widen the price band or retry.

**Does it open product pages?**\
No. Each row is a search card. Review text and option matrices are not in this Actor.

***

### Troubleshooting

| Issue | Likely cause | What to try |
| :--- | :--- | :--- |
| Run failed, 0 rows | Session blocked | Keep the unblocker proxy, then retry |
| Prices missing | Card had no offer in the page data | Retry the keyword; check the product URL still resolves |
| Fewer rows than `maxItems` | The query has a short result set | Expected. Raise pages only by raising `maxItems` (up to 150) |
| Rocket flag always false | Badge was not on the card | The product is not marked Rocket on that search page |

# Actor input Schema

## `query` (type: `string`):

One Coupang search keyword in Korean or English.

## `searchTerms` (type: `array`):

Extra keywords. Each keyword is paged until Max items. Up to 5 keywords per run.

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

Coupang search URLs. Page number is read from the URL, then the next pages are loaded until Max items.

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

Maximum product rows saved for the whole run. One search page is about 30–60 products.

## `rocketOnly` (type: `boolean`):

Keep Rocket delivery results. Applies to keywords. Search URLs keep the filters already in the URL.

## `minPrice` (type: `integer`):

Optional minimum price in won. Applies to keywords.

## `maxPrice` (type: `integer`):

Optional maximum price in won. Applies to keywords.

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

Apify proxy. Datacenter and residential exits are denied. Leave the unblocker group on.

## Actor input object example

```json
{
  "query": "아이폰",
  "maxItems": 8,
  "rocketOnly": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "UNBLOCKER"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Default dataset items.

# 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 = {
    "query": "아이폰",
    "maxItems": 8
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawloop/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 = {
    "query": "아이폰",
    "maxItems": 8,
}

# Run the Actor and wait for it to finish
run = client.actor("crawloop/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 '{
  "query": "아이폰",
  "maxItems": 8
}' |
apify call crawloop/coupang-scraper --silent --output-dataset

```

## MCP server setup

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