Naver Map Scraper $1💰 Places, Menus, Reviews
Pricing
from $1.00 / 1,000 place results
Naver Map Scraper $1💰 Places, Menus, Reviews
From $1/1K. Scrape Naver Map places by keyword or URL: names, categories, ratings, phones, addresses, GPS, menus, opening hours, facilities, subway and bus transit, photos, plus visitor and blog reviews. 70+ fields, full pagination, three sort orders, fast and low cost.
Pricing
from $1.00 / 1,000 place results
Rating
0.0
(0)
Developer
AbotAPI
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Naver Map Scraper
Extract structured place data from Naver Map (map.naver.com), Korea's most-used maps and local search service. Search by keyword or paste place URLs, and get names, categories, ratings, phone numbers, addresses, GPS coordinates, menus, opening hours, facilities, nearby subway and bus stops, photos, and both visitor and blog reviews. The scraper is HTTP-only, runs on low-cost datacenter connections, and paginates each keyword to its full result count.
Why this scraper
- 70+ fields per place, far more than list-only alternatives: GPS, place id, road and lot addresses, virtual phone, facilities, payment options, transit, photos, and reviews.
- Three input shapes: keyword search, a pasted place URL (including short naver.me links), and a pasted search URL.
- Full pagination: every keyword walks to its complete result set (often thousands of places), not just the first page.
- Three sort orders: relevance, distance (nearest first), and popularity.
- Menus, opening hours, and facilities extracted from the full place page.
- Visitor reviews (star rating, text, author, visit date, photos, keyword tags) and blog reviews (title, body, link, author, thumbnail).
- Fast and cheap: works on Apify datacenter, so a trial run costs almost nothing.
Data you get
Sample shape, values are illustrative placeholders, not from a live listing.
| Field | Example |
|---|---|
| name | "Sample Dumpling House" |
| category | "Korean restaurant" |
| businessCategory | "restaurant" |
| placeId | "00000001" |
| placeUrl | "https://map.naver.com/p/entry/place/00000001" |
| latitude | 37.5000 |
| longitude | 127.0000 |
| phone | "+820000000000" |
| virtualPhone | "+820000000000" |
| address | "Sample-dong 000-0" |
| roadAddress | "Sample-ro 000" |
| fullAddress | "Seoul Sample-gu Sample-dong 000-0" |
| visitorReviewScore | 4.4 |
| visitorReviewCount | 0 |
| totalReviewCount | 0 |
| blogCafeReviewCount | 0 |
| distance | "120m" |
| imageUrls | ["https://example.com/photo-000.jpg"] |
| conveniences | ["Parking", "Wi-Fi"] |
| paymentInfo | ["Card", "Mobile pay"] |
| openingHours | { ... structured hours ... } |
| menus | [ { "name": "Sample Menu", "price": "0", "images": [] } ] |
| subwayStations | [ { "displayName": "Sample Station", "nearestExit": "0", "walkTime": 2 } ] |
| busStations | [ { "name": "Sample Stop", "walkTime": 1 } ] |
| topPhotos | ["https://example.com/photo-000.jpg"] |
| blogReviews | [ { "title": "Sample blog title", "url": "https://example.com/blog/000" } ] |
| visitorReviews | [ { "rating": 5, "body": "Sample review text", "authorNickname": "user000" } ] |
| searchKeyword | "dumpling house" |
How to use
Pick a mode, then fill in the matching section. Examples:
Basic keyword search (fast, list only)
{"mode": "search","keywords": ["만두집"],"includeDetails": false,"maxItems": 20}
Keyword search with full details and reviews
{"mode": "search","keywords": ["강남 카페"],"sort": "popular","includeDetails": true,"includeReviews": true,"maxReviews": 30,"maxItems": 50}
Nearest places to a point
{"mode": "search","keywords": ["카페"],"sort": "distance","searchCoordinates": "37.4979,127.0276","maxItems": 30}
Specific place and search URLs
{"mode": "url","startUrls": ["https://m.place.naver.com/restaurant/00000001/home","https://map.naver.com/p/search/서울 호텔"],"includeDetails": true,"maxItems": 40}
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| mode | string | "search" | "search" runs the keywords; "url" scrapes pasted URLs. |
| keywords | array | ["만두집"] | Search terms (search mode). Each is paginated to its full result count. |
| sort | string | "relevance" | "relevance", "distance" (nearest first), or "popular" (search mode). |
| searchCoordinates | string | central Seoul | Map centre "lat,lng" that biases results and powers distance sort. |
| startUrls | array | (none) | Naver Map place or search URLs, including short naver.me links (url mode). |
| includeDetails | boolean | true | Fetch the full place page (menus, hours, facilities, transit, photos, blog reviews). |
| includeReviews | boolean | false | Collect paginated visitor (star) reviews. |
| maxReviews | integer | 20 | Upper bound on visitor reviews collected per place. |
| maxItems | integer | 20 | Stop after this many places. 0 means no limit. |
| proxy | object | Apify datacenter | Connection settings. Datacenter is the cheapest reliable option. |
| maxResidentialMB | integer | 0 | Residential traffic budget; after it, the run auto-downgrades to datacenter. 0 = no cap. |
| mcpConnectors | array | (none) | Optional: pipe results into Notion, Linear, Airtable, or Apify apps. |
Send results into your apps (MCP connectors)
Optionally mirror results into the apps you already use through Model Context Protocol (MCP) connectors. Authorize a connector once under Apify, Settings, Integrations, then select it in the mcpConnectors input. For Notion, also set notionParentPageUrl. The connector receives a condensed, human-readable summary per item (a title plus key fields), while the complete record always stays in the Apify dataset. Leaving mcpConnectors empty skips the export entirely and never changes the dataset output.
Output example
Sample shape, values are illustrative placeholders, not from a live listing.
{"recordType": "place","id": "00000001","placeId": "00000001","name": "Sample Dumpling House","category": "Korean restaurant","businessCategory": "restaurant","placeUrl": "https://map.naver.com/p/entry/place/00000001","latitude": 37.5000,"longitude": 127.0000,"distance": "120m","phone": "+820000000000","virtualPhone": "+820000000000","address": "Sample-dong 000-0","roadAddress": "Sample-ro 000","fullAddress": "Seoul Sample-gu Sample-dong 000-0","visitorReviewScore": 4.4,"visitorReviewCount": 0,"totalReviewCount": 0,"blogCafeReviewCount": 0,"imageUrls": ["https://example.com/photo-000.jpg"],"conveniences": ["Parking", "Wi-Fi"],"paymentInfo": ["Card"],"openingHours": null,"menus": [{ "name": "Sample Menu", "price": "0", "recommend": false, "images": [] }],"subwayStations": [{ "displayName": "Sample Station", "nearestExit": "0", "walkTime": 2, "walkingDistance": 130 }],"busStations": [{ "name": "Sample Stop", "walkTime": 1, "walkingDistance": 20 }],"topPhotos": ["https://example.com/photo-000.jpg"],"blogReviews": [{ "title": "Sample blog title", "url": "https://example.com/blog/000", "authorName": "blogger000" }],"visitorReviews": [{ "rating": 5, "body": "Sample review text", "authorNickname": "user000", "visited": "0.0" }],"searchKeyword": "dumpling house"}
Plan requirement
This scraper runs on Apify datacenter connections by default, so it works on every Apify plan, including the free tier. Residential connections are optional and only useful if datacenter is ever blocked; pick a country of KR if you enable them. Korean text (keywords, names, addresses, reviews) is fully supported in both input and output.