# 11st Products Crawler (`ficuslink/11st-products-crawler`) Actor

Monitor prices, discounts, ratings & reviews on 11st (11번가), Korea's top marketplace.
Includes seller info, delivery details & ad detection.
Sort by price, popularity or sales.
Fast API-based, no browser needed.
11번가 가격·할인·평점·리뷰 모니터링.
판매자, 배송, 광고 판별 포함. 가격·인기·판매순 정렬.
API 기반 고속 수집.

- **URL**: https://apify.com/ficuslink/11st-products-crawler.md
- **Developed by:** [KIM SEUNG KOOK](https://apify.com/ficuslink) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.90 / 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.

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

## 11st Products Crawler

Scrape product listings from [11st.co.kr](https://www.11st.co.kr) (11번가), one of Korea's largest e-commerce platforms.

This Actor extracts **29 fields** per product using 11st's internal API — no browser required. Fast, lightweight, and cost-efficient.

### Pricing

This Actor uses **pay-per-event** pricing:
- **$5.00 per 1,000 results** ($0.005 per product)
- Platform usage costs are included
- No charge if the Actor returns zero results
- You can set a cost limit per run using `maxTotalChargeUsd`

### What it does

- Searches 11st.co.kr for products by keyword
- Extracts 29 fields including prices, ratings, seller info, delivery, and discount details
- Supports Korean and English search keywords
- Filters by price range, sort order, and ad exclusion
- Automatically removes duplicate products
- Outputs clean JSON/CSV ready for analysis or delivery

### Features

- **API-based** — Direct API calls, no browser/Playwright needed
- **29+ data fields** — Far more than DOM-parsing alternatives
- **7 sort options** — Ranking, popularity, price (asc/desc), sales, reviews, newest
- **Ad detection** — Each product tagged with `isAd` field; optional `excludeAds` filter
- **Price filtering** — Set min/max price in KRW
- **Deduplication** — Automatic `productId`-based dedup across pages
- **Lightweight** — ~256MB memory, fast execution

### Input parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchKeywords` | string[] | *required* | Search keywords (Korean/English) |
| `maxItemsPerKeyword` | integer | 50 | Max unique products per keyword (1–10,000) |
| `sortBy` | string | `"ranking"` | Sort order (see options below) |
| `minPrice` | integer | — | Minimum price filter (KRW) |
| `maxPrice` | integer | — | Maximum price filter (KRW) |
| `excludeAds` | boolean | `false` | Exclude sponsored products |
| `requestDelay` | number | 2 | Delay between requests in seconds (1–10) |
| `proxyConfiguration` | object | Apify Proxy | Proxy settings |

#### Sort options

| Value | Description |
|-------|-------------|
| `ranking` | 11st Ranking (11번가 랭킹순) — default |
| `popularity` | Popularity (11번가 인기순) |
| `price_asc` | Price: Low to High (낮은 가격순) |
| `price_desc` | Price: High to Low (높은 가격순) |
| `sales` | Best Selling (누적 판매순) |
| `reviews` | Most Reviews (많은 리뷰순) |
| `latest` | Newest (최신순) |

### Output example

```json
{
    "productId": "8034140878",
    "title": "ASUS 비보북 S 16 OLED M5606KA-RI052W...",
    "price": 1577890,
    "originalPrice": 1678600,
    "discountRate": "5%",
    "directDiscountAmount": 100710,
    "currency": "KRW",
    "rating": 4.9,
    "ratingMax": 5,
    "reviewCount": 12,
    "brandName": "에이수스",
    "isOfficialBrand": true,
    "sellerBadgeType": "OFFICIAL",
    "sellerNickName": "ASUS공식총판",
    "thumbnailUrl": "https://cdn.011st.com/11dims/resize/248/11src/product/8034140878/B.webp",
    "isSoldOut": false,
    "isLowestPrice": true,
    "is30DayLowest": false,
    "isAd": false,
    "listType": "COMMON",
    "isDeal": false,
    "hasOptionPrice": false,
    "deliveryFee": "무료",
    "deliveryETA": "4/11(토) 도착",
    "benefitPoints": "20,170",
    "catalogId": "434667258",
    "productUrl": "https://www.11st.co.kr/products/8034140878",
    "searchKeyword": "노트북",
    "scrapedAt": "2026-04-10T10:45:00Z"
}
````

### Use cases

- **Price monitoring** — Track competitor pricing across categories
- **Market research** — Analyze product trends, pricing distribution, and seller landscape
- **Competitive analysis** — Compare ad vs. organic product rankings
- **Data delivery** — Export to CSV/Excel for client reports

### Integration examples

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("ficuslink/11st-products-crawler").call(run_input={
    "searchKeywords": ["노트북", "운동화"],
    "maxItemsPerKeyword": 100,
    "sortBy": "price_asc",
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['title']} - {item['price']}원")
```

#### Google Sheets

Use the [Apify Google Sheets integration](https://apify.com/drobnikj/google-sheets) to automatically export results to a spreadsheet.

### 한국어 사용 가이드

#### 입력 설정

- **검색 키워드** (`searchKeywords`): 검색할 키워드를 입력합니다. 한국어, 영어 모두 지원합니다.
- **키워드당 최대 수집 건수** (`maxItemsPerKeyword`): 키워드당 최대 추출할 상품 수입니다. 중복은 자동 제거됩니다.
- **정렬 기준** (`sortBy`): 검색 결과 정렬 방식을 선택합니다 (랭킹순, 인기순, 가격순, 판매순, 리뷰순, 최신순).
- **광고 제외** (`excludeAds`): `true`로 설정하면 광고 상품을 제외하고 자연 노출 상품만 수집합니다.

#### 출력 필드

총 29개 필드가 추출됩니다. 주요 필드:

- `price`: 최종 판매가 (원)
- `originalPrice`: 할인 전 원가
- `isAd`: 광고 상품 여부 (true/false)
- `isLowestPrice`: 11번가 내 최저가 여부
- `deliveryFee`: 배송비 ("무료", "3,000" 등)

### FAQ

**Q: How many products can I scrape per run?**
A: Up to 10,000 per keyword. For larger volumes, split across multiple keywords.

**Q: Does this Actor use a browser?**
A: No. It calls 11st's internal API directly, making it fast and lightweight.

**Q: What happens if the site blocks requests?**
A: The Actor retries up to 8 times with exponential backoff. Using Korean residential proxies reduces blocking risk.

**Q: Are ad products included by default?**
A: Yes. Each product has an `isAd` field so you can filter them. Set `excludeAds: true` to exclude them automatically.

### Disclaimer

This tool is intended for legitimate purposes such as market research, price monitoring, and competitive analysis. Users are responsible for complying with applicable laws and the target website's Terms of Service. This Actor does not download or redistribute any copyrighted content — it only extracts publicly visible product metadata and thumbnail URLs.

# Actor input Schema

## `searchKeywords` (type: `array`):

Search keywords. Supports Korean and English. Each keyword triggers a separate search. (한국어/영어 모두 지원. 키워드별 개별 검색 실행.)

## `maxItemsPerKeyword` (type: `integer`):

Maximum number of unique products to extract per keyword. Duplicates are automatically removed. (키워드당 최대 추출 상품 수. 중복은 자동 제거.)

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

Sort order for search results. (검색 결과 정렬 기준.)

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

Filter products by minimum price in KRW. (최소 가격 필터, 원 단위.)

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

Filter products by maximum price in KRW. (최대 가격 필터, 원 단위.)

## `excludeAds` (type: `boolean`):

If true, excludes sponsored/ad products from results. Useful for analyzing only organic rankings. (광고 상품 제외 여부. 자연 노출 상품만 분석할 때 유용.)

## `requestDelay` (type: `number`):

Delay between API requests in seconds. Minimum 1 second. Higher values reduce the chance of rate limiting. (요청 간 대기 시간. 최소 1초. 높을수록 차단 가능성 감소.)

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

Proxy settings. Korean residential proxies recommended for best results. (프록시 설정. 한국 레지덴셜 프록시 권장.)

## Actor input object example

```json
{
  "searchKeywords": [
    "노트북"
  ],
  "maxItemsPerKeyword": 50,
  "sortBy": "ranking",
  "excludeAds": false,
  "requestDelay": 2,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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 = {
    "searchKeywords": [
        "노트북"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("ficuslink/11st-products-crawler").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 = {
    "searchKeywords": ["노트북"],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("ficuslink/11st-products-crawler").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 '{
  "searchKeywords": [
    "노트북"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call ficuslink/11st-products-crawler --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=ficuslink/11st-products-crawler",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "11st Products Crawler",
        "description": "Monitor prices, discounts, ratings & reviews on 11st (11번가), Korea's top marketplace. \nIncludes seller info, delivery details & ad detection. \nSort by price, popularity or sales. \nFast API-based, no browser needed.\n11번가 가격·할인·평점·리뷰 모니터링. \n판매자, 배송, 광고 판별 포함. 가격·인기·판매순 정렬. \nAPI 기반 고속 수집.",
        "version": "1.0",
        "x-build-id": "gf5ZPTv22BEPZ357d"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/ficuslink~11st-products-crawler/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-ficuslink-11st-products-crawler",
                "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/ficuslink~11st-products-crawler/runs": {
            "post": {
                "operationId": "runs-sync-ficuslink-11st-products-crawler",
                "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/ficuslink~11st-products-crawler/run-sync": {
            "post": {
                "operationId": "run-sync-ficuslink-11st-products-crawler",
                "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": [
                    "searchKeywords"
                ],
                "properties": {
                    "searchKeywords": {
                        "title": "Search Keywords (검색 키워드)",
                        "type": "array",
                        "description": "Search keywords. Supports Korean and English. Each keyword triggers a separate search. (한국어/영어 모두 지원. 키워드별 개별 검색 실행.)",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItemsPerKeyword": {
                        "title": "Max Items Per Keyword (키워드당 최대 수집 건수)",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of unique products to extract per keyword. Duplicates are automatically removed. (키워드당 최대 추출 상품 수. 중복은 자동 제거.)",
                        "default": 50
                    },
                    "sortBy": {
                        "title": "Sort Order (정렬 기준)",
                        "enum": [
                            "ranking",
                            "popularity",
                            "price_asc",
                            "price_desc",
                            "sales",
                            "reviews",
                            "latest"
                        ],
                        "type": "string",
                        "description": "Sort order for search results. (검색 결과 정렬 기준.)",
                        "default": "ranking"
                    },
                    "minPrice": {
                        "title": "Minimum Price in KRW (최소 가격)",
                        "type": "integer",
                        "description": "Filter products by minimum price in KRW. (최소 가격 필터, 원 단위.)"
                    },
                    "maxPrice": {
                        "title": "Maximum Price in KRW (최대 가격)",
                        "type": "integer",
                        "description": "Filter products by maximum price in KRW. (최대 가격 필터, 원 단위.)"
                    },
                    "excludeAds": {
                        "title": "Exclude Sponsored Products (광고 상품 제외)",
                        "type": "boolean",
                        "description": "If true, excludes sponsored/ad products from results. Useful for analyzing only organic rankings. (광고 상품 제외 여부. 자연 노출 상품만 분석할 때 유용.)",
                        "default": false
                    },
                    "requestDelay": {
                        "title": "Request Delay in Seconds (요청 간격 초)",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "number",
                        "description": "Delay between API requests in seconds. Minimum 1 second. Higher values reduce the chance of rate limiting. (요청 간 대기 시간. 최소 1초. 높을수록 차단 가능성 감소.)",
                        "default": 2
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration (프록시 설정)",
                        "type": "object",
                        "description": "Proxy settings. Korean residential proxies recommended for best results. (프록시 설정. 한국 레지덴셜 프록시 권장.)"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
