# Naver Scraper: Shopping, Place, Brand Store & Rank (`sourabhbgp/naver-scraper`) Actor

Scrape Naver Shopping products, Naver Place local businesses with visitor reviews, whole brand store catalogues, and keyword rank positions for your product or seller. Korean or English keywords, no login and no proxy setup. 네이버 쇼핑, 플레이스, 브랜드스토어 수집.

- **URL**: https://apify.com/sourabhbgp/naver-scraper.md
- **Developed by:** [Sourabh Kumar](https://apify.com/sourabhbgp) (community)
- **Categories:** E-commerce, Lead generation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### Naver Shopping, Place & brand store scraper with keyword rank tracking

One actor for Korea's largest search and shopping platform. Search Naver Shopping (네이버 쇼핑) for products, find local businesses and their reviews on Naver Place (네이버 플레이스), list every product in a brand store (브랜드스토어), or track where you rank for a keyword.

**$5.00 per 1,000 results, plus $0.02 per run. No proxy setup, no browser, no logins.**

Korean keywords work exactly as well as English ones. Type 아이폰 or 강남 맛집 and get results.

### Why this scraper?

- 🇰🇷 **Built for Korean search.** Korean and English keywords both return full results, and every field comes back in the original Korean.
- 🏥 **Local businesses beyond restaurants.** Restaurants and cafes, hospitals and clinics, hair salons, and pharmacies, each with reviews.
- 💬 **Full review text, properly paginated.** Reviews arrive with the whole body, the visit date and the visit count, page after page, without repeating the first page.
- 🏷️ **Five sort orders, five different result sets.** Running one keyword under each sort multiplies your coverage instead of repeating it.
- 🏪 **Whole store catalogues.** Point it at a brand store and get every product, not the first page.
- 📈 **Keyword rank tracking.** Ask where your product or shop sits for a keyword and get a position number back.
- 🧾 **You don't pay to be told "not found".** Rows that report a target missing from the results are delivered free.
- 🚦 **Bad input doesn't bill you.** Duplicate keywords and stores are collapsed before anything is charged.

### Four scraping modes

#### 🔍 Shopping mode

Keyword search across Naver Shopping. Returns the product, its price and discount, the seller, rating, review counts, stock and image. Five sort orders: default, review count, newest, price low to high, price high to low.

#### 📍 Place mode

Korean local businesses by keyword. Returns name, category, road and lot address, phone, rating, visitor and blog review counts, map coordinates, bookmark count, and the booking link where one exists. Switch on reviews to also get each visitor review with its text, rating and visit date.

Narrow to one business type with the category filter: restaurants, hospitals, hair salons or pharmacies. Leave it on **Any** and your keyword decides, which is what most searches want.

Naver caps this surface at about 399 businesses per keyword, so use several narrower keywords to go wider.

#### 🏪 Store mode

Every product in a `brand.naver.com` brand store. Paste the store name or its URL. Returns price, list price, discount, stock, category, rating and review count per product, and optionally each product's reviews.

Naver runs two kinds of brand store and this handles both, which matters because the catalogue kind returns nothing at all from most scrapers. Catalogue-style stores, which several large electronics brands use, list items that aggregate many sellers: those rows carry a seller count and no single stock level.

#### 📈 Rank mode

Where a product or a seller sits in Naver Shopping results for a keyword. Give it a product ID, a seller name or a seller ID, and it scans as deep as you ask, up to 10,000 results, reporting a 1-based position.

A seller usually holds several positions for one keyword, so you get one row per placement, capped by a setting you control. When a target does not appear at all you still get a row saying so, and that row is free.

### Top use cases

- **Price and competitor monitoring** for sellers on Naver Shopping and SmartStore.
- **Keyword rank tracking** for your own listings, run daily to see where you move.
- **Local business lead lists** by category and area, with phone numbers and addresses.
- **Review mining** for sentiment, menu and treatment mentions, or service complaints.
- **Market research** into Korean demand, pricing bands and the seller mix in a category.
- **Competitor catalogue audits**: pull a rival brand store in full and watch its range and prices.
- **Store monitoring** for a shop, clinic or salon, tracking its rating and review flow over time.

### Input examples

Every example below is sized to run comfortably inside Apify's free monthly credit, so you can try all four modes before paying anything.

**Shopping mode**

```json
{
  "mode": "shopping",
  "searchTerms": ["노트북"],
  "maxItems": 50,
  "shoppingSort": "DEFAULT"
}
```

**Place mode**

```json
{
  "mode": "place",
  "searchTerms": ["강남 맛집"],
  "placeCategory": "any",
  "maxItems": 10,
  "includeReviews": true,
  "maxReviewsPerPlace": 5
}
```

**Store mode**

```json
{
  "mode": "store",
  "storeSlugs": ["adidas", "https://brand.naver.com/samsung"],
  "maxItems": 25,
  "storeSortType": "POPULAR",
  "includeStoreReviews": true,
  "maxReviewsPerProduct": 2
}
```

**Rank mode**

```json
{
  "mode": "rank",
  "searchTerms": ["아이폰"],
  "targetMallNames": ["애플 공식 브랜드스토어"],
  "targetProductIds": ["91298210911"],
  "rankScanDepth": 1000,
  "maxPlacementsPerTarget": 20
}
```

### Output examples

Every row carries `rowType` and `scrapedAt`, so a mixed dataset can be filtered by record type. These are real rows captured from live runs.

**Shopping mode**, one row per product:

```json
{
  "rowType": "product",
  "searchTerm": "노트북",
  "sortOrder": "DEFAULT",
  "productId": 87638016995,
  "channelProductId": "10093514318",
  "productName": "삼성전자 갤럭시북4 NT750XGR-A71A i7 16GB 512GB 사무용 노트북",
  "productUrl": "https://smartstore.naver.com/main/products/10093514318",
  "price": 1448000,
  "listPrice": 1648000,
  "discountRatio": 12,
  "mallName": "삼성공식파트너 코인비엠에스",
  "mallSeq": "160465",
  "mallId": "coinbms",
  "officialCertifiedMallType": "CERTIFIED_MALL",
  "reviewScore": 4.94,
  "reviewCount": 9254,
  "reviewScore6Month": 4.94,
  "reviewCount6Month": 9249,
  "stockQuantity": 95577,
  "catalogProductCount": 8,
  "imageUrl": "https://shopping-phinf.pstatic.net/main_8763801/87638016995.17.jpg",
  "deliveryFee": 0,
  "scrapedAt": "2026-09-13T09:26:15.469Z"
}
```

**Place mode**, one row per business:

```json
{
  "rowType": "place",
  "searchTerm": "강남 맛집",
  "requestedCategory": "any",
  "placeId": "1119605388",
  "name": "지노스 뉴욕 피자 압구정점",
  "placeCategory": "피자",
  "roadAddress": "선릉로161길 18 2층",
  "address": "신사동 661-13",
  "phone": "0507-1422-2234",
  "reviewScore": 4.69,
  "visitorReviewCount": 1134,
  "blogReviewCount": 1075,
  "saveCount": "91,000+",
  "hasBooking": true,
  "bookingReviewCount": 0,
  "isDelivery": false,
  "microReview": "데이트하기 좋은 현지 분위기",
  "longitude": "127.0390240",
  "latitude": "37.5274813",
  "michelinGuideYear": null,
  "isNewOpening": false,
  "bookingUrl": "https://m.booking.naver.com/booking/6/bizes/424206/search",
  "imageUrl": "https://ldb-phinf.pstatic.net/20230626_61/1687751929627JK7Bw_JPEG/%C1%F6%B3%EB%BD%BA%C7%C7%C0%DA_%B8%DE%C0%CE.jpg",
  "placeUrl": "https://m.place.naver.com/place/1119605388/home",
  "scrapedAt": "2026-09-13T09:25:23.723Z"
}
```

**Place reviews**, when `includeReviews` is on:

```json
{
  "rowType": "placeReview",
  "searchTerm": "강남 맛집",
  "placeId": "1119605388",
  "placeName": "지노스 뉴욕 피자 압구정점",
  "reviewId": "6aa64d252c1c53bcdc38fcce",
  "rating": 5,
  "reviewText": "분위기도 너무 좋고 넘 맛있었어요~~~\n또 올게요 !! ㅎㅎㅎ",
  "visitedRaw": "9.13.일",
  "createdRaw": "9.13.일",
  "visitCount": 1,
  "authorNickname": "soominnoie",
  "totalReviewsOnPlace": 962,
  "scrapedAt": "2026-09-13T09:25:24.707Z"
}
```

**Store mode**, one row per product:

```json
{
  "rowType": "storeProduct",
  "storeSlug": "adidas",
  "storeName": "아디다스 공식 스토어",
  "productType": "product",
  "productId": 13623414676,
  "productNo": 13563847283,
  "productName": "[아디다스 공식] 아르헨티나 EQT 트랙 탑 KG2287",
  "productUrl": "https://brand.naver.com/adidas/products/13623414676",
  "catalogId": null,
  "listPrice": 119000,
  "price": 95200,
  "discountRatio": 20,
  "reviewCount": 20,
  "reviewScore": 4.9,
  "productStatus": "SALE",
  "stockQuantity": 452,
  "sellerCount": null,
  "category": "패션의류>남성의류>아우터>재킷",
  "imageUrl": "https://shop-phinf.pstatic.net/20260605_288/1780633007370jAS0w_JPEG/114765851495964392_504862433.jpg",
  "scrapedAt": "2026-09-13T08:03:46.984Z"
}
```

**Store mode, catalogue-style store.** `productType` is `catalog`, `sellerCount` says how many sellers carry the item, and stock and per-product URL do not apply:

```json
{
  "rowType": "storeProduct",
  "storeSlug": "samsung",
  "storeName": "삼성전자",
  "productType": "catalog",
  "productId": 61032238341,
  "productNo": null,
  "productName": "갤럭시 Z 폴드8 512GB [자급제]",
  "productUrl": null,
  "catalogId": 61032238341,
  "listPrice": 2379200,
  "price": 2260450,
  "discountRatio": null,
  "reviewCount": 564,
  "reviewScore": 4.96,
  "productStatus": "EP",
  "stockQuantity": null,
  "sellerCount": 14,
  "category": "디지털/가전>휴대폰>자급제폰",
  "imageUrl": "https://shopping-phinf.pstatic.net/main_6103223/61032238341.20260728144728.jpg",
  "scrapedAt": "2026-09-13T08:03:41.770Z"
}
```

**Store reviews**, when `includeStoreReviews` is on:

```json
{
  "rowType": "storeReview",
  "storeSlug": "adidas",
  "storeName": "아디다스 공식 스토어",
  "productId": 13623414676,
  "productName": "[아디다스 공식] 아르헨티나 EQT 트랙 탑 KG2287",
  "productUrl": "https://brand.naver.com/adidas/products/13623414676",
  "reviewId": 5063473183,
  "rating": 5,
  "reviewText": "메시요...?\n그는 제가 아는 아르헨중에 최고였어요...",
  "createdDate": "2026-09-12T15:10:54.906+00:00",
  "helpCount": null,
  "isRepurchase": false,
  "authorId": "ji****",
  "totalReviewsOnProduct": 20,
  "scrapedAt": "2026-09-13T08:03:48.695Z"
}
```

**Rank mode**, one row per placement found:

```json
{
  "rowType": "rank",
  "searchTerm": "아이폰",
  "sortOrder": "DEFAULT",
  "rank": 3,
  "matchedBy": "mallName",
  "matchedValue": "애플 공식 브랜드스토어",
  "productId": 89924385188,
  "channelProductId": "12379874471",
  "productName": "애플 아이폰 17 프로 자급제",
  "productUrl": "https://smartstore.naver.com/main/products/12379874471",
  "price": 1790000,
  "mallName": "애플 공식 브랜드스토어",
  "mallSeq": "758501",
  "reviewScore": 4.9,
  "reviewCount": 5328,
  "scannedDepth": 3,
  "requestedScanDepth": 1000,
  "scrapedAt": "2026-09-13T09:27:38.976Z"
}
```

**Rank mode, target not found.** `rank` is null, `notFoundWithinScan` says how deep we actually looked. **This row is free.**

```json
{
  "rowType": "rank",
  "searchTerm": "아이폰",
  "sortOrder": "DEFAULT",
  "rank": null,
  "notFoundWithinScan": 300,
  "requestedScanDepth": 300,
  "matchedBy": "productId",
  "matchedValue": "99999999999",
  "scrapedAt": "2026-09-13T09:20:30.499Z"
}
```

### How much does Naver Scraper cost?

**$5.00 per 1,000 results**, plus **$0.02 per run**.

- Apify's **free plan** gives you $5 of credit a month: about **999 rows**.
- The **Starter plan** at $29 a month covers about **5,799 rows**.

Two things worth knowing. Review rows are extra: `maxItems` counts places or products, so 20 places at 20 reviews each is up to 420 rows, not 20. And rows that tell you a rank target was not found are delivered **free**, so a run that finds nothing costs you only the $0.02.

The per-run fee exists because a deep rank scan can read thousands of products to answer one question with a single row. It keeps that honest instead of forcing the price per row up for everyone.

### Limitations

- **Place returns up to 399 businesses per keyword.** That is Naver's own limit, not ours. Use narrower keywords, or several, to go wider. When a run cannot reach what you asked for it says so in the run status rather than looking complete.
- **Shopping reaches about 10,000 products per keyword per sort order.** Running the same keyword under several sorts is the way past it.
- **Rank near a page boundary can occasionally be missed**, because Naver repeats and skips a few items between pages. Treat "not found in the top N" as not in the top N, not as proof of absence.
- **Catalogue-style store items have no single product page**, no stock level and no per-product reviews, because one entry covers many sellers. Regular brand stores have all three.
- **Product and place URLs are the real Naver addresses**, but opening one while signed out, especially from outside Korea, can show a sign-in prompt. That is Naver's behaviour, not a broken link.
- **Some Place fields depend on the business type.** Ratings and visitor review scores come back for restaurants and cafes but are empty for hospitals and pharmacies, because Naver does not collect them there. Bookmark counts and the one-line summary are restaurant-only. Nothing is silently dropped: the field is simply absent at the source.
- **No private data.** Anything behind a Naver login, and personal details Naver does not show publicly, are out of reach. Review author names come back as Naver displays them, partly masked.

### Frequently asked questions

#### Do I need to log in or provide cookies?

No. You supply nothing but keywords or a store name.

#### Will I get blocked?

Bot protection is handled for you and the proxy is configured automatically. You do not need to pick a proxy or a country.

#### Can I search in English?

Yes, though Korean keywords usually return more of what you want, because that is what Korean shoppers type. Both work.

#### How do I find a seller ID or a store name?

The store name is the part of a `brand.naver.com` address after the slash, and you can paste the whole URL instead. Seller IDs appear as `mallSeq` on every Shopping and Rank row, so one Shopping run gives you the IDs to track.

#### What happens if a store name is wrong or a keyword returns nothing?

The run ends cleanly and the status message says what went wrong. It is not marked as failed, and you are not billed for results that do not exist.

#### Why did I get fewer rows than I asked for?

Either the source ran out of results, or you hit one of the caps in Limitations. The run status message tells you which, and gives the number the source holds when it can.

#### How much does Naver Scraper cost?

$5.00 per 1,000 results plus $0.02 per run. The free plan's $5 monthly credit covers about 999 rows.

#### Is it legal to scrape Naver?

This collects publicly visible information only, the same pages any visitor can see, and no login is used. You are responsible for how you use the data, including under Korea's PIPA and the GDPR where personal data is involved. Take advice if you are unsure.

#### Does it support scheduled runs and integrations?

Yes. Schedule it on Apify and push results to Google Sheets, S3, a webhook or your own API. Rank tracking is the obvious thing to run on a daily schedule.

#### Can I use it with the Apify API?

Yes, through the standard Apify API and client libraries, like any actor.

### 한국어 안내

네이버 쇼핑, 플레이스, 브랜드스토어를 한 번에 수집하는 액터입니다.

- **쇼핑**: 키워드로 상품명, 가격, 할인율, 판매처, 리뷰 수와 평점을 수집합니다.
- **플레이스**: 음식점, 병원, 미용실, 약국을 상호, 주소, 전화번호, 좌표, 방문자 리뷰와 함께 수집합니다.
- **브랜드스토어**: `brand.naver.com` 스토어의 전체 상품과 리뷰를 가져옵니다.
- **순위**: 내 상품이나 판매처가 특정 키워드에서 몇 위인지 확인합니다.

한글 키워드를 그대로 입력하면 됩니다. 로그인, 쿠키, 프록시 설정이 필요 없습니다.
결과 1,000건당 $5.00, 실행당 $0.02이며, 순위에서 찾지 못했다는 행은 무료입니다.

### Your feedback

Found a bug, or want a field that is not here? Open an issue at
https://console.apify.com/actors/nAlaCpV3BwKORQwZE/issues and it reaches a human.

### Legal

This actor collects publicly available data only. It is not affiliated with, endorsed by, or connected to Naver Corporation. Naver and SmartStore are trademarks of their respective owners. Use the data in line with Naver's terms and the privacy law that applies to you.

# Actor input Schema

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

Shopping searches Naver Shopping for products. Place searches Naver Place for local businesses and their visitor reviews. Store lists every product in one brand store. Rank tells you where your product or shop sits in the results for a keyword.

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

Korean or English keywords. Used by Shopping, Place and Rank. For Place, include the intent word, for example 강남 맛집 rather than 강남. Not used by Store.

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

Places, products or brand-store items to return for each search term. Review rows are extra and are not counted here. Shopping reaches about 10,000 per term per sort order. Place reaches about 399 per term, whatever you set.

## `shoppingSort` (type: `string`):

Each sort order returns a largely different set of products, so changing this changes which products you get, not just their order.

## `placeCategory` (type: `string`):

Narrows the search to one Naver Place vertical. Leave it on Any unless you want the filter: the category is combined with your keyword, so searching a hair salon with the Restaurants filter returns nothing. Restaurant also covers cafes and bars.

## `includeReviews` (type: `boolean`):

Adds each business's visitor reviews with full review text. This makes runs longer and returns more rows.

## `maxReviewsPerPlace` (type: `integer`):

Only used when visitor reviews are switched on. These rows are additional to Max results, so 20 places at 50 reviews is up to 1,020 rows.

## `storeSlugs` (type: `array`):

Brand store names or their brand.naver.com URLs, for example adidas or https://brand.naver.com/adidas. One row per product in the store.

## `storeSortType` (type: `string`):

Order the store catalogue is walked in.

## `includeStoreReviews` (type: `boolean`):

Adds each product's customer reviews with full text, rating and date. Makes runs longer and returns more rows.

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

Only used when store product reviews are switched on. These rows are additional to Max results, so 20 products at 20 reviews is up to 420 rows.

## `targetProductIds` (type: `array`):

Naver product IDs to find in the results. Each one returns its position, or a row saying it was not found.

## `targetMallNames` (type: `array`):

Seller or shop names exactly as Naver shows them. Every placement that seller holds is returned.

## `targetMallSeqs` (type: `array`):

Naver seller IDs, if you know them. More reliable than matching on the seller name.

## `rankScanDepth` (type: `integer`):

How many results to scan per keyword before reporting a target as not found. Deeper costs more and takes longer. A result near a page boundary can occasionally be missed, so treat not found as not in the top N rather than absent.

## `maxPlacementsPerTarget` (type: `integer`):

A seller can hold many positions for one keyword. This caps how many are reported for each seller target, so one seller name cannot return hundreds of rows. Product ID targets always return one row.

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

Datacenter proxy is enough for both modes and is the cheapest option. Leave as is unless you have a reason to change it.

## Actor input object example

```json
{
  "mode": "shopping",
  "searchTerms": [
    "아이폰"
  ],
  "maxItems": 40,
  "shoppingSort": "DEFAULT",
  "placeCategory": "any",
  "includeReviews": false,
  "maxReviewsPerPlace": 50,
  "storeSlugs": [
    "adidas"
  ],
  "storeSortType": "POPULAR",
  "includeStoreReviews": false,
  "maxReviewsPerProduct": 20,
  "rankScanDepth": 1000,
  "maxPlacementsPerTarget": 20,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `datasetItems` (type: `string`):

Every row collected by this run. Rank rows that report a target as not found are delivered free.

# 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 = {
    "mode": "shopping",
    "searchTerms": [
        "아이폰"
    ],
    "maxItems": 40,
    "placeCategory": "any",
    "storeSlugs": [
        "adidas"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("sourabhbgp/naver-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 = {
    "mode": "shopping",
    "searchTerms": ["아이폰"],
    "maxItems": 40,
    "placeCategory": "any",
    "storeSlugs": ["adidas"],
}

# Run the Actor and wait for it to finish
run = client.actor("sourabhbgp/naver-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 '{
  "mode": "shopping",
  "searchTerms": [
    "아이폰"
  ],
  "maxItems": 40,
  "placeCategory": "any",
  "storeSlugs": [
    "adidas"
  ]
}' |
apify call sourabhbgp/naver-scraper --silent --output-dataset

```

## MCP server setup

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