Naver Place Scraper: Businesses, Hours, Menus and Reviews avatar

Naver Place Scraper: Businesses, Hours, Menus and Reviews

Pricing

from $3.76 / 1,000 places

Go to Apify Store
Naver Place Scraper: Businesses, Hours, Menus and Reviews

Naver Place Scraper: Businesses, Hours, Menus and Reviews

Scrape Naver Place and Naver Map by keyword and area (Korean or English) or place link: name, category, address, phone, coordinates, rating, review counts, opening hours, menu prices, photos. Optional visitor reviews with text, date, tags, author and owner reply. No login.

Pricing

from $3.76 / 1,000 places

Rating

0.0

(0)

Developer

The Mine Works

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

24 Naver places with hours, menus and 120 visitor reviews in 63 seconds

From The Mine Works, makers of Amazon Product Scraper and B2B Leads Finder, with over 140,000 runs across 170+ public actors.

Updated 25 Oct 2026: first release. Naver Place and Naver Map businesses by keyword and area (Korean or English) or by place link, with phone, coordinates, rating, review counts, opening hours by day, menu items with prices and photos, plus visitor reviews with text, date, tags, author and owner reply. Bookmark this Actor on its Store page so it is one click away next time.

Why choose this actor?

  • Korea's local directory in columns. Naver Place is where Koreans look up restaurants, cafes, clinics, salons, hotels and sights, and many small businesses have no Google listing at all. Every row carries the name, category, address, road address, phone, latitude and longitude, rating, visitor review count and blog post count.
  • Hours, menus and prices per business. With product pages on (the default), each row has opening hours day by day with break times and last order times, the menu or price list with a numeric price in won, the owner's description, keywords, parking, nearby subway stations and the review keywords visitors voted for most.
  • Visitor reviews as their own rows. Switch on reviews and each place also returns reviews, newest first: text, visit date, 1 to 5 rating, the tags the reviewer ticked, how many times they had visited, how the visit was verified (receipt, booking, payment), reviewer history and the owner's reply.
  • English keywords work. Naver finds far more with Korean: "Hongdae cafe" returns 50 places, "홍대 카페" returns 2,520. A keyword typed only in English letters is translated word by word, and the run log shows what was searched.
  • Pay per row, nothing for errors. Links that are not Naver places, the summary row and duplicates are never charged. No Naver account, cookies or API key.

Run it on Apify

Part of The Mine Works Food and local services family: NoBroker Scraper, Swiggy Restaurant Scraper, Zomato Scraper.

Try it in one minute

Paste this into the input (JSON view) and press Start. It returns the first 20 restaurants Naver lists for "강남 맛집" (Gangnam restaurants) with their pages opened:

{
"searchQueries": ["강남 맛집"],
"maxPlacesPerSearch": 20
}

Put several keywords on separate lines to run several searches at once. A place that two searches find is delivered once.

Apify's free plan includes $5 of credit every month, which covers about 900 places at this actor's price.

Copy to your AI assistant

themineworks/naver-place-scraper on Apify. Searches Naver Place and Naver Map (Korean local businesses) by keyword and area, or opens place links and ids, and returns one flat row per business, plus optional visitor review rows, with no login. Call ApifyClient("TOKEN").actor("themineworks/naver-place-scraper").call(run_input={"searchQueries": ["강남 맛집"], "maxPlacesPerSearch": 50}), then client.dataset(run["defaultDatasetId"]).list_items().items. Give searchQueries (Korean or English keywords), locations (areas crossed with every keyword), placeUrls (Naver Map or Naver Place links, naver.me links or place ids) or any mix; up to 100 searches. Optional: mode (places, places_and_reviews or reviews_only), maxPlacesPerSearch (default 50, 1 to 300, Naver answers at most 300 per search), includeDetails (default true; opening hours, menu items with prices, description, keywords, stations, voted keywords), maxReviewsPerPlace (default 20, up to 5000), reviewSort (recent or default), language (ko, en, ja, zh), translateEnglish (default true). Place rows have record_type "place" and carry place_id, name, category, address, road_address, latitude, longitude, phone, rating, visitor_review_count, blog_review_count, opening_hours, menu_items, description, keywords, image_urls, place_url. Review rows have record_type "review" and carry review_id, place_id, rating, text, visit_date, written_date, tags, visit_count, verified_by, author_name, owner_reply. Each run also writes one row with _type "summary", one with _type "info" when rows were delivered, and a row with _type "error" for each input that could not be read; none of these is charged. Full spec: GET https://api.apify.com/v2/acts/themineworks~naver-place-scraper/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations?fpr=ymnoit&utm_source=apify-readme&utm_medium=referral

Key features

  • Keyword, area or link. Type keywords as you would in the Naver Map search box, cross them with a list of areas (카페 with 강남 and 홍대 runs two searches), or paste place links and ids. Links from map.naver.com, pcmap.place.naver.com and m.place.naver.com work, and so do naver.me short links and plain place numbers.
  • Every kind of business. Restaurants, cafes, hospitals and clinics, hair and beauty salons, hotels and stays, attractions, pharmacies, gyms and more. Naver's own category is in category; business_type gives its group.
  • Up to 300 places per search. That is Naver's own limit for one search. To cover a bigger area, split it into districts with locations.
  • Korean, English, Japanese or Chinese output. language switches names, categories, addresses, menus and opening days to Naver's own translation. In English Naver gives one address and no separate road address.
  • Fast without product pages. With includeDetails off, 600 places came back in 14 seconds from 15 requests, about 1.5 KB per place.
  • Stops cleanly. Two result pages in a row with no new place end a search; six failed or refused calls in a row end the run; the run stops before its time limit and keeps every row it read. The summary row says why.

How to use it

Basic: restaurants in a district

{
"searchQueries": ["강남 맛집"],
"maxPlacesPerSearch": 100
}

Keywords crossed with areas

{
"searchQueries": ["카페", "디저트"],
"locations": ["성수", "연남동", "한남동"],
"maxPlacesPerSearch": 100
}

Six searches, each up to 100 places. Sort by visitor_review_count or rating in a spreadsheet to find the busiest.

English keywords

{
"searchQueries": ["dermatology clinic"],
"locations": ["Gangnam", "Apgujeong"],
"language": "en",
"maxPlacesPerSearch": 50
}

Places with their reviews

{
"searchQueries": ["홍대 카페"],
"mode": "places_and_reviews",
"maxPlacesPerSearch": 10,
"maxReviewsPerPlace": 100
}

Reviews are rows in the same dataset with record_type set to review. Filter on that field, or use the Reviews view.

{
"placeUrls": [
"https://map.naver.com/p/entry/place/11571707",
"https://m.place.naver.com/restaurant/2025884279/home",
"1263226933"
],
"mode": "places_and_reviews",
"maxReviewsPerPlace": 500
}

Reviews only

{
"placeUrls": ["2025884279"],
"mode": "reviews_only",
"maxReviewsPerPlace": 1000
}

Only review rows are delivered and charged. In our test, 130 reviews of one place took 4 requests and 4 seconds.

Fast export from search results only

{
"searchQueries": ["제주 호텔"],
"maxPlacesPerSearch": 300,
"includeDetails": false
}

Name, category, address, phone, coordinates, review counts, amenities and a few photos, without opening hours, menus or descriptions. Same price per place.

Input parameters

ParameterTypeDefaultWhat it does
searchQueriesarray of stringsemptyKeywords, one search each. Korean or English.
locationsarray of stringsemptyAreas combined with every keyword.
placeUrlsarray of stringsemptyNaver Map or Naver Place links, naver.me links or place ids.
modestringplacesplaces, places_and_reviews or reviews_only.
maxPlacesPerSearchinteger50Most places per search, 1 to 300.
includeDetailsbooleantrueOpens each place for hours, menu items, description, keywords, stations and voted keywords.
maxReviewsPerPlaceinteger20Most visitor reviews per place, 1 to 5,000, when reviews are on.
reviewSortstringrecentrecent (newest first) or default (Naver's order).
languagestringkoko, en, ja or zh.
translateEnglishbooleantrueTranslates English-only keywords to Korean before searching.
proxyConfigurationobjectApify ProxySwitch to residential proxy with country KR if Naver refuses requests.

Give searchQueries, locations, placeUrls or a mix. Up to 100 searches per run.

What data do you get?

Each run has place rows (record_type place), review rows (record_type review) when you ask for them, and one summary row. The dataset has four ready views: Places, Location and contact, Hours and menu, and Reviews.

Place row

FieldWhat it is
place_id, name, category, business_type, category_codesIdentity and Naver category
address, road_address, full_address, region, region_codeLot-number address, road-name address, full Korean address, district
latitude, longitudeCoordinates (WGS84)
phone, phone_is_forwarding_numberPhone; many Korean businesses publish only a Naver forwarding number (0507) that reaches them
rating, visitor_review_count, text_review_count, blog_review_count, booking_review_countScore out of 5 and review counts
opening_hours, open_status, regular_closed_days, hours_noteHours per day with break and last order times
menu_items, menu_count, menu_imagesMenu or price list: name, price in won, description, category, image
description, directions, keywords, facilities, amenities, payment_methods, parking, pet_friendlyWhat the owner publishes
voted_keywords, short_review_phrases, image_review_count, photo_count, visitor_photo_countWhat visitors say and show
homepage, other_links, naver_booking_url, has_naver_booking, accepts_naver_payLinks and booking
nearby_stationsSubway stations with exit and walking minutes
image_url, image_urls, place_url, map_urlPhotos and links
source, search_query, search_query_used, search_total_results, search_positionWhere the row came from
details_scraped, details_error, output_language, scraped_atRun information

Review row: review_id, place_id, place_name, rating, text, visit_date, written_date, written_date_text, visit_count, tags, verified_by, item_ordered, booking_item, photo_count, photo_urls, has_video, author_name, author_id, author_profile_url, author_review_count, author_photo_review_count, author_average_rating, owner_reply, owner_reply_date, view_count, review_language, review_url, position.

Rows carry only the fields a business or review has. A field Naver does not publish for that place is left out.

Output examples

A place row (shortened):

{
"record_type": "place",
"place_id": "2025884279",
"name": "대물섬 강남점",
"category": "한식",
"business_type": "restaurant",
"address": "서울 강남구 논현동 98-12",
"road_address": "서울 강남구 언주로148길 14 1층 103~106호",
"region": "서울 강남구 논현동",
"latitude": 37.5206335,
"longitude": 127.0361667,
"phone": "0507-1451-3697",
"phone_is_forwarding_number": true,
"rating": 4.97,
"visitor_review_count": 176,
"blog_review_count": 37,
"has_naver_booking": false,
"amenities": [
"포장",
"단체 이용 가능",
"예약",
"남/녀 화장실 구분",
"간편결제",
"주차",
"발렛파킹"
],
"image_url": "https://ldb-phinf.pstatic.net/20260831_172/17881344168901EW1Q_JPEG/%BD%BA%C5%A9%B8%B0%BC%A6_2025-04-07_%BF%C0%C8%C4_11.20.37.jpg",
"place_url": "https://m.place.naver.com/place/2025884279/home",
"map_url": "https://map.naver.com/p/entry/place/2025884279",
"keywords": [
"소금김밥",
"강남",
"보쌈",
"룸식당",
"와인"
],
"payment_methods": [
"간편결제"
],
"pet_friendly": false,
"open_status": "영업 중",
"details_scraped": true,
"source": "search",
"search_query": "강남 맛집",
"search_query_used": "강남 맛집",
"search_total_results": 34381,
"search_position": 1,
"output_language": "ko",
"scraped_at": "2026-10-25T04:59:03.678Z",
"description": "대물섬 강남점 ...",
"opening_hours": [
{
"schedule": null,
"day": "일",
"open": "13:00",
"close": "02:00",
"break_start": null,
"break_end": null,
"last_order": null,
"note": null
},
{
"schedule": null,
"day": "월",
"open": "11:00",
"close": "02:00",
"break_start": null,
"break_end": null,
"last_order": null,
"note": null
}
],
"menu_items": [
{
"name": "대물 숙성회 정식(광어)",
"price": 28000,
"price_text": "28,000원",
"price_type": "fixed",
"description": "회+보쌈+칼국수(2인이상 주문가능)",
"category": "점심(평일2시까지판매)",
"badges": [],
"image_url": "https://ldb-phinf.pstatic.net/20261019_42/1792378555396JNi5W_JPEG/KakaoTalk_20261019_105144068_02.jpg"
},
{
"name": "대물 숙성회 정식(광어+시마아지)",
"price": 38000,
"price_text": "38,000원",
"price_type": "fixed",
"description": "회+보쌈+칼국수(2인이상 주문가능)",
"category": "점심(평일2시까지판매)",
"badges": [],
"image_url": "https://ldb-phinf.pstatic.net/20261019_125/1792378594583VljgY_JPEG/KakaoTalk_20261019_105144068_02.jpg"
}
],
"voted_keywords": [
{
"keyword": "음식이 맛있어요",
"votes": 167
},
{
"keyword": "재료가 신선해요",
"votes": 121
},
{
"keyword": "매장이 넓어요",
"votes": 80
}
],
"nearby_stations": [
{
"line_station": "강남구청역 7호선",
"station": "강남구청역",
"exit": "3-1",
"walk_minutes": 12,
"walk_meters": 810
}
]
}

A review row:

{
"record_type": "review",
"review_id": "6adc89fd094fb5e0b088fcd4",
"place_id": "1789177874",
"place_name": "신이도가",
"place_url": "https://m.place.naver.com/place/1789177874/home",
"rating": 5,
"text": "카페 인테리어도 예쁘고 케이크도 예쁘고 맛있고 커피가 맛있어요!",
"visit_date": "2026-10-24",
"written_date": "2026-10-24",
"written_date_text": "10.24.토",
"visit_count": 1,
"tags": [
"커피가 맛있어요",
"디저트가 맛있어요",
"음료가 맛있어요",
"특별한 메뉴가 있어요",
"인테리어가 멋져요"
],
"verified_by": "영수증",
"item_ordered": "신이도가 키캡 키링",
"photo_count": 1,
"photo_urls": [
"https://pup-review-phinf.pstatic.net/MjAyNjEwMjRfNDcg/MDAxNzkyODM4MTQwNzAz.SF3kkq7XlnlDZ5SV1azuml7SS1Phszv_Ntj0tcqt_8kg.jbN-IdySbC_TaJ562eLQ8HgFcyzO5mcFgTudlceMAGwg.JPEG/E384B9B6-7F0E-43B5-B87F-863259321279.jpeg?type=w1500_60_sharpen"
],
"has_video": false,
"author_name": "이경화9927",
"author_id": "~1~bsCtgbTHPt_SXIrCQQkEsQ",
"author_profile_url": "https://m.place.naver.com/my/5efc64468f87a842bcef034f/review?v=2",
"author_review_count": 27,
"author_photo_review_count": 30,
"author_average_rating": 5,
"owner_reply": "안녕하세요. 홍대 카페 신이도가(한옥카페) 입니다. 아름다운 공간과 디저트, 음료까지 좋게 평가해주셔서 진심으로 감사드립니다. 고객님의 소중한 시간을 더욱 특별하게 만들어드리기 위해 인테리어와 메뉴 퀄리티를 지속적으로 점검하고 있습니다. 앞으로도 변함없이 만족스러운 경험을 제공할 수 있도록 최선을 다하겠습니다. 다시 찾아주시길 기대하겠습니다.",
"owner_reply_date": "10.25.일",
"view_count": 0,
"review_language": "ko",
"review_url": "https://m.place.naver.com/place/1789177874/review/visitor",
"position": 1,
"scraped_at": "2026-10-25T04:59:36.458Z"
}

Pricing

Pay per event: you pay for the places and reviews you receive, plus a flat $0.003 per run, whatever memory you choose. Opening place pages costs nothing extra.

EventWhen it is chargedFree planBronze (Starter)Silver (Scale)Gold (Business)
place-scrapedOnce per place row stored in your dataset$5.38 per 1,000$5.02 per 1,000$4.48 per 1,000$3.76 per 1,000
review-scrapedOnce per review row stored in your dataset$0.89 per 1,000$0.83 per 1,000$0.74 per 1,000$0.62 per 1,000
run-startOnce per run, after the first call returned rows$0.003$0.003$0.003$0.003

The price of one place is the price per 1,000 divided by 1,000.

Never charged:

  • links that are not Naver places (each gets an error row);
  • a place that a second search of the same run finds again;
  • places past your maxPlacesPerSearch and reviews past your maxReviewsPerPlace;
  • the summary, info and error rows;
  • a run with no valid input, or one whose searches return nothing: the start fee is charged only once a call has returned rows;
  • anything past your "Max cost per run". The actor checks the budget before each batch of rows and stops while the total is still below your limit, so the run ends SUCCEEDED with a partial result and a status message saying so.

Run it on a schedule

  1. Open the actor in Apify Console, set your input and click Save as a new task.
  2. In the task, open Schedules, click Add schedule and pick how often (every day, every Monday at 08:00 and so on).
  3. Compare runs on place_id, rating and visitor_review_count to see new places, rating changes and review growth.
  4. Optional: add an integration (Google Sheets, Slack, a webhook) so each run lands where your team works.

FAQ

What does this actor read?

Naver Place's public business pages and visitor reviews, through the same service the Naver Place web pages use, as anyone sees them without logging in. It never logs in, books anything or reads hidden contact details. It does not request map.naver.com, whose robots.txt asks robots to stay out of everything but its start pages.

How many places can I get?

Up to 300 per search, which is Naver's own limit. For more, run several searches, for example one keyword with many locations.

Why do some places have no rating, hours or menu?

Naver shows a score only after a place has reviews, and hours and menus only where the owner entered them. Sights and many small shops have neither. The field is left out rather than guessed.

What is the difference between includeDetails on and off?

Off, a row comes from the search result: name, category, address, phone, coordinates, review counts, amenities and a few photos. On, each place is opened for hours, menu items with prices, description, keywords, stations, rating, voted review keywords and photo counts. Same price either way.

Why is the phone number 0507?

Many Korean businesses publish a Naver forwarding number instead of their own. It reaches them, and phone_is_forwarding_number is true for those rows.

How are English keywords handled?

Words are translated with a built-in list of about 250 Korean areas, cities and business types (Hongdae, Gangnam, cafe, dermatology and so on). Words not in the list stay as typed. Turn translateEnglish off to send your text unchanged. The log names the keyword actually searched, and each row carries it in search_query_used.

What do review dates mean?

visit_date is the day of the visit. written_date is the day the review was posted; Naver shows it without a year, so the year is taken from the weekday Naver prints beside it. written_date_text keeps Naver's own text.

How long does a run take?

About 14 seconds for 600 places without place pages, and about a minute for 24 places with pages and 120 reviews in our tests. Large runs depend on how many places and reviews you ask for.

Do I need an account, cookies or a proxy?

No account or cookies. The actor uses Apify Proxy, which is included. If Naver refuses requests, set proxyConfiguration to Apify residential proxy with country KR.

Which formats can I download?

JSON, CSV, Excel, XML, RSS and HTML from the run's Storage tab or through the API. In CSV and Excel, opening_hours, menu_items and nearby_stations are flattened into columns such as opening_hours/0/open and menu_items/0/price. Use JSON to keep them whole.

Can I use it from Claude, ChatGPT or Cursor (MCP)?

Yes, through Apify's MCP server. Connector URL: https://mcp.apify.com/?tools=themineworks/naver-place-scraper

  • Claude: Settings > Connectors > Add custom connector, paste the URL, sign in with Apify.
  • ChatGPT: turn on developer mode, add an MCP connector with the URL, sign in with Apify.
  • Cursor or VS Code: add it as an HTTP MCP server with that URL.
  • Claude Code: claude mcp add -t http naver-place-scraper "https://mcp.apify.com/?tools=themineworks/naver-place-scraper"

The actor reads only public listings and reviews that anyone can see without logging in. Reviews contain personal data such as reviewer nicknames and profile links, so handle them under GDPR, CCPA and Korea's Personal Information Protection Act. You are responsible for how you use the data, including Naver's terms of service. This is general information, not legal advice.

Integrations

  • Google Sheets: send each run's places to a sheet with Apify's Google Sheets integration; one row per place fits a sheet as is.
  • Make, Zapier and n8n: start a run and read its dataset with the Apify apps and nodes, for example "new cafes in Seongsu every Monday to Slack".
  • Webhooks: have Apify call your URL when a run succeeds, then fetch the dataset.
  • API and SDKs: run it from Python or JavaScript with the Apify client, or with a plain HTTP call (see "Copy to your AI assistant" above).
  • MCP clients: Claude, ChatGPT, Cursor and VS Code can run it as a tool through the connector URL in the FAQ.

More from The Mine Works

Food and local services

Social media and video

Leads and business directories

Marketing, SEO and reviews

LinkedIn

Real estate

Science, health and government data

Jobs and hiring

Company and business data

E-commerce and marketplaces

Developer and AI tools

More tools

Support

Found a search that returns fewer places than Naver Map, or a field that comes back empty? Open an issue in the Issues tab with the input and the run ID, and we will look at it. For a field you need or a new source, email dmineworks@gmail.com.

Search Naver Place and Naver Map by keyword and area, or by link, and get every business back as one row with phone, coordinates, rating, hours, menu prices and photos, plus visitor reviews, no login.