Naver Place Scraper - Korea Local Business & Map Data
Pricing
from $1.50 / 1,000 results
Naver Place Scraper - Korea Local Business & Map Data
Naver Place & Naver Map scraper (Korea): search local businesses by area + keyword and export name, category, address, phone, rating, visitor & blog review counts, hours and GPS coordinates. Korea local-business lead generation and market data — fast, no login.
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
Haketa
Maintained by CommunityActor stats
0
Bookmarked
30
Total users
2
Monthly active users
a day ago
Last modified
Categories
Features
Share
Naver Place Scraper 🇰🇷 — Korea Local Business, Reviews & Map Data
Extract local business data from Naver Place / Naver Map — South Korea's #1 local business directory and mapping platform — as clean, structured records. This Naver Place scraper lets you scrape Naver Place by area + keyword (e.g., 강남 맛집 / "Gangnam restaurants", 홍대 카페 / "Hongdae cafes", 제주 호텔 / "Jeju hotels") and exports business name, category, road-name & jibun (lot) addresses, contact phone numbers, visitor rating score, visitor & blog/cafe review counts, operating hours, GPS coordinates, amenities, Naver Booking & Naver Pay flags, and high-resolution photo URLs — with no login and no coding.
Export your South Korean business dataset to JSON, CSV, Excel, XML, HTML, or via the Apify API for B2B lead generation, retail site selection, F&B market intelligence, and travel/hospitality applications.
⚡ At a glance
| Feature | Details |
|---|---|
| Target platform | Naver Place / Naver Map — South Korea's primary local search directory |
| Supported verticals | Restaurants & cafes (restaurant), All places (place), Hair & beauty salons (hairshop), Hospitals & clinics (hospital), Attractions (attraction) |
| Search format | Korean area + keyword queries (e.g., 강남 맛집, 성수 카페, 부산 호텔, 서울 피부과) — multiple queries per run |
| Contact & location data | Usable phone, virtualPhone (Naver 0507 safe number), landlinePhone, 4 Korean address formats (roadAddress, address, commonAddress, fullAddress), and exact WGS84 latitude / longitude |
| Reputation metrics | visitorReviewScore (5-point rating), visitorReviewCount, blogCafeReviewCount, bookingReviewCount, totalReviewCount, and michelinGuide |
| Pagination & scale | ~50 places per page; automatic multi-page traversal (maxPagesPerQuery: 0 auto/unlimited) with 100% placeId de-duplication |
| Proxy setup | Pre-configured with South Korea (KR) Residential proxy and automatic session/IP rotation |
| Output formats | JSON, CSV, Excel (XLSX), XML, HTML, and Apify REST API |
📋 Table of contents
- Why scrape Naver Place instead of Google Maps?
- What this Naver Place scraper does
- Use cases
- Input configuration
- Output & field reference
- Pagination & 1,000+ scale
- How to use
- Pro tips for Korean local business scraping
- FAQ
- Related scrapers
- Changelog
🔎 Why scrape Naver Place instead of Google Maps?
In South Korea, Google Maps has restricted domestic coverage due to Korean geospatial data regulations. As a result, Korean consumers and businesses rely overwhelmingly on Naver Map and Naver Place to discover restaurants, cafes, retail stores, beauty salons, medical clinics, and tourist attractions. Every active Korean merchant maintains a detailed Naver Place profile with verified addresses, safe call routing numbers, Naver Pay / Naver Booking integration, receipt-verified visitor reviews, and Naver Blog/Cafe review links.
Global map scrapers miss the vast majority of South Korean merchants, review counts, and Korean road-name (도로명) vs. lot (지번) address structures. Meanwhile, collecting Naver Place listings manually is impractical across hundreds of neighborhoods (동 / 구) and business categories.
This Naver Place data extractor automates the entire pipeline. Pass a list of Korean search queries and receive a clean, de-duplicated dataset ready for CRM import, geospatial mapping, or competitive intelligence.
Key business outcomes
- 📇 South Korea B2B lead generation — build targeted outreach lists of Korean restaurants, cafes, salons, clinics, and shops with phone numbers (
phone) and four normalized address formats. - 📊 F&B & retail competitive intelligence — benchmark competitor density, average visitor ratings (
visitorReviewScore), receipt-verified review volume (visitorReviewCount), and blog buzz (blogCafeReviewCount) by district. - 🗺️ GIS, site selection & territory planning — plot exact
latitudeandlongitudecoordinates alongside review volume to spot high-footfall commercial zones and underserved neighborhoods. - 🍽️ Travel, dining & K-culture directories — power multilingual travel apps, concierge bots, and K-food guides with live Korean venue data, Michelin indicators, amenities (
options), and photo galleries. - 💳 POS, payment & booking SaaS prospecting — filter merchants by
hasBookingandhasNPayto identify businesses that have or have not adopted digital booking and Naver Pay.
✨ What this Naver Place scraper does
- ✅ Multi-query area + keyword search — run dozens of Korean search queries (e.g.,
강남 맛집,홍대 카페,이태원 바,명동 화장품,해운대 호텔) in a single job. - ✅ Five dedicated Naver Place verticals — target Restaurants & cafes (
restaurant), All places (general) (place), Hair & beauty salons (hairshop), Hospitals & clinics (hospital), or Attractions & things to do (attraction). - ✅ Unlocked 1,000+ pagination & smart early-stop — pages through each query (~50 businesses per page) until
maxItemsis reached,maxPagesPerQueryis hit, or Naver stops returning new unique businesses for that query. - ✅ Cross-query de-duplication — every business is de-duplicated by its canonical Naver
placeId, guaranteeing 0 duplicate records even when adjacent neighborhood searches overlap. - ✅ Complete Korean address & GPS coverage — captures road-name address (
roadAddress), lot/jibun address (address), district/dong summary (commonAddress), full administrative address (fullAddress), and WGS84latitude/longitude. - ✅ Multi-channel review & reputation metrics — extracts
visitorReviewScore,visitorReviewCount(receipt-verified reviews),blogCafeReviewCount(Naver Blog & Cafe posts),bookingReviewCount, and computedtotalReviewCount. - ✅ Built-in Korean IP & session management — pre-configured for KR Residential proxies with automatic cookie warm-up and IP rotation on rate limits.
🎯 Use cases
| Audience | How they use Naver Place data |
|---|---|
| 📇 B2B Sales & Lead-Gen Agencies | Build segmented prospect lists of Korean SMBs (restaurants, clinics, salons, retail) with phone numbers, addresses, and digital adoption signals (hasBooking, hasNPay). |
| 🍽️ F&B Brands & Delivery Platforms | Map restaurant categories, review velocity, and neighborhood saturation across Seoul, Busan, Incheon, Daegu, and Jeju. |
| 🧳 Travel, OTA & K-Tourism Apps | Enrich travel guides with accurate Korean venue names, GPS pins, operating hours (newBusinessHours), amenities (options), and photo galleries (imageUrls). |
| 🏢 Franchise & Real Estate Analysts | Combine latitude/longitude coordinates and totalReviewCount to evaluate commercial foot traffic before opening new store locations. |
| 🏥 Healthcare & Beauty Marketplaces | Extract dermatology clinics, dental practices, plastic surgery centers (hospital), and hair/nail studios (hairshop) with ratings and review counts. |
| 🤖 AI & Dataset Engineering Teams | Feed structured, up-to-date Korean POI (Point of Interest) data into LLMs, RAG pipelines, and recommendation engines. |
📥 Input configuration
Configure the Naver Place scraper via the Apify Console form or JSON input. All fields are optional — leaving queries empty runs a built-in sample of 8 popular South Korean search queries so you can inspect the output structure immediately.
| Field | Type | Default | Description |
|---|---|---|---|
queries | array | 3 prefilled queries | Korean search terms combining an area + keyword (e.g., "강남 맛집", "홍대 카페", "제주 호텔"). Each entry is searched and paginated independently. Leave empty for an 8-query Korean sample. |
searchType | string | "restaurant" | Naver Place section to query: "restaurant" (Restaurants & cafes), "place" (All places / general businesses), "hairshop" (Hair & beauty salons), "hospital" (Hospitals & clinics), or "attraction" (Attractions & things to do). |
maxItems | integer | 0 (prefill 100) | Maximum total places to collect across all queries (0 = unlimited). |
maxPagesPerQuery | integer | 0 | Maximum result pages to crawl per query (~50 places per page). Set 0 for automatic / unlimited pagination governed by maxItems. |
maxConcurrency | integer | 2 | Number of queries/pages processed in parallel (1–6). Keep at 2 for optimal stability against Naver's per-IP rate limiter. |
proxyConfiguration | object | KR Residential | Proxy configuration. South Korean (KR) Residential proxy is required so Naver serves complete domestic business listings. |
Example 1 — Multi-district Seoul restaurant & cafe sweep (1,000+ places)
{"queries": ["강남 맛집","홍대 맛집","성수 카페","이태원 맛집","명동 맛집","연남동 카페","여의도 맛집","잠실 맛집"],"searchType": "restaurant","maxItems": 1000,"maxPagesPerQuery": 0,"maxConcurrency": 2,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "KR"}}
Example 2 — Seoul beauty & hair salons (hairshop vertical)
{"queries": ["강남 미용실", "홍대 미용실", "청담동 미용실", "건대 미용실"],"searchType": "hairshop","maxItems": 500,"maxPagesPerQuery": 0}
Example 3 — Medical clinics & dental practices (hospital vertical)
{"queries": ["강남 피부과", "강남 치과", "서초 안과", "부산 성형외과"],"searchType": "hospital","maxItems": 400}
📤 Output & field reference
Each business is emitted as a normalized JSON object. Below is a real record captured from a live run for 강남 맛집 (Gangnam restaurants):
{"placeId": "2083987873","name": "이자카야 고코 선릉점","category": "이자카야","businessCategory": "bar","description": null,"roadAddress": "선릉로86길 37 2층 이자카야 고코 선릉점","address": "대치동 890-45","commonAddress": "서울 강남구 대치동","fullAddress": "서울특별시 강남구 대치동 890-45 2층 이자카야 고코 선릉점","phone": "0507-1377-5658","landlinePhone": null,"virtualPhone": "0507-1377-5658","latitude": 37.5041178,"longitude": 127.0526968,"visitorReviewScore": 4.97,"visitorReviewCount": 99,"blogCafeReviewCount": 120,"bookingReviewCount": 0,"totalReviewCount": 219,"businessHours": null,"newBusinessHours": {"status": "영업 전","description": "11:00에 영업 시작"},"options": "단체 이용 가능,포장,예약,무선 인터넷,남/녀 화장실 구분,대기공간","hasBooking": true,"bookingUrl": null,"hasNPay": false,"michelinGuide": null,"imageUrl": "https://ldb-phinf.pstatic.net/20260918_105/.../KakaoTalk_20250709_233928108.jpg","imageCount": 62,"imageUrls": ["https://ldb-phinf.pstatic.net/20260918_105/.../KakaoTalk_20250709_233928108.jpg","https://ldb-phinf.pstatic.net/20261018_249/.../KakaoTalk_20261018_150849860.jpg"],"placeUrl": "https://map.naver.com/p/entry/place/2083987873","mobileUrl": "https://m.place.naver.com/restaurant/2083987873/home","searchQuery": "강남 맛집","scrapedAt": "2026-11-01T23:48:42.739Z"}
Field reference by category
🏷️ Identity & categorization
| Field | Type | Coverage | Description |
|---|---|---|---|
placeId | string | 🟢 High (100%) | Unique Naver Place numeric ID (used as the primary key for de-duplication). |
name | string | 🟢 High (100%) | Official business display name on Naver Place. |
category | string | 🟢 High (100%) | Granular Korean business category (e.g., 일식당, 카페,디저트, 미용실, 피부과). |
businessCategory | string | 🟢 High (100%) | Internal Naver vertical classification (e.g., restaurant, bar, hospital). |
description | string | null | 🟡 Conditional | Short merchant promotional tagline or intro when published on the listing card. |
searchQuery | string | 🟢 High (100%) | The exact input search query that surfaced this business. |
scrapedAt | string | 🟢 High (100%) | ISO 8601 UTC timestamp indicating when the record was scraped. |
📍 Korean addresses & GPS coordinates
| Field | Type | Coverage | Description |
|---|---|---|---|
roadAddress | string | null | 🟢 High (~100%) | Korean street/road-name address (도로명주소), e.g., "선릉로86길 37 2층". |
address | string | null | 🟢 High (~100%) | Traditional lot/jibun address (지번주소), e.g., "대치동 890-45". |
commonAddress | string | null | 🟢 High (100%) | Province/city + district (구/시) + neighborhood (동), e.g., "서울 강남구 대치동". |
fullAddress | string | null | 🟢 High (~100%) | Complete administrative address string. |
latitude | number | null | 🟢 High (100%) | WGS84 GPS latitude (y coordinate). |
longitude | number | null | 🟢 High (100%) | WGS84 GPS longitude (x coordinate). |
📞 Contact numbers & links
| Field | Type | Coverage | Description |
|---|---|---|---|
phone | string | null | 🟢 High (~92%) | Primary callable phone number (prefers landlinePhone, falls back to virtualPhone). |
virtualPhone | string | null | 🟡 Conditional (~68%) | Naver 0507-xxxx-xxxx safe call-forwarding number assigned to the merchant. |
landlinePhone | string | null | 🟡 Conditional (~24%) | Direct landline or mobile number when publicly exposed alongside or instead of a virtual number. |
placeUrl | string | 🟢 High (100%) | Desktop Naver Map URL (https://map.naver.com/p/entry/place/{placeId}). |
mobileUrl | string | 🟢 High (100%) | Mobile Naver Place URL (https://m.place.naver.com/{searchType}/{placeId}/home). |
⭐ Ratings & review counts
| Field | Type | Coverage | Description |
|---|---|---|---|
visitorReviewScore | number | null | 🟡 Conditional (~57%) | Average receipt-verified visitor star rating (out of 5.0). Populated whenever Naver displays a public rating score. |
visitorReviewCount | number | null | 🟢 High (~99.5%) | Count of receipt/payment-verified visitor reviews (방문자 리뷰). |
blogCafeReviewCount | number | null | 🟢 High (100%) | Count of Naver Blog and Naver Cafe review articles (블로그 리뷰) mentioning the place. |
bookingReviewCount | number | null | 🟢 High (100%) | Count of reviews left via Naver Booking (예약자 리뷰). |
totalReviewCount | number | null | 🟢 High (~99.8%) | Combined total review count across visitor, blog/cafe, and booking reviews. |
michelinGuide | object | null | 🟡 Conditional | Michelin Guide badge metadata when the restaurant is listed in the Michelin Guide Seoul/Busan. |
🕒 Operating hours, booking, payments & media
| Field | Type | Coverage | Description |
|---|---|---|---|
newBusinessHours | object | null | 🟢 High (~100%) | Structured real-time operating status (e.g., status: "영업 중", description: "22:00에 영업 종료"). |
businessHours | string | null | 🟡 Conditional | Legacy raw hours string when provided. |
options | string | null | 🟢 High (~96%) | Comma-separated Korean amenities (e.g., 주차, 포장, 예약, 무선 인터넷, 배달, 단체 이용 가능). |
hasBooking | boolean | null | 🟡 Conditional (~52%) | Whether the merchant accepts online reservations via Naver Booking. |
bookingUrl | string | null | 🟡 Conditional | External or Naver Booking URL when exposed. |
hasNPay | boolean | 🟢 High (100%) | Whether the merchant supports Naver Pay (네이버페이). |
imageUrl | string | null | 🟢 High (~99.8%) | Primary storefront or dish thumbnail image URL. |
imageCount | number | null | 🟢 High (100%) | Total number of photos available on the place profile. |
imageUrls | array | null | 🟢 High (~99.8%) | Array of high-resolution photo URLs from the listing card. |
🔁 Pagination & 1,000+ scale
This Naver Place scraper is built for high-volume Korean directory extraction without slow browser overhead:
- ** ~50 businesses per page:** Each list request returns up to 50 full business records in a single HTTP round-trip — no individual per-place detail requests are required.
- Unlocked
maxPagesPerQuery: 0default: WhenmaxPagesPerQueryis0(the default), the scraper automatically continues paging (?page=1,?page=2,?page=3…) untilmaxItemsis satisfied or the query has no further unique places. - Smart duplicate-page detection: On very deep pages, Naver occasionally repeats the final page of results. As soon as a page yields zero new unique
placeIds, the actor stops paging that query and advances immediately to the next query — saving proxy traffic and run time. - Scaling to 1,000–10,000+ Korean businesses: Because any single area+keyword query in Naver typically returns 200–300 unique places (4–6 pages), combine multiple district/dong queries in
queries(e.g., all 25구of Seoul or top commercial neighborhoods) withmaxItems: 2000(or0) to collect thousands of unique venues in one run.
⚙️ How to use
- Open the actor in the Apify Console.
- Enter your Korean
queries— combine a neighborhood/city with a business keyword (e.g.,강남 맛집,성수 카페,해운대 횟집,판교 IT). - Select
searchType— choose Restaurants & cafes, All places (general), Hair & beauty salons, Hospitals & clinics, or Attractions. - Set
maxItems— e.g.,100for a quick test,1000for a deep regional sweep, or0for unlimited. - Keep the default
KRResidential proxy and click Start. - Download or integrate — export your dataset as JSON, CSV, Excel (XLSX), XML, or HTML, or fetch items programmatically via the Apify API.
Calling via the Apify API (Python)
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("haketa/naver-place-scraper").call(run_input={"queries": ["강남 맛집", "홍대 카페", "성수 카페", "이태원 맛집"],"searchType": "restaurant","maxItems": 500,"maxPagesPerQuery": 0,})for place in client.dataset(run["defaultDatasetId"]).iterate_items():print(place["placeId"], place["name"], place["phone"], place["roadAddress"])
Calling via the Apify API (Node.js)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('haketa/naver-place-scraper').call({queries: ['강남 맛집', '홍대 카페', '제주 호텔'],searchType: 'restaurant',maxItems: 500,maxPagesPerQuery: 0,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Collected ${items.length} South Korean businesses from Naver Place.`);
Popular Korean area + keyword combinations (queries cheatsheet)
| Korean Query | English Meaning | Recommended searchType |
|---|---|---|
강남 맛집 / 홍대 맛집 / 명동 맛집 | Gangnam / Hongdae / Myeongdong restaurants | restaurant |
성수 카페 / 연남동 카페 / 제주 카페 | Seongsu / Yeonnam-dong / Jeju cafes | restaurant |
강남 미용실 / 청담동 네일샵 | Gangnam hair salons / Cheongdam nail salons | hairshop |
강남 피부과 / 서초 치과 / 압구정 성형외과 | Gangnam dermatology / Seocho dental / Apgujeong plastic surgery | hospital |
부산 호텔 / 제주 펜션 / 경주 가볼만한곳 | Busan hotels / Jeju pensions / Gyeongju attractions | place or attraction |
강남 헬스장 / 판교 공유오피스 | Gangnam gyms / Pangyo coworking spaces | place |
💡 Pro tips for Korean local business scraping
- 🇰🇷 Always keep the South Korea (
KR) Residential proxy enabled: Naver restricts non-Korean IPs and applies strict per-IP rate limits. The defaultKRresidential proxy configuration with automatic session rotation is essential for reliable results. - 🗺️ Slice large cities by district (
구) or neighborhood (동): Instead of a broad query like서울 식당(Seoul restaurants), pass granular neighborhood queries (강남역 맛집,역삼동 맛집,신사동 맛집,압구정 맛집) to capture 5–10× more unique venues across Seoul. - 🏢 Use
searchType: "place"for general B2B categories: When scraping gyms (헬스장), academies (학원), real estate offices (부동산), pharmacies (약국), or retail stores, switchsearchTypefrom"restaurant"to"place". - 🐢 Keep
maxConcurrencyat2: Naver's rate limiter is sensitive to burst traffic from a single session. A concurrency of2delivers ~100–200 places per minute cleanly without triggering unnecessary retries.
❓ FAQ
Why do I need a Korean (KR) residential proxy?
Naver Place serves domestic Korean business data and actively throttles or blocks requests originating outside South Korea or from datacenter subnets. The actor defaults to Apify's KR Residential proxy pool so it works out of the box.
Do I need a Naver account or API key?
No. The scraper extracts public Naver Place listings directly without requiring a Naver login, developer application, or API key.
What is the difference between phone, virtualPhone, and landlinePhone?
Many South Korean merchants use Naver's free 0507-xxxx-xxxx safe call-routing service (virtualPhone) to protect against spam while still receiving customer calls. The phone field always gives you a ready-to-dial number (preferring landlinePhone when present, and falling back to virtualPhone).
Can I search in English?
Naver Place is a Korean-language index. While a few major hotels or landmarks match English names, you will get 10–50× more results by using Korean area + category terms (e.g., 강남 맛집 instead of "Gangnam restaurant", 서울 카페 instead of "Seoul cafe").
How many places can I extract per run?
Each page returns ~50 places, and with maxPagesPerQuery: 0 the scraper pages automatically until all unique results for each query are collected or maxItems is reached. By passing 10–30 neighborhood queries, you can easily collect 1,000 to 5,000+ unique Korean businesses in a single run.
🔗 Related scrapers
Building an Asia-Pacific or global B2B local-business pipeline? Pair Naver Place Scraper with our other extractors:
- 🇰🇷 Kakao Map Scraper — South Korea's second-largest map & local business directory.
- 🇹🇭 Wongnai Scraper — Thailand's #1 restaurant and local business platform with phone, email, LINE & GPS.
- 🏢 D&B Scraper — Global B2B company firmographics from Dun & Bradstreet.
- ⭐ BBB Scraper — Accredited business profiles, ratings, and contacts from the Better Business Bureau.
- 🎥 YouTube Contact Scraper — Extract creator business emails and social links from YouTube channels.
📋 Changelog
v1.2 (2026-11)
- Unlocked 1,000+ pagination: Changed
maxPagesPerQuerydefault from10to0(automatic/unlimited, governed bymaxItems) so deep multi-page queries paginate untilmaxItemsis reached or all unique places are exhausted. - Improved default-run logging & documentation: Expanded README with Korean vertical examples, field coverage indicators, and multi-district scaling strategies.
v1.1 (2026-10)
- Resilient session & review fallback: Added automatic proxy rotation on
590tunnel /429responses and automatictotalReviewCountsummation when Naver omits the explicit total counter. - Phone normalization: Exposed
phone,virtualPhone, andlandlinePhoneside by side for maximum lead-gen utility.
v1.0 (2026-05)
- Initial release supporting Korean area + keyword search across 5 Naver Place verticals (
restaurant,place,hairshop,hospital,attraction).