# Coupang KR $1.5💰 URL Keyword and Review Scraper (`abotapi/coupang-scraper`) Actor

Pull product listings from coupang.com via query, category, or URL. Returns 20+ structured fields including title, brand, price, discount, currency, rating, review count, images, product URL, delivery flags, availability, full description, and image gallery.

- **URL**: https://apify.com/abotapi/coupang-scraper.md
- **Developed by:** [AbotAPI](https://apify.com/abotapi) (community)
- **Categories:** E-commerce, Developer tools, Automation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 results

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 Korea Product Scraper

Pull product listings from Coupang Korea by query, by category, or by direct URL. Returns 20+ structured fields per item: title, brand, price (current and original), discount %, currency, rating, review count, image URL, product URL, Rocket Delivery flag, Tomorrow Delivery flag, availability, full description, and image gallery.

### Why this scraper

- 20+ fields per item, including price (current and original), discount %, average rating, review count, Rocket / Tomorrow / Fresh / Global delivery badges, and full image gallery.
- Two run modes: search (query + filters) and url (multi-URL walk).
- Forward-walking pagination with per-search budget cap so multiple queries each get fair coverage.
- Korean locale and UTC-9 timezone baked into the worker so price formatting and delivery promises match what Korean shoppers see.
- Network discipline: fonts, media, and ad / analytics domains are blocked at the worker level. Bandwidth and wall time per page are noticeably lower than a default run.

### Data you get

> Sample shape, values are illustrative placeholders, not from a live listing.

| Field | Example |
|---|---|
| `productId` | `0000000001` |
| `title` | `Sample Product Title` |
| `brand` | `Sample Brand` |
| `url` | `https://www.coupang.com/vp/products/0000000001?itemId=0&vendorItemId=0` |
| `image` | `https://thumbnail.coupangcdn.com/thumbnails/remote/230x230ex/sample.jpg` |
| `images` | `["https://thumbnail.coupangcdn.com/thumbnails/remote/492x492ex/sample-1.jpg", "...sample-2.jpg"]` |
| `price` | `3490` |
| `originalPrice` | `5500` |
| `discountPercent` | `36` |
| `unitPrice` | `(1개당 1,745원)` |
| `currency` | `KRW` |
| `rating` | `4.7` |
| `reviewCount` | `0` |
| `rocketDelivery` | `true` |
| `rocketFresh` | `false` |
| `rocketGlobal` | `false` |
| `tomorrowDelivery` | `true` |
| `freeShipping` | `true` |
| `shippingCost` | `0` |
| `availability` | `InStock` |
| `deliveryInfo` | `내일(목) 도착 보장` |
| `categoryId` | `178155` |
| `categoryPath` | `쿠팡 홈 > Sample Category` |
| `description` | `Full product description appears here when fetchDetails = true.` |
| `query` | `노트북` |
| `scrapedAt` | `2026-01-01T00:00:00.000Z` |

### How to use

Search by Korean keyword:

```json
{
  "mode": "search",
  "queries": ["노트북"],
  "maxPages": 3,
  "maxListings": 60,
  "proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "KR" }
}
````

Search by English keyword with filters:

```json
{
  "mode": "search",
  "queries": ["wireless mouse"],
  "minPrice": 10000,
  "maxPrice": 50000,
  "rocketOnly": true,
  "minRating": 4,
  "sortBy": "salePriceAsc",
  "maxPages": 5,
  "maxListings": 100,
  "fetchDetails": true,
  "proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "KR" }
}
```

Walk multiple categories or saved searches:

```json
{
  "mode": "url",
  "urls": [
    "https://www.coupang.com/np/categories/178255",
    "https://www.coupang.com/np/categories/178255?page=2"
  ],
  "maxPages": 2,
  "maxListings": 120
}
```

Scrape a specific product detail page:

```json
{
  "mode": "url",
  "urls": ["https://www.coupang.com/vp/products/0000000001?itemId=00000000&vendorItemId=00000000"],
  "fetchDetails": true
}
```

Pull customer reviews for one or more products (one record per review):

```json
{
  "mode": "reviews",
  "productIds": ["0000000002", "0000000001"],
  "maxReviewsPerProduct": 50,
  "reviewSortBy": "DATE_DESC",
  "proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "KR" }
}
```

Reviews mode returns 17 fields per review including title, content, rating, date, helpful counts, photos, videos, vendor name, the variant the reviewer bought, and Coupang's structured survey answers (사용 목적 / 무게 / 성능 buckets). Pull only 1-star reviews for negative-feedback analysis:

```json
{
  "mode": "reviews",
  "productIds": ["0000000002"],
  "reviewRatingFilter": 1,
  "maxReviewsPerProduct": 50
}
```

### Input parameters

| Parameter | Type | Default | Description |
|---|---|---|---|
| `mode` | string | `search` | `search` for query + filters, `url` for direct URL walking, `reviews` for customer reviews by product ID |
| `queries` | array | `["노트북"]` | One or more Korean or English search terms |
| `categoryId` | integer | (none) | Optional category id to narrow the search |
| `minPrice` | integer | (none) | Minimum item price in KRW |
| `maxPrice` | integer | (none) | Maximum item price in KRW |
| `rocketOnly` | boolean | `false` | Keep only items eligible for the Rocket Delivery service |
| `minRating` | integer | (none) | Minimum average rating, 1 to 5 |
| `sortBy` | string | `scoreDesc` | One of `scoreDesc`, `salePriceAsc`, `salePriceDesc`, `latest`, `saleCountDesc` |
| `urls` | array | (none) | One or more `coupang.com/np/search`, `/np/categories/...`, or `/vp/products/...` URLs |
| `productIds` | array | (none) | (Reviews mode) One or more product IDs or product URLs |
| `maxReviewsPerProduct` | integer | `50` | (Reviews mode) Reviews per product to fetch via the paginated API |
| `reviewSortBy` | string | `ORDER_SCORE_ASC` | (Reviews mode) `ORDER_SCORE_ASC` (Best) or `DATE_DESC` (Newest) |
| `reviewRatingFilter` | integer | (none) | (Reviews mode) Only return reviews with this exact star rating (1 to 5) |
| `maxPages` | integer | `3` | Pages to walk per query / URL (60 items per page) |
| `maxListings` | integer | `0` | Stop after this many items (0 = unlimited) |
| `fetchDetails` | boolean | `false` | Visit each product page for brand, full description, image gallery, shipping |
| `proxy` | object | Apify Residential KR | Proxy configuration |

### Output example

> Sample record, values are illustrative placeholders, not from a live listing.

```json
{
  "productId": "0000000001",
  "title": "Sample Product Title",
  "brand": "Sample Brand",
  "url": "https://www.coupang.com/vp/products/0000000001?itemId=0&vendorItemId=0",
  "image": "https://thumbnail.coupangcdn.com/thumbnails/remote/230x230ex/sample.jpg",
  "images": [
    "https://thumbnail.coupangcdn.com/thumbnails/remote/492x492ex/sample-1.jpg",
    "https://thumbnail.coupangcdn.com/thumbnails/remote/492x492ex/sample-2.jpg"
  ],
  "price": 3490,
  "originalPrice": 5500,
  "discountPercent": 36,
  "unitPrice": "(1개당 1,745원)",
  "currency": "KRW",
  "rating": 4.7,
  "reviewCount": 0,
  "rocketDelivery": true,
  "rocketFresh": false,
  "rocketGlobal": false,
  "tomorrowDelivery": true,
  "freeShipping": true,
  "shippingCost": 0,
  "availability": "InStock",
  "deliveryInfo": "내일(목) 도착 보장",
  "categoryId": "178155",
  "categoryPath": "쿠팡 홈 > Sample Category",
  "description": "Full seller description text appears here when fetchDetails = true.",
  "query": "노트북",
  "scrapedAt": "2026-01-01T00:00:00.000Z"
}
```

### Plan requirement

Coupang serves Korean shoppers. The upstream edge filter accepts very little non-Korean traffic, so the actor needs **Apify Residential proxy with country `KR`**. This is included in the Apify Starter plan and above.

If you are on the free plan and pick a non-residential proxy, the actor falls back to a small datacenter pool. Throughput is much lower and many pages will not return data; for production runs the upgrade is essential.

Default memory is 1024 MB. Increase to 2048 MB for runs that walk more than 200 pages so the worker has headroom across the full session.

# Actor input Schema

## `mode` (type: `string`):

Pick how to start. 'search' uses query + filters below. 'url' walks one or more category / search URLs. 'reviews' returns customer reviews for a list of product IDs (one record per review, ~10 reviews per product).

## `queries` (type: `array`):

One or more Korean or English search terms (e.g. '노트북', 'laptop'). Only used when mode = search.

## `categoryId` (type: `integer`):

Optional: narrow the search to a Coupang category id (the number after /np/categories/ in a category URL). Leave empty for all categories.

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

Optional: only return items with price >= this value. Leave empty for no lower bound.

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

Optional: only return items with price <= this value. Leave empty for no upper bound.

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

Keep only items eligible for the next-day Rocket Delivery service.

## `minRating` (type: `integer`):

Optional: only keep items whose average rating is >= this value (1 to 5).

## `sortBy` (type: `string`):

Sort the search results.

## `urls` (type: `array`):

One or more https://www.coupang.com/np/search?q=, /np/categories/<id>, or /vp/products/<id> URLs. Multi-URL supported. Filter-mode fields are ignored. Pagination starts at the page in the URL and walks forward.

## `productIds` (type: `array`):

One or more Coupang product IDs (the number after /vp/products/ in a product URL) OR full product URLs. Output is one record per review.

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

How many reviews to fetch per product. The actor pages through Coupang's review API to reach this number. Most popular products have 1000+ reviews available. Default 50.

## `reviewSortBy` (type: `string`):

How to order the reviews returned. 'Best' is Coupang's recommended ranking (mixes rating and helpfulness); 'Newest' returns most recent first.

## `reviewRatingFilter` (type: `integer`):

Optional. When set, only return reviews with this exact star rating (1, 2, 3, 4, or 5). Useful for analysing low-rated reviews or pulling only top reviews.

## `maxPages` (type: `integer`):

How many pages of results to walk per query or URL. Each page returns up to 60 items.

## `maxListings` (type: `integer`):

Stop after this many items in total across all queries / URLs. 0 = unlimited.

## `fetchDetails` (type: `boolean`):

Off (default, recommended): each item gets 15 fields (productId, vendorItemId, itemId, title, price, originalPrice, discountPercent, currency, rating, reviewCount, image, url, isSponsored, rocketDelivery, tomorrowDelivery). Fast and cheap. On: also visits each product page to add brand, full image gallery, description, shipping details, availability, category path, and a spec key-value map (~11 entries). Each detail page adds one navigation, so total cost is roughly 5x the lean run.

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

Pick the proxy. Korean residential is strongly recommended, the upstream edge filter rejects most other exits.

## Actor input object example

```json
{
  "mode": "search",
  "queries": [
    "노트북"
  ],
  "rocketOnly": false,
  "sortBy": "scoreDesc",
  "urls": [
    "https://www.coupang.com/np/categories/178255"
  ],
  "productIds": [
    "8499380264"
  ],
  "maxReviewsPerProduct": 50,
  "reviewSortBy": "ORDER_SCORE_ASC",
  "maxPages": 2,
  "maxListings": 0,
  "fetchDetails": false,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "KR"
  }
}
```

# Actor output Schema

## `overview` (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 = {
    "queries": [
        "노트북"
    ],
    "urls": [
        "https://www.coupang.com/np/categories/178255"
    ],
    "productIds": [
        "8499380264"
    ],
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "KR"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("abotapi/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 = {
    "queries": ["노트북"],
    "urls": ["https://www.coupang.com/np/categories/178255"],
    "productIds": ["8499380264"],
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "KR",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("abotapi/coupang-scraper").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 '{
  "queries": [
    "노트북"
  ],
  "urls": [
    "https://www.coupang.com/np/categories/178255"
  ],
  "productIds": [
    "8499380264"
  ],
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "KR"
  }
}' |
apify call abotapi/coupang-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Coupang KR $1.5💰 URL Keyword and Review Scraper",
        "description": "Pull product listings from coupang.com via query, category, or URL. Returns 20+ structured fields including title, brand, price, discount, currency, rating, review count, images, product URL, delivery flags, availability, full description, and image gallery.",
        "version": "1.0",
        "x-build-id": "av4hxmdrQkMVy1439"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/abotapi~coupang-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-abotapi-coupang-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/abotapi~coupang-scraper/runs": {
            "post": {
                "operationId": "runs-sync-abotapi-coupang-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/abotapi~coupang-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-abotapi-coupang-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Run mode",
                        "enum": [
                            "search",
                            "url",
                            "reviews"
                        ],
                        "type": "string",
                        "description": "Pick how to start. 'search' uses query + filters below. 'url' walks one or more category / search URLs. 'reviews' returns customer reviews for a list of product IDs (one record per review, ~10 reviews per product).",
                        "default": "search"
                    },
                    "queries": {
                        "title": "Search queries",
                        "type": "array",
                        "description": "One or more Korean or English search terms (e.g. '노트북', 'laptop'). Only used when mode = search.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "categoryId": {
                        "title": "Category ID",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Optional: narrow the search to a Coupang category id (the number after /np/categories/ in a category URL). Leave empty for all categories."
                    },
                    "minPrice": {
                        "title": "Min price (KRW)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Optional: only return items with price >= this value. Leave empty for no lower bound."
                    },
                    "maxPrice": {
                        "title": "Max price (KRW)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Optional: only return items with price <= this value. Leave empty for no upper bound."
                    },
                    "rocketOnly": {
                        "title": "Rocket Delivery only",
                        "type": "boolean",
                        "description": "Keep only items eligible for the next-day Rocket Delivery service.",
                        "default": false
                    },
                    "minRating": {
                        "title": "Minimum average rating",
                        "minimum": 1,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Optional: only keep items whose average rating is >= this value (1 to 5)."
                    },
                    "sortBy": {
                        "title": "Sort order",
                        "enum": [
                            "scoreDesc",
                            "salePriceAsc",
                            "salePriceDesc",
                            "latest",
                            "saleCountDesc"
                        ],
                        "type": "string",
                        "description": "Sort the search results.",
                        "default": "scoreDesc"
                    },
                    "urls": {
                        "title": "URLs",
                        "type": "array",
                        "description": "One or more https://www.coupang.com/np/search?q=, /np/categories/<id>, or /vp/products/<id> URLs. Multi-URL supported. Filter-mode fields are ignored. Pagination starts at the page in the URL and walks forward.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "productIds": {
                        "title": "Product IDs",
                        "type": "array",
                        "description": "One or more Coupang product IDs (the number after /vp/products/ in a product URL) OR full product URLs. Output is one record per review.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxReviewsPerProduct": {
                        "title": "Max reviews per product",
                        "minimum": 1,
                        "type": "integer",
                        "description": "How many reviews to fetch per product. The actor pages through Coupang's review API to reach this number. Most popular products have 1000+ reviews available. Default 50.",
                        "default": 50
                    },
                    "reviewSortBy": {
                        "title": "Review sort order",
                        "enum": [
                            "ORDER_SCORE_ASC",
                            "DATE_DESC"
                        ],
                        "type": "string",
                        "description": "How to order the reviews returned. 'Best' is Coupang's recommended ranking (mixes rating and helpfulness); 'Newest' returns most recent first.",
                        "default": "ORDER_SCORE_ASC"
                    },
                    "reviewRatingFilter": {
                        "title": "Review rating filter",
                        "minimum": 1,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Optional. When set, only return reviews with this exact star rating (1, 2, 3, 4, or 5). Useful for analysing low-rated reviews or pulling only top reviews."
                    },
                    "maxPages": {
                        "title": "Max pages per query / URL",
                        "minimum": 1,
                        "type": "integer",
                        "description": "How many pages of results to walk per query or URL. Each page returns up to 60 items.",
                        "default": 2
                    },
                    "maxListings": {
                        "title": "Max listings (total)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Stop after this many items in total across all queries / URLs. 0 = unlimited.",
                        "default": 0
                    },
                    "fetchDetails": {
                        "title": "Fetch product detail pages",
                        "type": "boolean",
                        "description": "Off (default, recommended): each item gets 15 fields (productId, vendorItemId, itemId, title, price, originalPrice, discountPercent, currency, rating, reviewCount, image, url, isSponsored, rocketDelivery, tomorrowDelivery). Fast and cheap. On: also visits each product page to add brand, full image gallery, description, shipping details, availability, category path, and a spec key-value map (~11 entries). Each detail page adds one navigation, so total cost is roughly 5x the lean run.",
                        "default": false
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Pick the proxy. Korean residential is strongly recommended, the upstream edge filter rejects most other exits."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
