Naver Place Reviews + Blog — Korean Review Scraper
Pricing
from $1.00 / 1,000 results
Naver Place Reviews + Blog — Korean Review Scraper
Extract visitor reviews, ratings, keywords and visit details from Naver Place. Supports place URL and ID input. Korean sentiment analysis ready. From the #1 Naver data provider on Apify.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
OrbitData Labs
Maintained by CommunityActor stats
2
Bookmarked
188
Total users
39
Monthly active users
5 hours ago
Last modified
Categories
Share
Naver Place Reviews Scraper
Extract visitor reviews and blog reviews from Naver Place — Korea's #1 local business platform. Cursor-based pagination with no server-side limit on visitor reviews.
Features
- Visitor reviews: cursor-based pagination, 50 per page, no upper limit on total reviews
- Blog reviews: offset-based pagination, ~100 items per place (server-side cap)
- TLS fingerprinting:
curl_cffiwith Chrome impersonation — bypasses bot detection - Structured output: voted keywords, visit counts, owner replies, star distribution
- Two input modes: direct Place URL/ID or keyword search
What you get
Visitor review fields
| Field | Description |
|---|---|
| reviewText | Full review body (Korean) |
| reviewRating | 1-5 stars |
| reviewerName | Author nickname + profile URL + total review count |
| reviewDate | Review creation date (YYYY-MM-DD) |
| visitDate | Actual visit date |
| visitCount | "2번째 방문" (2nd visit) |
| reviewVerification | How Naver verified the visit: 영수증 (receipt), 예약 (booking), 결제내역 (payment record); null if unverified |
| orderedItem | Menu item or ticket the reviewer bought, when Naver links one |
| reviewerAverageRating | Reviewer's average star rating across all their reviews; null if they don't rate |
| votedKeywords | "음식이 맛있어요", "분위기가 좋아요", etc. |
| reviewPhotos | Photo URLs (optional) |
| reviewReplyText | Business owner's response |
Blog review fields
| Field | Description |
|---|---|
| blogTitle | Blog post title |
| blogContents | Post excerpt/contents |
| blogUrl | Link to full blog post |
| blogSource | blog (Naver Blog) or cafe (Naver Café post) |
| bloggerName | Blogger name |
| blogDate | Post date |
Aggregated statistics
When includeReviewStats is enabled (default), one stats row per place — a single dataset item.
Whole place (Naver's own statistics, the full review history):
totalVisitorReviews,averageRating— review count and average star ratingplaceRatingDistribution— star histogram, e.g.{"4.5": 68, "5": 364}placeThemes— what reviews talk about, e.g.{"맛": 782, "분위기": 184}placeTopMenus— most-mentioned menu items, e.g.{"타코": 374}placeKeywordDistribution— voted keywords ("음식이 맛있어요" …) with vote counts
This run (only the reviews you scraped):
ratingDistribution,keywordDistribution— the same histograms over this run's reviewsscrapedVisitorReviews,scrapedBlogReviews— how many rows this run collected
Histograms are ordered highest count first (stars ascending). Verticals Naver does not rate or tag — clinics, hospitals — return {}; null means Naver's statistics could not be fetched on this run.
Stats only, or blog reviews only
Set includeVisitorReviews to false:
- with
includeBlogReviews: true— blog reviews only; - with
includeBlogReviews: false— just the stats row: one dataset item per place, the cheapest way to compare themes, menus and keyword votes across many places.
Input options
Option 1: Direct Place URLs or IDs
{"placeUrls": ["https://map.naver.com/v5/entry/place/37234567","37234567"],"maxReviewPages": 3}
Option 2: Search by keyword
{"searchKeywords": ["강남 맛집", "Seoul BBQ"],"maxPlacesPerKeyword": 5,"maxReviewPages": 1}
Option 3: Every review since a date
{"placeUrls": ["37234567"],"visitedSince": "2026-09-01"}
Visitor reviews whose visit date is on or after visitedSince. Naver lists reviews by visit date, so the run stops as soon as it reaches older visits — you only pay for the window you asked for. Without maxReviews, every review in the window is collected; with it, maxReviews still caps each place. A review written recently about an older visit is outside the window — for scheduled runs that must catch every new review, use Option 4.
Option 4: Scheduled runs — only new reviews
{"placeUrls": ["37234567"],"maxReviews": 50,"onlyNewReviews": true}
Each run looks at the same newest reviews it normally would, but skips the ones an earlier onlyNewReviews run already returned — they are not returned and not charged again. A re-run with nothing new returns 0 items; the run status says how many were skipped. The stats row (if enabled) gains skippedPreviouslyScraped.
- History is kept per place in a key-value store in your Apify account (
naver-place-reviews-seenby default). UsereviewHistoryNameto keep separate histories for separate pipelines; delete the store or change the name to start over. - Only reviews that were actually stored count as delivered — if a run's cost limit cuts it short, the rest are offered again next time.
- Don't run two
onlyNewReviewsruns for the same place at the same moment; both would see the same history and return the same new reviews.
Full input example
{"placeUrls": ["37234567"],"maxReviewPages": 10,"visitedSince": "2026-09-01","includeVisitorReviews": true,"includeBlogReviews": true,"maxBlogReviewPages": 10,"includeReviewPhotos": false,"includeReviewStats": true,"onlyNewReviews": false}
Pagination guide
| maxReviewPages | Reviews collected |
|---|---|
| 1 | ~50 |
| 3 | ~150 |
| 10 | ~500 |
| 50 | ~2,500 |
| 100 | ~5,000 |
Output format
Visitor review
{"reviewType": "visitor","placeId": "37234567","placeName": "맛있는 식당","placeCategory": "음식점","placeAddress": "서울특별시 강남구 ...","placeRating": 4.52,"placeTotalReviews": 3162,"placeUrl": "https://pcmap.place.naver.com/place/37234567","reviewId": "abc123","reviewText": "정말 맛있었어요! 분위기도 좋고 서비스도 훌륭합니다.","reviewRating": 5,"reviewerName": "맛집탐험가","reviewerProfileUrl": "https://m.place.naver.com/my/...","reviewerReviewCount": 42,"reviewerAverageRating": 4.9,"reviewVerification": "영수증","orderedItem": "치즈닭갈비","reviewDate": "2026-05-15","visitDate": "2026-05-10","visitCount": "2번째 방문","votedKeywords": ["음식이 맛있어요", "분위기가 좋아요"],"reviewPhotos": null,"reviewReplyText": "감사합니다! 또 방문해주세요.","reviewReplyDate": "2026-05-16","searchKeyword": null,"language": "ko","scrapedAt": "2026-05-17T12:00:00.000Z"}
Blog review
{"reviewType": "blog","placeId": "37234567","placeName": "맛있는 식당","blogTitle": "강남 맛집 탐방기","blogContents": "오늘은 강남에 위치한...","blogUrl": "https://blog.naver.com/...","blogSource": "blog","bloggerName": "맛집블로거","bloggerHome": "https://blog.naver.com/blogger123","blogDate": "2026-05-10","blogThumbnailUrl": "https://...","isRepresentative": false,"scrapedAt": "2026-05-17T12:00:00.000Z"}
Technical details
- HTTP client:
curl_cffiwith TLS fingerprinting (impersonate="chrome") - Visitor review pagination: cursor-based via
afterparameter (not page-based) - Blog review pagination: offset-based (
page+display=10) - Rate limiting: automatic retry with exponential backoff on HTTP 429
- Deduplication:
reviewId-based dedup for visitor reviews,id-based for blog reviews
Use cases
- Korean market entry research — what do locals say about competitors?
- Restaurant/cafe competitive intelligence
- Customer sentiment analysis (NLP-ready structured data)
- Brand reputation monitoring in Korea
- Academic research on Korean consumer behavior
Korea Data Suite by huggable_quote
| Actor | Description |
|---|---|
| Naver Map | Business listings & details |
| Naver Blog | Blog posts & content |
| Naver Shopping | Product data & prices |
| Naver News | News articles & headlines |
| Naver Place Reviews | This actor |
| KRX Stock | Korean stock market data |