Naver Map Places Scraper 네이버 지도 · Korean Business Data API
Pricing
from $2.10 / 1,000 places
Naver Map Places Scraper 네이버 지도 · Korean Business Data API
Naver Map scraper & Naver Place API (네이버 지도·플레이스 크롤링) for Korean business data: ratings, reviews, hours, menus, phone, GPS. 300+ places per search, English or Korean, no API key.
Pricing
from $2.10 / 1,000 places
Rating
0.0
(0)
Developer
Clover
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
23 days ago
Last modified
Categories
Security
Limited permissionsShare
Naver Map scraper and Naver Place API (네이버 지도 · 네이버 플레이스 크롤링) for Korean business data, as clean, typed JSON. It covers restaurants, cafes, hotels, clinics, pharmacies, gyms, salons, shops and any other local business in South Korea, with ratings, review counts, opening hours, menus, phone numbers and GPS coordinates. No API key needed.
🇰🇷 한국어 요약 네이버 지도·네이버 플레이스의 업체 정보를 API 키 없이 JSON으로 수집합니다.
- 수집 항목: 상호명, 업종(카테고리), 주소·도로명주소, 전화번호, 위도·경도, 방문자 평점, 방문자 리뷰 수, 블로그 리뷰 수, 영업 상태, 네이버 예약·네이버페이 여부
- 상세 정보(
includeDetails): 요일별 영업시간, 메뉴와 가격, 가까운 지하철역·출구, 결제 수단, 리뷰 키워드- 검색당 최대 300곳, 지도 영역(
searchArea) 분할 검색으로 수천 곳 수집 가능- 한국어 또는 영어 결과 (
language: "en")- 맛집·카페 상권 분석, 경쟁사 조사, B2B 영업 리스트, 여행·지도 서비스, 평점·리뷰 모니터링에 활용
- 개인 휴대폰 번호(010)는 제외하고 사업자 번호만 수집합니다. 리뷰 본문과 작성자 정보는 수집하지 않습니다.
- 실패한 검색과 장소는 과금되지 않습니다. 장소 1곳당 $0.003부터.
예시 검색어:
강남역 맛집,홍대 카페,부산 해운대 호텔,제주 흑돼지,성수동 카페
Naver Map is the map Koreans actually use, and Google Maps covers Korean businesses poorly. If your product, research or sales pipeline needs Korean local data, this is the source.
It goes well beyond Naver's official Search API, which Naver limits to 5 places per search with no ratings or place IDs. See the comparison below.
This actor vs Naver's official Search API
| This actor | Naver's official Search API | |
|---|---|---|
| Data source | Naver Place, as used by the Naver Map website | Naver's official Search API (developers.naver.com) |
| Places per search | Up to 300, and thousands with a map-area sweep | 5 (Naver's hard limit for its official local search) |
| Place ID and Naver Map link | ✅ | ❌ (the official API doesn't return them) |
| Visitor rating, visitor and blog review counts | ✅ | ❌ |
| Open/closed status, amenities, booking and Naver Pay flags, image | ✅ | ❌ |
| Opening hours per day, menu with prices, subway exit, review themes | ✅ with includeDetails | ❌ |
| English output (Naver's own translation) | ✅ language: "en" | ❌ Korean only |
| Distance sort, map-area search, look up by place ID or link | ✅ | ❌ |
| Name, category, address, business phone, GPS coordinates | ✅ | ✅ |
| API key | Not needed | A Naver developer key (Client ID + Secret) |
When is the official API enough?
- Use this actor if you need more than a handful of places, ratings or review counts, IDs to track places over time, or English data. That's almost every use case.
- The official API can be enough if your compliance team requires data obtained only through Naver's official API, and 5 places per search with name, category, address, phone and coordinates covers your need.
Why teams choose this actor
It returns what you asked for. In our reliability test we searched 12 place categories across 8 Korean cities (restaurants, cafes, hotels, a Jeju speciality, hair salons, hospitals, pharmacies, gyms, pop-up stores, currency exchange, nail salons) and got:
- 20 places each, 240 in total, all unique, in 10 seconds
- 0 schema errors
- coordinates, category and street address on 100% of places
On Apify's servers we tested 8 more scenarios (Korean and English output, details, place ID lookup, distance sort, area sweep). 8 of 8 succeeded, with no rate limiting or blocking.
It goes past Naver's 300-place cap. Naver stops every search at 300 results. Give a map rectangle and the actor splits it into smaller cells until each holds fewer than 300 places. In our test, "카페" over Hongdae/Mapo returned 2,463 of the 2,464 places Naver reported for the area, all inside the box.
It fails loudly, never silently.
- Wrong input (coordinates outside Korea, a missing search center for distance sort) stops the run within seconds, with a message that says exactly what to fix.
- You're never charged for a failed place or search.
- If your run's spending limit is reached, the actor stops cleanly and tells you how far it got.
It's typed and consistent. Counts are integers, ratings and coordinates are numbers, flags are booleans. Field names are English; Korean text values are kept as they are. Every row has the same fields, so downstream code never breaks on a missing key.
It respects privacy. Only public business listing data is collected. Private mobile numbers that some sole traders display (010-…) are removed; only business lines and Naver's 0507 smart-call numbers are kept. In our 240-place test, 0 private mobiles reached the output. No review texts or reviewer identities are collected.
Example tasks
Ready-made searches you can run in one click and then edit (all examples):
Travel, food and hospitality
- Find top restaurants near Gangnam Station in English
- Compare hotels in Haeundae, Busan by rating and reviews
- Rank Jeju black pork restaurants by Naver reviews
- Get Myeongdong restaurant menus, prices and opening hours
Market research and leads
- Analyze cafe competitors in Seongsu-dong, Seoul
- Build a B2B lead list of Gangnam dermatology clinics
- Map every cafe in Hongdae with a Naver Map area sweep
Location features and monitoring
- Find the nearest pharmacies to a point in Seoul
- Monitor ratings and reviews of specific Naver places
Use cases
- Market sizing and competitor mapping. How many cafes are in Seongsu, how are they rated, and which are new?
- Location intelligence. Coordinates and categories for GIS, footfall and site-selection models.
- B2B lead lists. Korean businesses by area and category, business phone numbers only.
- Travel, food and expat apps. Places with English names, ratings, hours and menus.
- Monitoring. Schedule the actor and track ratings, review counts and open status by place ID.
- AI agents. One call answers "find the top-rated ramen places near Gangnam station" with structured data.
Input
| Field | Default | Description |
|---|---|---|
searchQueries | – | What you'd type into Naver Map: 강남역 맛집, 홍대 카페, 부산 해운대 호텔. Korean matches far more places. |
placeIds | – | Numeric IDs (1793702349) or map.naver.com / place.naver.com / naver.me links. |
maxResultsPerQuery | 50 | Places per search (Naver caps one search at 300; use searchArea for more). |
language | ko | en returns Naver's English names, categories, addresses and status. |
includeDetails | false | Adds details: hours per day, menu, description, links, keywords, payment methods, nearest subway, review themes. |
center | – | "latitude,longitude"; adds distance to each place. |
sortBy | relevance | distance = nearest to center first. |
searchArea | – | Map rectangle "minLng,minLat,maxLng,maxLat"; sweeps beyond 300 places. |
deduplicate | true | Output (and charge) each place once per run, even if several queries or map cells find it. |
requestDelayMs | 500 | Minimum pause between requests to Naver; raise it if you see HTTP 429. |
maxRetries | 3 | Retries per request on errors or rate limits, with backoff. |
proxyConfiguration | off | Optional. No proxy was needed in our tests. |
Invalid input (for example a center outside South Korea, or sortBy: "distance" without a center) stops the run within seconds with a message saying what to fix. Nothing is charged.
Example:
{ "searchQueries": ["홍대 카페", "부산 해운대 호텔"], "maxResultsPerQuery": 60, "language": "en", "includeDetails": true }
Output
One item per place. A real item from the default input (강남역 맛집):
{"placeId": "1793702349","name": "플랫나인","category": "요리주점","address": "서울특별시 서초구 서초동 1308-15 5층","roadAddress": "강남대로65길 10 5층","district": "서울 서초구 서초동","phone": "0507-1389-9630","latitude": 37.5005009,"longitude": 127.0249641,"rating": 4.84,"visitorReviewCount": 4364,"blogReviewCount": 3306,"saveCount": "111,000+","tagline": "음식과 음악이 만나는 완벽한 조화","amenities": ["단체 이용 가능", "예약", "무선 인터넷"],"businessStatus": "오늘 휴무","hasNaverBooking": true,"acceptsNaverPay": true,"wheelchairAccessible": true,"imageUrl": "https://ldb-phinf.pstatic.net/…/DSC_0519-93.jpg","placeUrl": "https://map.naver.com/p/entry/place/1793702349","searchQuery": "강남역 맛집","rank": 1,"language": "ko","scrapedAt": "2026-09-24T18:37:16.674Z"}
- With
language: "en":"name": "FLATNINE","category": "Pub","address": "1308-15 Seocho-dong Seocho-gu Seoul". - With
includeDetails: true, each item also gets adetailsobject:openingHours: per day, with breaks and last ordermenu: name, price, representative flagnearestSubway: station, line, exit, walking minutes and metres- plus
description,links,keywords,paymentMethods,reviewThemesandphotoCount
The dataset has two views: Overview (rank, query, name, category, rating, review counts, phone, address, status, link) and Locations (name, category, latitude, longitude, address, distance). Export either as JSON, CSV, Excel or HTML.
Pricing
Pay per result. You're never charged for the actor start, and never for failed places or searches.
| Apify subscription | Per place | Per 1,000 places |
|---|---|---|
| Free | $0.0030 | $3.00 |
| Bronze | $0.0027 | $2.70 |
| Silver | $0.0024 | $2.40 |
| Gold and above | $0.0021 | $2.10 |
Details are included in the price. Other actors charge extra per detail page or add a start fee.
Examples (Free plan):
- 100 restaurants with hours and menus: $0.30
- A full district sweep of about 2,500 cafes: about $7.50
Use it from code, n8n or an AI agent
API (JavaScript):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('clover_engineer/naver-map-places-enhanced').call({searchQueries: ['강남역 맛집'], maxResultsPerQuery: 20, language: 'en',});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Python:
from apify_client import ApifyClientclient = ApifyClient("<APIFY_TOKEN>")run = client.actor("clover_engineer/naver-map-places-enhanced").call(run_input={"searchQueries": ["홍대 카페"], "maxResultsPerQuery": 20, "language": "en"})items = client.dataset(run["defaultDatasetId"]).list_items().items
n8n / Make / Zapier: use the Apify integration and choose "Run Actor and get dataset items" with the input above.
AI agents (MCP): add this actor to the Apify MCP server. An agent can turn "top-rated ramen near Gangnam Station, in English" into {"searchQueries": ["강남역 라멘"], "language": "en"}. Korean queries match far more places, so let the agent translate the place and category.
Limits and notes
- Naver's official Search API is limited by Naver to 5 places per search, with no paging and no place IDs. This actor doesn't have that limit.
- This actor:
- It reads Naver Place's public web endpoints, which Naver can change without notice. The actor retries with backoff and reports clearly if Naver blocks it; a proxy can be enabled.
- 300 places per search is Naver's cap; use
searchAreaor narrower queries to get more.
ratingisnullwhen Naver shows no score. In our 240-place test that was 61% of places, typical for cafes, clinics and new places. Review counts are still given: 91% had visitor reviews.detailscome from the place page, which Naver serves in Korean only, even withlanguage: "en".- Detail pages are rate-limited more strictly than search. For very large detail runs, keep the default delay.
- Use of the data must comply with Naver's terms and applicable law (e.g. Korea's PIPA).
FAQ
Is this a Naver Map scraper or a Naver Map API? Both: it scrapes the public Naver Map / Naver Place listings and returns them through Apify's API, so you can call it like a Naver Place API from code, n8n, Make, Zapier or an AI agent.
네이버 지도 크롤링에 API 키가 필요한가요? 아니요. 네이버 계정이나 개발자 키 없이 검색어(예: 강남역 맛집)나 플레이스 ID·링크만 입력하면 됩니다.
영어로 결과를 받을 수 있나요? 네. language: "en"으로 설정하면 상호명, 업종, 주소가 네이버의 영어 번역으로 출력됩니다. 검색어는 한국어가 훨씬 많은 결과를 찾습니다.
Is this allowed? It reads publicly visible business listings the way the Naver Map website does, without logging in and without collecting personal data. If your organisation requires officially licensed access only, use Naver's official Search API with your own developer key (limited by Naver to 5 places per search).
Do I need an API key? No. No Naver account or key is needed.
How is this different from Naver's official Search API? The official local search API returns at most 5 places per search, with name, category, address, phone and coordinates only. This actor returns up to 300 per search (more with searchArea), with IDs, ratings, review counts, status, English output and optional hours and menus.
Can I search in English? Yes, but Korean queries match far more places: Naver reported 78 matches for "Gangnam cafe" and 2,530 for "홍대 카페". Use language: "en" to get English output.
How do I get searchArea coordinates? Take the south-west corner (min longitude, min latitude) and the north-east corner (max longitude, max latitude); longitude comes first. Seoul is roughly longitude 126.8–127.2, latitude 37.4–37.7.
Does it collect review texts? No, only ratings, counts and review-theme counts.
Why fewer places than maxResultsPerQuery? Naver had fewer matches, the 300 cap applied (use searchArea), or deduplicate skipped places already returned.