Naver Place Scraper - Korea Local Business & Map Data avatar

Naver Place Scraper - Korea Local Business & Map Data

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Naver Place Scraper - Korea Local Business & Map Data

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

Haketa

Maintained by Community

Actor stats

0

Bookmarked

30

Total users

2

Monthly active users

a day ago

Last modified

Features

Limited permissions

Share

Apify Actor Target

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

FeatureDetails
Target platformNaver Place / Naver Map — South Korea's primary local search directory
Supported verticalsRestaurants & cafes (restaurant), All places (place), Hair & beauty salons (hairshop), Hospitals & clinics (hospital), Attractions (attraction)
Search formatKorean area + keyword queries (e.g., 강남 맛집, 성수 카페, 부산 호텔, 서울 피부과) — multiple queries per run
Contact & location dataUsable phone, virtualPhone (Naver 0507 safe number), landlinePhone, 4 Korean address formats (roadAddress, address, commonAddress, fullAddress), and exact WGS84 latitude / longitude
Reputation metricsvisitorReviewScore (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 setupPre-configured with South Korea (KR) Residential proxy and automatic session/IP rotation
Output formatsJSON, CSV, Excel (XLSX), XML, HTML, and Apify REST API

📋 Table of contents


🔎 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 latitude and longitude coordinates 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 hasBooking and hasNPay to 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 maxItems is reached, maxPagesPerQuery is 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 WGS84 latitude / longitude.
  • ✅ Multi-channel review & reputation metrics — extracts visitorReviewScore, visitorReviewCount (receipt-verified reviews), blogCafeReviewCount (Naver Blog & Cafe posts), bookingReviewCount, and computed totalReviewCount.
  • ✅ 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

AudienceHow they use Naver Place data
📇 B2B Sales & Lead-Gen AgenciesBuild segmented prospect lists of Korean SMBs (restaurants, clinics, salons, retail) with phone numbers, addresses, and digital adoption signals (hasBooking, hasNPay).
🍽️ F&B Brands & Delivery PlatformsMap restaurant categories, review velocity, and neighborhood saturation across Seoul, Busan, Incheon, Daegu, and Jeju.
🧳 Travel, OTA & K-Tourism AppsEnrich travel guides with accurate Korean venue names, GPS pins, operating hours (newBusinessHours), amenities (options), and photo galleries (imageUrls).
🏢 Franchise & Real Estate AnalystsCombine latitude/longitude coordinates and totalReviewCount to evaluate commercial foot traffic before opening new store locations.
🏥 Healthcare & Beauty MarketplacesExtract dermatology clinics, dental practices, plastic surgery centers (hospital), and hair/nail studios (hairshop) with ratings and review counts.
🤖 AI & Dataset Engineering TeamsFeed 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.

FieldTypeDefaultDescription
queriesarray3 prefilled queriesKorean search terms combining an area + keyword (e.g., "강남 맛집", "홍대 카페", "제주 호텔"). Each entry is searched and paginated independently. Leave empty for an 8-query Korean sample.
searchTypestring"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).
maxItemsinteger0 (prefill 100)Maximum total places to collect across all queries (0 = unlimited).
maxPagesPerQueryinteger0Maximum result pages to crawl per query (~50 places per page). Set 0 for automatic / unlimited pagination governed by maxItems.
maxConcurrencyinteger2Number of queries/pages processed in parallel (1–6). Keep at 2 for optimal stability against Naver's per-IP rate limiter.
proxyConfigurationobjectKR ResidentialProxy 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
FieldTypeCoverageDescription
placeIdstring🟢 High (100%)Unique Naver Place numeric ID (used as the primary key for de-duplication).
namestring🟢 High (100%)Official business display name on Naver Place.
categorystring🟢 High (100%)Granular Korean business category (e.g., 일식당, 카페,디저트, 미용실, 피부과).
businessCategorystring🟢 High (100%)Internal Naver vertical classification (e.g., restaurant, bar, hospital).
descriptionstring | null🟡 ConditionalShort merchant promotional tagline or intro when published on the listing card.
searchQuerystring🟢 High (100%)The exact input search query that surfaced this business.
scrapedAtstring🟢 High (100%)ISO 8601 UTC timestamp indicating when the record was scraped.
📍 Korean addresses & GPS coordinates
FieldTypeCoverageDescription
roadAddressstring | null🟢 High (~100%)Korean street/road-name address (도로명주소), e.g., "선릉로86길 37 2층".
addressstring | null🟢 High (~100%)Traditional lot/jibun address (지번주소), e.g., "대치동 890-45".
commonAddressstring | null🟢 High (100%)Province/city + district (구/시) + neighborhood (동), e.g., "서울 강남구 대치동".
fullAddressstring | null🟢 High (~100%)Complete administrative address string.
latitudenumber | null🟢 High (100%)WGS84 GPS latitude (y coordinate).
longitudenumber | null🟢 High (100%)WGS84 GPS longitude (x coordinate).
FieldTypeCoverageDescription
phonestring | null🟢 High (~92%)Primary callable phone number (prefers landlinePhone, falls back to virtualPhone).
virtualPhonestring | null🟡 Conditional (~68%)Naver 0507-xxxx-xxxx safe call-forwarding number assigned to the merchant.
landlinePhonestring | null🟡 Conditional (~24%)Direct landline or mobile number when publicly exposed alongside or instead of a virtual number.
placeUrlstring🟢 High (100%)Desktop Naver Map URL (https://map.naver.com/p/entry/place/{placeId}).
mobileUrlstring🟢 High (100%)Mobile Naver Place URL (https://m.place.naver.com/{searchType}/{placeId}/home).
⭐ Ratings & review counts
FieldTypeCoverageDescription
visitorReviewScorenumber | null🟡 Conditional (~57%)Average receipt-verified visitor star rating (out of 5.0). Populated whenever Naver displays a public rating score.
visitorReviewCountnumber | null🟢 High (~99.5%)Count of receipt/payment-verified visitor reviews (방문자 리뷰).
blogCafeReviewCountnumber | null🟢 High (100%)Count of Naver Blog and Naver Cafe review articles (블로그 리뷰) mentioning the place.
bookingReviewCountnumber | null🟢 High (100%)Count of reviews left via Naver Booking (예약자 리뷰).
totalReviewCountnumber | null🟢 High (~99.8%)Combined total review count across visitor, blog/cafe, and booking reviews.
michelinGuideobject | null🟡 ConditionalMichelin Guide badge metadata when the restaurant is listed in the Michelin Guide Seoul/Busan.
🕒 Operating hours, booking, payments & media
FieldTypeCoverageDescription
newBusinessHoursobject | null🟢 High (~100%)Structured real-time operating status (e.g., status: "영업 중", description: "22:00에 영업 종료").
businessHoursstring | null🟡 ConditionalLegacy raw hours string when provided.
optionsstring | null🟢 High (~96%)Comma-separated Korean amenities (e.g., 주차, 포장, 예약, 무선 인터넷, 배달, 단체 이용 가능).
hasBookingboolean | null🟡 Conditional (~52%)Whether the merchant accepts online reservations via Naver Booking.
bookingUrlstring | null🟡 ConditionalExternal or Naver Booking URL when exposed.
hasNPayboolean🟢 High (100%)Whether the merchant supports Naver Pay (네이버페이).
imageUrlstring | null🟢 High (~99.8%)Primary storefront or dish thumbnail image URL.
imageCountnumber | null🟢 High (100%)Total number of photos available on the place profile.
imageUrlsarray | 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:

  1. ** ~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.
  2. Unlocked maxPagesPerQuery: 0 default: When maxPagesPerQuery is 0 (the default), the scraper automatically continues paging (?page=1, ?page=2, ?page=3…) until maxItems is satisfied or the query has no further unique places.
  3. 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.
  4. 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) with maxItems: 2000 (or 0) to collect thousands of unique venues in one run.

⚙️ How to use

  1. Open the actor in the Apify Console.
  2. Enter your Korean queries — combine a neighborhood/city with a business keyword (e.g., 강남 맛집, 성수 카페, 해운대 횟집, 판교 IT).
  3. Select searchType — choose Restaurants & cafes, All places (general), Hair & beauty salons, Hospitals & clinics, or Attractions.
  4. Set maxItems — e.g., 100 for a quick test, 1000 for a deep regional sweep, or 0 for unlimited.
  5. Keep the default KR Residential proxy and click Start.
  6. 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 ApifyClient
client = 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.`);
Korean QueryEnglish MeaningRecommended searchType
강남 맛집 / 홍대 맛집 / 명동 맛집Gangnam / Hongdae / Myeongdong restaurantsrestaurant
성수 카페 / 연남동 카페 / 제주 카페Seongsu / Yeonnam-dong / Jeju cafesrestaurant
강남 미용실 / 청담동 네일샵Gangnam hair salons / Cheongdam nail salonshairshop
강남 피부과 / 서초 치과 / 압구정 성형외과Gangnam dermatology / Seocho dental / Apgujeong plastic surgeryhospital
부산 호텔 / 제주 펜션 / 경주 가볼만한곳Busan hotels / Jeju pensions / Gyeongju attractionsplace or attraction
강남 헬스장 / 판교 공유오피스Gangnam gyms / Pangyo coworking spacesplace

💡 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 default KR residential 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, switch searchType from "restaurant" to "place".
  • 🐢 Keep maxConcurrency at 2: Naver's rate limiter is sensitive to burst traffic from a single session. A concurrency of 2 delivers ~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.


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 maxPagesPerQuery default from 10 to 0 (automatic/unlimited, governed by maxItems) so deep multi-page queries paginate until maxItems is 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 590 tunnel / 429 responses and automatic totalReviewCount summation when Naver omits the explicit total counter.
  • Phone normalization: Exposed phone, virtualPhone, and landlinePhone side 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).
⌂ 换网址