# Naver Map Scraper - Places, Reviews, Menus, Photos & Phones (`topapi/naver-map-scraper`) Actor

Scrape Naver Map (Korea) places by keyword, area or link: phone, address, coordinates, hours, menus with prices, website, Instagram, rating and review counts, plus visitor reviews, blog reviews and photos. Area sweep past 300. From $0.40 per 1,000 places, no start fee.

- **URL**: https://apify.com/topapi/naver-map-scraper.md
- **Developed by:** [Top Api](https://apify.com/topapi) (community)
- **Categories:** Lead generation, Travel, E-commerce
- **Features:** Limited permissions
- **Stats:** 4 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.40 / 1,000 places

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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

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

## How to integrate an Actor?

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

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

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

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

# README

### What does Naver Map Scraper do?

**Naver Map Scraper** extracts places from [Naver Map](https://map.naver.com) (네이버 지도 / Naver Place), Korea's main local search, and turns search keywords, map areas or place links into structured rows: name, category, address, phone, coordinates, opening hours, menu with prices, website and Instagram, rating, review and save counts, plus each place's visitor reviews, blog reviews and photos. Built for lead generation, local market research, restaurant and retail intelligence and review monitoring in Korea.

Naver Map Scraper - Naver Place scraper - Naver Map API alternative - 네이버 지도 크롤러 - Korean business leads

- **Four kinds of rows in one actor:** places, visitor reviews, blog / cafe reviews and photos. The `recordType` field says which.
- **Past Naver's 300-per-keyword limit:** give a point and a radius (or a box) and the area is split into cells until every matching place is collected - 1,000 cafés around Hongdae in 112 seconds in our test run.
- **Place details as a cheap add-on:** hours by day with break times and last order, the full menu with prices, homepage, Instagram and blog links, amenities, parking, payment methods, subway exit and walking time, review statistics, voted keywords, Michelin and TV appearances.
- **Naver's own filters:** open now, 24 hours, delivery, takeout, reservations, Naver Pay, coupons, newly opened, wheelchair access, Michelin, menu keyword, place type.
- **Monitoring mode:** schedule it and get only new or changed places, and only reviews you have not received before.
- **No login, cookies or Naver API key:** the actor reads the same public data Naver Map shows a signed-out visitor.
- **Pay per row, no start fee:** $0.40 per 1,000 places, $0.72 per 1,000 for the details, $0.35 per 1,000 reviews.

### What data can you get from Naver Map?

<table>
<tr>
<td>🏷️ Name, category, place type</td>
<td>📍 Road and lot address, coordinates</td>
<td>📞 Phone and 0507 virtual number</td>
</tr>
<tr>
<td>⭐ Rating, visitor and blog review counts</td>
<td>🔖 Save count (how many users saved it)</td>
<td>🕒 Open now, hours by day, breaks, last order</td>
</tr>
<tr>
<td>🍽️ Menu with prices and photos</td>
<td>🌐 Homepage, Instagram, blog, TalkTalk</td>
<td>📅 Naver Booking link, Naver Pay, delivery</td>
</tr>
<tr>
<td>🚇 Nearest subway exit, walk time, bus stops</td>
<td>🅿️ Parking, facilities, payment methods</td>
<td>📊 Review themes, voted keywords, star bands</td>
</tr>
<tr>
<td>💬 Visitor reviews with owner replies</td>
<td>📝 Blog and cafe posts (내돈내산 flag)</td>
<td>📷 Owner and visitor photos, clips</td>
</tr>
</table>

### How to scrape Naver Map with Naver Map Scraper

1. Open the actor and click **Try for free**.
2. Type one or more **search keywords** the way you would on Naver Map, e.g. `강남 맛집`, `홍대 카페`, `서초구 치과`, or paste place links.
3. Optional: set **search coordinates** and a **radius** to sweep a whole area, switch on Naver's filters, reviews, blog reviews or photos.
4. Click **Start** and download the rows as JSON, CSV or Excel, or read them through the API.

### ⬇️ Input

| Field | What it does |
|---|---|
| `searchKeywords` | Keywords, e.g. `강남 맛집`. Korean gives the richest results; English works too. |
| `urls` | Place links (`map.naver.com/p/entry/place/<id>`, `m.place.naver.com/<type>/<id>`, `pcmap.place.naver.com/...`), `naver.me` short links, bare place ids, or a Naver Map search link (runs as a keyword). |
| `maxResultsPerKeyword` | Places per keyword or per area sweep (default 100; Naver serves 300 per keyword). |
| `maxItems` | Cap on places for the whole run. |
| `searchCoordinates` | `"latitude,longitude"`. Ranks around the point and adds each place's distance. |
| `searchRadiusKm` / `boundingBox` | Sweep every matching place in a circle (max 20 km) or a box, past the 300 limit. |
| `sortBy` | Relevance, nearest, most reviewed, most saved. |
| `businessType` | Restaurants, cafes, hospitals, hair salons, beauty, hotels, attractions, pharmacies, pet services. |
| `openNow`, `open24h`, `delivery`, `takeout`, `acceptsReservations`, `naverPay`, `hasCoupon`, `newlyOpened`, `wheelchairAccessible`, `michelinOnly`, `menuKeyword` | Naver's own filters, applied by Naver. |
| `extraFilters` | Any other Naver list filter as JSON, e.g. `{"department": "피부과"}` for clinics. |
| `includeDetails` | The place-details block (default on). |
| `includeEnglish` | `nameEn`, `categoryEn`, `addressEn` from Naver's own English version. |
| `includeReviews`, `maxReviewsPerPlace`, `reviewSort`, `reviewsSince`, `onlyNewReviews` | Visitor reviews per place. |
| `includeBlogReviews`, `maxBlogReviewsPerPlace`, `onlyOwnMoneyBlogReviews` | Blog / cafe posts per place. |
| `includePhotos`, `maxPhotosPerPlace`, `photoSource` | Photos per place: all, owner, visitor-review or clips. |
| `withPhoneOnly`, `withWebsiteOnly`, `minRating`, `minReviews`, `addressContains`, `categoryContains` | Filters checked before anything is charged. |
| `monitoringMode`, `emitUnchanged`, `monitoringStateKey` | Return only new or changed places on scheduled runs. |
| `proxyConfiguration`, `maxConcurrency` | Optional. Naver answers without a proxy. |

#### Input JSON

```json
{
    "searchKeywords": ["강남 맛집", "홍대 카페"],
    "maxResultsPerKeyword": 100,
    "includeDetails": true,
    "includeReviews": true,
    "maxReviewsPerPlace": 20
}
```

#### Every café within 1 km of Hongdae (area sweep)

```json
{
    "searchKeywords": ["카페"],
    "searchCoordinates": "37.5567,126.9227",
    "searchRadiusKm": 1,
    "maxResultsPerKeyword": 3000
}
```

#### Clinics with a phone, open now, in one district

```json
{
    "searchKeywords": ["역삼동 피부과"],
    "openNow": true,
    "withPhoneOnly": true,
    "addressContains": ["역삼동"]
}
```

Naver pads a district search with places from neighbouring areas (on 2026-10-28, `역삼동 피부과` served 300 places, 130 of them in 역삼동; `율현동 치과` served 40, 2 in 율현동). `addressContains` drops the rest before the charge.

### ⬆️ Output

Each row has a `recordType`. The Output tab has views for places, contacts, place details, visitor reviews, blog reviews and photos.

**Place** (from the 홍대 카페 run, details on, trimmed):

```json
{
  "recordType": "place",
  "place_id": "1503644539",
  "name": "아벨롭 홍대본점",
  "nameEn": "Avelop",
  "category": "카페,디저트",
  "address": "서울 마포구 서교동 375-2",
  "roadAddress": "서울 마포구 양화로15안길 6 Avelop",
  "phone": "02-336-8897",
  "primaryPhone": "02-336-8897",
  "latitude": 37.5544506,
  "longitude": 126.9188258,
  "visitorReviewsTotal": 4243,
  "visitorReviewsScore": 4.95,
  "blogReviewsTotal": 4310,
  "saveCount": "126,000+",
  "saveCountNum": 126000,
  "businessStatus": "영업 중",
  "instagram": "https://www.instagram.com/avelop_official?igsh=MWc3enU5dGVja3l6MA==",
  "menus": [{ "name": "아벨롭 라떼", "price": "7000", "priceText": "7,000원", "recommend": true }],
  "subwayStations": [{ "stationName": "홍대입구역", "typeDesc": "홍대입구역 경의중앙선", "nearestExit": "1", "walkTime": 8, "walkingDistance": 468 }],
  "votedKeywords": [{ "code": "coffee_good", "name": "커피가 맛있어요", "count": 2841 }],
  "placeUrl": "https://map.naver.com/p/entry/place/1503644539",
  "searchKeyword": "홍대 카페",
  "searchRank": 7,
  "hasDetails": true
}
```

**Visitor review:**

```json
{
  "recordType": "review",
  "place_id": "1789177874",
  "placeName": "신이도가",
  "reviewId": "6ae080e4c53f858b2aab22ad",
  "rating": 5,
  "body": "음료가 맛있어용!!",
  "authorNickname": "damnew",
  "authorReviewCount": 69,
  "visitedDate": "2026-10-27",
  "createdDate": "2026-10-27",
  "votedKeywords": ["커피가 맛있어요", "음료가 맛있어요"],
  "visitTags": ["예약 없이 이용", "바로 입장", "친목", "친구"],
  "verification": "영수증",
  "receiptVerified": true,
  "ownerReply": { "body": "안녕하세요, 홍대 카페 신이도가(한옥카페) 입니다. 소중한 의견 남겨주셔서 감사합니다...", "date": "2026-10-28" }
}
```

**Blog review** rows carry `title`, `contents` (the excerpt Naver shows), `url`, `authorName`, `sourceType` (blog or cafe), `publishedDate` and `ownMoney` (Naver's 내돈내산 flag). **Photo** rows carry `photoUrl` (full size), `source` (business, visitorReview, clip), `mediaType`, `authorNickname`, `date` and the review it belongs to.

#### Fields

Measured on our test runs (1,200 places, 4,000 reviews, 1,000 blog reviews, 1,000 photos, 2026-10-28):

| Field | Filled | Field | Filled |
|---|---|---|---|
| name, category, address, roadAddress, coordinates | 100% | primaryPhone (own or 0507 number) | 82% |
| visitorReviewsTotal | 96% | saveCount | 100% |
| businessStatus (open now) | 93% | conveniences | 82% |
| businessHours (details) | 93% | menus (details) | 87% |
| homepage (details) | 73% | instagram (details) | 64% |
| description (details) | 86% | subwayStations (details) | 99% |
| reviewStats (details) | 96% | votedKeywords (details) | 95% |
| review body | 97% | review rating | 98% |
| review photos | 84% | owner reply | 20% |
| blog title, url, date | 100% | photo URL | 100% |

`visitorReviewsScore` appears only where Naver shows a star rating (28% of places in those runs); the phone is withheld by some owners (`hasMobilePhoneNumber` says when a number exists but is hidden). Search-only fields (`saveCount`, `hasNPay`, `distance`, `searchRank`) are empty on rows built from a place link, because Naver shows them on its search list.

### Use cases

- 📇 **Lead generation:** restaurants, clinics, salons or shops in a district with phone, website and Instagram, filtered to those with a phone or website.
- 🗺️ **Local market research:** every café or clinic in an area with ratings, review and save counts, price signals and opening hours.
- 🍜 **Restaurant and F\&B intelligence:** menus with prices, best-selling dishes, average spend, review themes and keywords across competitors.
- ⭐ **Review monitoring:** new visitor reviews and owner replies for your branches or competitors on a schedule.
- 📝 **Influencer and content research:** blog and cafe posts about a place, with the 내돈내산 (self-paid) flag.
- 🧭 **Location data for apps:** coordinates, transit access, parking and facilities for Korean points of interest.

### How much does it cost to scrape Naver Map?

Pay per row, no start fee. Places removed by your filters, duplicates and unchanged places in monitoring mode are not charged.

| Event | Price per 1,000 |
|---|---|
| Place | $0.40 |
| Place details (add-on on a place row) | $0.72 |
| Visitor review | $0.35 |
| Blog review | $0.40 |
| Photo | $0.18 |

| Example run (our test runs) | Rows | Cost |
|---|---|---|
| 20 places with details | 20 | $0.022 |
| 1,000 cafés with details (area sweep) | 1,000 | $1.12 |
| 200 places + 20 reviews, 5 blog reviews, 5 photos each | 6,200 | $2.20 |
| 1,000 places without details | 1,000 | $0.40 |

Set **Maximum cost per run** in the run options to cap any run; the actor stops cleanly at the limit.

### Run it on a schedule

Turn on `monitoringMode` (and `onlyNewReviews` for reviews), save the input as a task and schedule it daily or weekly. The first run returns everything and remembers it; later runs return only places that are new or changed (with `changeType` and `changedFields`; `DETAILS` = a place an earlier run delivered without place details, delivered again with them because this run reads them) and only reviews that were not returned before. In our test, the second run of a 50-place watch list returned 0 rows, charged nothing and cost $0.0004 in platform usage.

### Integrations, API & MCP

- **Schedules and webhooks:** run on a schedule and get a call when a run finishes.
- **Make, Zapier, n8n, Google Sheets, Slack:** connect through Apify's integrations.
- **API:** start runs and read results from [Python](https://apify.com/TopApi/naver-map-scraper/api/python) or [JavaScript](https://apify.com/TopApi/naver-map-scraper/api/javascript) with the Apify client.
- **MCP:** AI agents can call the actor through the [Apify MCP server](https://apify.com/TopApi/naver-map-scraper/api/mcp).

### More scrapers from TopApi

- 🛒 [Naver Shopping Scraper](https://apify.com/TopApi/naver-shopping-scraper): Naver Plus Store products, prices, sellers and reviews
- 🍎 [Apple Maps Scraper](https://apify.com/TopApi/apple-maps-scraper): places, phones, hours and ratings from Apple Maps
- 🗺️ [Yandex Maps Scraper](https://apify.com/TopApi/yandex-maps-scraper): businesses and reviews from Yandex Maps
- ⭐ [Google Maps Reviews Scraper](https://apify.com/TopApi/google-maps-reviews-scraper): reviews from Google Maps places

All TopApi actors: [apify.com/TopApi](https://apify.com/TopApi)

### Limits & empty runs

- Naver serves at most 300 places per keyword; for more, use an area sweep (`searchCoordinates` + `searchRadiusKm`, or `boundingBox`) or split the keyword by district.
- Naver shows about 100 blog / cafe posts per place; visitor reviews have no cap (50 per page).
- Some filters exist only for some place types: delivery and takeout for restaurants and cafes; the run summary says when one was not applied.
- Most saved and most reviewed sorting apply to restaurants and cafes.
- A run that finds nothing ends with a message saying why (no match, filters, nothing new in monitoring mode) and charges nothing. A run Naver refuses completely ends as failed and charges nothing.

### ❓ FAQ

#### How much does Naver Map Scraper cost?

$0.40 per 1,000 places, plus $0.72 per 1,000 places for the details block, $0.35 per 1,000 reviews, $0.40 per 1,000 blog reviews and $0.18 per 1,000 photos. No start fee.

#### How many places can Naver Map Scraper return?

300 per keyword, Naver's own limit. An area sweep collects every matching place inside a radius or box; our 1 km Hongdae sweep returned 1,000 cafés.

#### Can I get phone numbers and websites of Korean businesses?

Yes. `phone` is the business's own number, `virtualPhone` Naver's 0507 smart-call number, and `primaryPhone` gives one column. Homepage, Instagram and blog links come with the details.

#### Can Naver Map Scraper collect reviews?

Yes: visitor reviews (text, rating, dates, keywords, visit tags, photos, owner reply, receipt check) and blog / cafe posts, each as their own rows.

#### Can I monitor new reviews or new places on a schedule?

Yes. `monitoringMode` returns only new or changed places; `onlyNewReviews` returns only reviews not returned before.

#### Does it give English names and addresses?

Yes, with `includeEnglish`: Naver's own English name, category and address next to the Korean fields, at no extra charge.

#### Can I use Naver Map Scraper with the Apify API or Python?

Yes, through the [API tab](https://apify.com/TopApi/naver-map-scraper/api/python) with the Apify client for Python or JavaScript.

#### Can AI agents use Naver Map Scraper through MCP?

Yes, through the [Apify MCP server](https://apify.com/TopApi/naver-map-scraper/api/mcp).

#### Do I need a Naver account, login or API key?

No.

#### Why did my run return no results?

The status message says why: no match for the keyword, your filters removed every place, or nothing changed since the last monitoring run. Korean keywords with a place name or district (`강남 맛집`) work best.

#### Your feedback

Missing a field or a filter? Open an issue on the [Issues tab](https://apify.com/TopApi/naver-map-scraper/issues/open) and we will look at it.

# Actor input Schema

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

What you would type into Naver Map, e.g. "강남 맛집", "홍대 카페", "부산 호텔", "서초구 치과". Korean gives the richest results; English works too. Naver serves up to 300 places per keyword - use an area sweep below for more.

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

Naver Map place links (map.naver.com/p/entry/place/1501340733), m.place / pcmap.place links, short naver.me links, bare place ids, or a Naver Map search link (runs as a keyword).

## `maxResultsPerKeyword` (type: `integer`):

Places to deliver per keyword (or per area sweep). Naver serves 300 per keyword; an area sweep goes past that. 0 = no limit.

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

Optional cap on places for the whole run, across all keywords and links. 0 = no cap.

## `searchCoordinates` (type: `string`):

"latitude,longitude", e.g. "37.4979,127.0276" (Gangnam Station). Naver ranks places around it and adds each place's distance. With a radius below, it is the centre of an area sweep.

## `searchRadiusKm` (type: `number`):

With search coordinates: collect every matching place within this radius (max 20 km). Dense areas are split into smaller cells until each is under Naver's 300 cap.

## `boundingBox` (type: `string`):

Instead of a radius: two corners as four numbers, e.g. "37.49,127.02,37.51,127.04" (lat,lng,lat,lng). Every matching place inside is collected.

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

Naver's ranking. Nearest ranks from the search coordinates (or the area the keyword names). Most saved and most reviewed apply to restaurants and cafes.

## `businessType` (type: `string`):

Optional: narrow the search to one of Naver's place types.

## `openNow` (type: `boolean`):

Only places open right now (Korea time). Restaurants, cafes, clinics.

## `open24h` (type: `boolean`):

Only places open around the clock (restaurants; clinics with 24-hour care).

## `delivery` (type: `boolean`):

Only places that deliver. Restaurants.

## `takeout` (type: `boolean`):

Only places offering takeaway. Restaurants.

## `acceptsReservations` (type: `boolean`):

Only places bookable through Naver (restaurants, clinics, salons).

## `naverPay` (type: `boolean`):

Only places accepting Naver Pay.

## `hasCoupon` (type: `boolean`):

Only places with a current Naver coupon.

## `newlyOpened` (type: `boolean`):

Only places Naver marks as newly opened.

## `wheelchairAccessible` (type: `boolean`):

Only places with a step-free entrance.

## `michelinOnly` (type: `boolean`):

Only places listed in the Michelin Guide.

## `menuKeyword` (type: `string`):

Only places whose menu matches this word, e.g. "피자" (pizza). Restaurants and cafes.

## `extraFilters` (type: `object`):

Advanced: any other Naver list filter as key/value, e.g. {"department": "피부과"} for clinics or {"filterSpecialist": "true"}.

## `includeDetails` (type: `boolean`):

Adds the place page's record: opening hours by day (breaks, last order), full menu with prices, homepage / Instagram / blog links, amenities, parking, payment methods, description, keywords, subway and bus access, review statistics and themes, Michelin, TV appearances, booking link. Charged as place-details.

## `includeEnglish` (type: `boolean`):

Adds nameEn, categoryEn, addressEn - Naver's own English versions - next to the Korean fields. No extra charge.

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

One row per visitor review: text, rating, author, visit and write dates, voted keywords, visit tags, photos, owner reply, receipt check. Charged per review.

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

Visitor reviews per place (Naver serves 50 a page with no upper limit).

## `reviewSort` (type: `string`):

Newest first lets a schedule or a date limit stop early.

## `reviewsSince` (type: `string`):

Only reviews (and blog reviews) written on or after this day, e.g. 2026-09-01.

## `onlyNewReviews` (type: `boolean`):

For scheduled runs: reviews an earlier run with the same input (or the same monitoring state key) already returned are skipped - not returned, not charged.

## `includeBlogReviews` (type: `boolean`):

One row per Naver Blog / Cafe post about the place: title, text excerpt, author, date, link, thumbnails, 내돈내산 flag. Naver shows about 100 per place. Charged per post.

## `maxBlogReviewsPerPlace` (type: `integer`):

Blog / cafe posts per place.

## `onlyOwnMoneyBlogReviews` (type: `boolean`):

Naver's own filter for posts the writer paid for themselves (not sponsored).

## `includePhotos` (type: `boolean`):

One row per photo or video: full-size URL, size, source (owner, visitor review, clip), author, date. Charged per photo.

## `maxPhotosPerPlace` (type: `integer`):

Photos per place.

## `photoSource` (type: `string`):

Which photos to collect.

## `withPhoneOnly` (type: `boolean`):

Skip places with no phone number (own or Naver's 0507 virtual number).

## `withWebsiteOnly` (type: `boolean`):

Skip places with no homepage, Instagram or blog link. Reads the place details (charged as place-details on the places kept).

## `minRating` (type: `number`):

Skip places whose visitor rating is below this (0-5). Places without a rating are skipped too.

## `minReviews` (type: `integer`):

Skip places with fewer visitor reviews.

## `addressContains` (type: `array`):

Keep only places whose address contains one of these, e.g. "역삼동" or "강남구". Naver pads a district search with places from neighbouring areas; this drops them before the charge.

## `categoryContains` (type: `array`):

Keep only places whose Naver category contains one of these, e.g. "카페", "치과".

## `monitoringMode` (type: `boolean`):

Later runs with the same input return only places that are new or changed (name, category, address, phone, homepage, hours, menu) since the last run, with changeType and changedFields. Review counts and "open now" are ignored.

## `emitUnchanged` (type: `boolean`):

In monitoring mode, return unchanged places too (charged).

## `monitoringStateKey` (type: `string`):

Optional name for the remembered state (default: derived from the input). Use one key per tracked list.

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

Optional. Naver answers without a proxy; a proxy you set is tried first.

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

Requests to Naver at the same time. The actor slows down by itself when Naver asks it to (HTTP 429).

## Actor input object example

```json
{
  "searchKeywords": [
    "강남 맛집"
  ],
  "maxResultsPerKeyword": 20,
  "sortBy": "relevance",
  "includeDetails": true,
  "maxReviewsPerPlace": 50,
  "reviewSort": "newest",
  "maxBlogReviewsPerPlace": 20,
  "maxPhotosPerPlace": 20,
  "photoSource": "all",
  "maxConcurrency": 8
}
```

# Actor output Schema

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

One item per Naver Map place, visitor review, blog / cafe review or photo (the recordType field says which).

## `summary` (type: `string`):

Per-search counts (delivered, examined, Naver's total, area cells), filtered counts, not-found inputs, routes used, field fill and charges.

# 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": [
        "강남 맛집"
    ],
    "maxResultsPerKeyword": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("topapi/naver-map-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 = {
    "searchKeywords": ["강남 맛집"],
    "maxResultsPerKeyword": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("topapi/naver-map-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 '{
  "searchKeywords": [
    "강남 맛집"
  ],
  "maxResultsPerKeyword": 20
}' |
apify call topapi/naver-map-scraper --silent --output-dataset

```

## MCP server setup

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