NAVER Map Scraper avatar

NAVER Map Scraper

Pricing

from $2.29 / 1,000 results

Go to Apify Store
NAVER Map Scraper

NAVER Map Scraper

Scrape Naver Map places by keyword or URL: name, category, address, phone, business hours, menus, facilities, images, and reviews. Export JSON, CSV, Excel.

Pricing

from $2.29 / 1,000 results

Rating

0.0

(0)

Developer

ParseBird

ParseBird

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Scrape places from Naver Map — South Korea's leading map and local-search platform. Search by keyword or paste place URLs to extract business name, category, address, phone, business hours, menus, facilities, images, subway access, and full visitor and Naver Blog reviews. Export as JSON, CSV, or Excel.

Search Naver Map by keyword or scrape specific places by URL — get structured business data, business hours, menus, review statistics, and both visitor and blog reviews, ready for analysis, monitoring, or integration.

Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

Apify Actor: parsebird/naver-map-scraper — scrapes map.naver.com places and reviews. $2.99/1000 places on the Free plan ($2.79/1000 Bronze, $2.59/1000 Silver, $2.29/1000 Gold), $0.99/1000 reviews on all plans. Call via ApifyClient: client.actor("parsebird/naver-map-scraper").call(run_input={"searchKeywords": ["강남 맛집"], "maxResultsPerKeyword": 50, "includeReviews": True}). Inputs: searchKeywords (array of strings, e.g. ["강남 맛집", "홍대 카페"]), urls (array of strings — full, short naver.me, or mobile place URLs), maxResultsPerKeyword (integer, default 100, max 10000 — Naver's own search stops after roughly 300 results per keyword), includeDetails (boolean, default true — fetches business hours, menus, facilities, images, description; has no effect on direct URLs, which always get full details), includeReviews (boolean, default false), maxReviewPages (integer, default 50 — visitor reviews return 50/page, blog reviews 10/page capped around 100/place), reviewCutoffDate (string, default "2024-01-01" — only reviews on or after this date), proxyConfiguration (object). Output: place records with place_id, name, category, categoryCode, address, roadAddress, phone, virtualPhone, homepage, siteUrl, x, y, businessHours, conveniences, facilities, hasMobilePhoneNumber, visitorReviewsTotal, visitorReviewsScore, reviewStats, reviewThemes, reviewMenus, menus, images, subwayStations, description, url; when includeReviews is on, also visitorReviews (review_id, rating, body, author_nickname, visited, created, tags, voted_keywords, media_count) and blogReviews (title, contents, author_name, url, date). API docs: https://docs.apify.com/api/v2 Token: https://console.apify.com/settings/integrations

What is Naver Map Scraper?

Naver Map Scraper is an Apify Actor that extracts structured business data and reviews from Naver Map (네이버 지도) — the dominant local-search and navigation platform in South Korea, covering millions of restaurants, cafes, salons, clinics, and other local businesses. It pulls data straight from Naver Map's own place API, including business hours, full menus with prices and photos, review statistics, and both visitor and Naver Blog reviews.

Think of it as a Naver Map API alternative — Naver has no public API for bulk place search or review export, but this scraper delivers the same structured data programmatically. It's built for local SEO agencies, franchise and multi-location analytics, competitive restaurant research, and review monitoring across the Korean market.

What can Naver Map Scraper do?

  • 🔍 Keyword search — search any Naver Map term, such as "강남 맛집" (Gangnam restaurants) or "홍대 카페" (Hongdae cafes), across multiple keywords in one run
  • 🔗 Direct place URLs — paste full place URLs, search-result URLs, short naver.me links, or mobile m.place.naver.com links; short links are resolved automatically
  • 🏢 Full business profiles — business hours (including separate schedules for dine-in, drive-thru, and delivery), menus with prices, descriptions, and photos, facilities and conveniences, subway station access, homepage and booking links
  • Review statistics — average rating, total review count, photo review count, and Naver's own review theme and popular-menu breakdowns per place
  • 💬 Visitor and Blog reviews — collect both native Naver Place visitor reviews (rating, text, tags, visit date) and linked Naver Blog posts
  • 📅 Review date filtering — set a cutoff date so only recent reviews are collected, saving time and cost on long-running places
  • Fast mode — skip the detail page fetch for search results and get search-level data (name, category, phone, address, coordinates, review counts) roughly twice as fast and cheap
  • ⏱️ Scheduling & API access — run on autopilot with Apify Schedules and pull results via the Apify API or client libraries
  • 📊 Multiple export formats — download as JSON, CSV, Excel, XML, HTML, or RSS

What data can you extract from Naver Map?

FieldDescription
nameBusiness name
categoryNaver Map category label (e.g. 중식당, 카페)
address / roadAddressJibun and road-name addresses
phone / virtualPhoneDirect phone number and Naver's smart-call virtual number
businessHoursNamed schedules (e.g. store hours, delivery, drive-thru) with per-day open/close times
menusMenu items with name, price, description, images, and recommended flag
conveniences / facilitiesAmenity tags shown on the place page and its Information tab
visitorReviewsTotal / visitorReviewsScoreAggregate rating and review count
reviewThemes / reviewMenusNaver's review-derived theme breakdown (taste, service, mood…) and most-mentioned menu items
imagesBusiness photo URLs
subwayStationsNearest subway station and walking distance
descriptionOwner-written business description
visitorReviewsIndividual visitor review text, rating, tags, and visit date (when reviews are included)
blogReviewsLinked Naver Blog posts about the place (when reviews are included)

How to scrape Naver Map

  1. Go to Naver Map Scraper on Apify Store and click Try for free
  2. Enter a search keyword — e.g. "강남 맛집", or paste Naver Map place URLs directly
  3. Set max results per keyword — start with 20–50 for a quick test
  4. Turn on Include reviews if you need visitor and blog reviews, and set a review cutoff date
  5. Run the Actor — click Start and wait for results
  6. Export your data — download as JSON, CSV, or Excel, or access via the Apify API

Input parameters

ParameterTypeRequiredDefaultDescription
searchKeywordsarray of stringsNo*Naver Map search terms, e.g. ["강남 맛집", "홍대 카페"]
urlsarray of stringsNo*Naver Map place URLs — full, short naver.me, or mobile links
maxResultsPerKeywordintegerNo100Max places to collect per keyword (1–10,000; Naver search itself stops after ~300)
includeDetailsbooleanNotrueFetch each place's detail page for menus, hours, facilities, images, and description
includeReviewsbooleanNofalseCollect visitor and Naver Blog reviews
maxReviewPagesintegerNo50Max review pages per place (visitor: 50/page; blog: 10/page, capped ~100/place)
reviewCutoffDatestringNo2024-01-01Only collect reviews on or after this date (YYYY-MM-DD)
proxyConfigurationobjectNo{"useApifyProxy": true}Apify Proxy configuration, recommended for larger runs

* At least one of searchKeywords or urls is required.

Output example

{
"place_id": "38239053",
"name": "스타벅스 압구정점",
"category": "카페",
"categoryCode": "restaurant",
"address": "서울 강남구 신사동 609",
"roadAddress": "서울 강남구 압구정로30길 17 (신사동)",
"phone": "1522-3232",
"virtualPhone": null,
"homepage": "http://www.starbucks.co.kr/",
"siteUrl": "https://m.booking.naver.com/booking/6/bizes/392658/search",
"x": "127.02956",
"y": "37.526283",
"businessHours": [
{
"name": "매장",
"status": "영업 중",
"description": "22:00에 영업 종료",
"schedule": [{ "day": "화", "start": "06:30", "end": "22:00" }]
}
],
"conveniences": ["주차"],
"facilities": [],
"hasMobilePhoneNumber": false,
"visitorReviewsTotal": 4149,
"visitorReviewsScore": 4.44,
"reviewStats": { "avgRating": 4.44, "totalCount": 4149, "imageReviewCount": 469, "authorCount": 1203 },
"reviewThemes": [{ "code": "taste", "label": "맛", "count": 267 }],
"reviewMenus": [{ "label": "커피", "count": 103 }],
"menus": [{ "name": "카페 아메리카노", "price": "4700", "description": "강렬한 에스프레소 샷", "images": [], "recommend": false }],
"images": ["https://ldb-phinf.pstatic.net/..."],
"subwayStations": [{ "name": "압구정역", "typeDesc": "3번 출구에서 75m" }],
"description": null,
"url": "https://map.naver.com/p/entry/place/38239053"
}

Download results in JSON, CSV, Excel, XML, HTML, or RSS, or access via the Apify API.

Use cases

  • 📊 Local SEO and competitive research — pull structured data on every competitor within a category and neighborhood
  • 🏪 Franchise and multi-location tracking — monitor business hours, menus, and ratings across every branch of a chain
  • Review monitoring — collect fresh visitor and blog reviews on a schedule to track sentiment and flag issues early
  • 🍽️ Menu and pricing intelligence — track menu items, prices, and recommended dishes across a market segment
  • 🎯 Lead generation — build prospect lists of local businesses with phone numbers, addresses, and category filters
  • 🔌 Pipeline integration — feed place and review data into Google Sheets, Slack, Zapier, Make, or custom systems via Apify Integrations

How it works

  1. For each search keyword, the Actor queries Naver Map's own search API and collects matching place IDs; for each URL, it resolves short links and extracts the place ID directly
  2. When details are included, every place ID is used to fetch Naver Map's full place-detail data: business hours, menus, facilities, images, subway access, description, and review statistics
  3. When reviews are included, visitor reviews and Naver Blog reviews are paginated newest-first per place, stopping once a review predates reviewCutoffDate
  4. Every place and review is pushed to the dataset as it's collected, so partial results are available even if a run is stopped early

How to use via API — Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("parsebird/naver-map-scraper").call(run_input={
"searchKeywords": ["강남 맛집"],
"maxResultsPerKeyword": 50,
"includeReviews": True,
"maxReviewPages": 10,
"reviewCutoffDate": "2025-01-01",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
if "place_id" in item and "name" in item:
print(f"{item['name']}{item['category']}{item['visitorReviewsScore']}")

How to use via API — JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('parsebird/naver-map-scraper').call({
searchKeywords: ['강남 맛집'],
maxResultsPerKeyword: 50,
includeReviews: true,
maxReviewPages: 10,
reviewCutoffDate: '2025-01-01',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(item => {
if (item.place_id && item.name) {
console.log(`${item.name}${item.category}${item.visitorReviewsScore}`);
}
});

How much does it cost to scrape Naver Map?

Naver Map Scraper uses pay-per-event pricing with two separate events — one for places, one for reviews — so you only pay for the data you actually collect.

How much does it cost to scrape 1,000 places without reviews?

$2.99 on the Free plan, down to $2.29 on the Gold plan.

How much does it cost to scrape 1,000 reviews?

$0.99 on any plan. New users get a free trial with platform credit to try the Actor before committing.

Pricing

EventFreeBronzeSilverGold
result-scraped (per place)$0.00299$0.00279$0.00259$0.00229
review-scraped (per review)$0.00099$0.00099$0.00099$0.00099

A place counts as one result-scraped event whether it came from a search keyword or a direct URL. Each visitor review or Naver Blog review counts as one review-scraped event.

This Actor extracts publicly available data from Naver Map's public place and search pages — the same business and review data any visitor can see without logging in.

Web scraping of publicly available data is generally legal in the United States and the European Union, as established by the hiQ Labs v. LinkedIn ruling. For more information, see Apify's guide on the legality of web scraping.

Users are responsible for ensuring their use of extracted data complies with applicable laws and Naver's Terms of Service in their jurisdiction.

Looking for more Naver data extraction tools? Check out these ParseBird actors:

Browse all ParseBird actors on Apify Store.

FAQ

Why does maxResultsPerKeyword sometimes return fewer places than requested? Naver Map's own search results stop after roughly 300 matches per keyword, regardless of how high maxResultsPerKeyword is set. Use more specific keywords (adding a neighborhood or category) to reach different result sets.

What's the difference between conveniences and facilities? conveniences are the amenity icons shown at the top of the place page (e.g. parking, reservations). facilities come from Naver's separate Information tab and can include additional detail. The two lists often overlap but are sourced independently.

Does includeDetails: false affect places added via urls? No. Places added through urls always get full details, since there's no search-level summary to fall back on for a directly requested place.

Why do some places have no businessHours or menus? Not every Naver Place listing publishes structured hours or a menu — smaller or newly listed businesses often leave these fields empty on Naver itself, and the Actor reflects that.

How does the review cutoff date work? Reviews are returned newest-first, so the Actor stops paging through a place's reviews as soon as it reaches one older than reviewCutoffDate. This keeps re-running a monitoring job cheap, since it won't re-fetch reviews you already have.

What's the difference between tags and voted_keywords on a visitor review? tags are the human-readable keyword badges shown on the review (e.g. "음식이 맛있어요"). voted_keywords are the same keywords as Naver's internal codes (e.g. food_good), useful for programmatic matching across languages.

What happens if a search or URL returns no places? The Actor finishes successfully with an empty dataset and logs a warning — this isn't treated as an error.

Can I schedule recurring runs? Yes. Use Apify Schedules to run daily, weekly, or at any interval, and combine with reviewCutoffDate to track only new reviews.

Can I access the data via API? Yes. Use the Apify API or the official Python and JavaScript client libraries to run the Actor and retrieve results programmatically.

What export formats are supported? JSON, CSV, Excel (XLSX), XML, HTML, and RSS. Download directly from the Apify Console or via the API.

Is there a free trial? Yes. New Apify users get free platform credit to try Naver Map Scraper before committing to a paid plan.

I found an issue or have a feature request. Open an issue on the Issues tab or contact ParseBird via the Apify Console.