Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the Naver API page →
Reputation & Reviews

Naver API & Scraper

The Naver Place API returns South Korean local-business data as clean JSON.

7 actionsLive JSON1,000 free credits$0.67–$1.50 / 1,000 creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

The primary place/search endpoint returns places with name, address, review count and, on most rows, a rating; you can run a broader search-all, pull a place/detail, reviews and blog-reviews, resolve a name to an id with its candidates and its exact-match flag, and autocomplete a query. It is built for Korean local-data products and review monitoring that need Naver data without a scraper. One ReefAPI key, one shared credit pool, the standard envelope.

Reference

What a Naver Place row contains, and which address is which

Korea runs two parallel address systems and Naver returns both on every place, which is the field pair most integrations mismatch. These are the fields measured on place/search-all rows for Korean business queries on 2026-08-26. Note what is not there: a search row carries review_count but no rating - the star rating lives on place/detail.

FieldWhat it holdsMeasured example
place_idNaver's numeric place id, as a string; length varies, no prefix"1943746521" and "33084820" were both live
road_addressdoro-myeong address - the post-2011 official street-name system서울특별시 강남구 강남대로 388
jibun_addressjibeon address - the legacy lot-number system, still used in records서울특별시 강남구 역삼동 825-13
short_addressthe abbreviated form Naver prints on a card서울 강남구 강남대로 388
category / category_idKorean category name plus its numeric id성형외과 with "223246"; 카페,디저트 for cafes
review_countinteger, the review count Naver shows for the place1408, 2055, 7791
has_bookingboolean - whether the place takes Naver reservationstrue / false
latitude / longitudeWGS84 decimal degrees, as numbers37.4974539 / 127.0284206
distance_kmfloat, distance from Naver's own map center for the queryHongdae cafes returned about 11 km on a Hongdae query

There is no rating field on a search row, so a missing rating is not an unrated business. Also, limit does not raise the row count past 10: queries asking for 20, 30, 40 and 100 all returned exactly 10 places, with data.total also reporting 10.

Live example

Real request and response JSON

Captured from the indexed primary action, place/search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/naver/v1/place/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "query": "강남 맛집",
    "limit": 5
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "naver",
    "endpoint": "place/search",
    "mode": "live",
    "latency_ms": 1007.3,
    "record_count": 5,
    "bytes": 3906,
    "cache_hit": false,
    "completeness_pct": 100,
    "completeness_basis": {
      "record_count": 5
    },
    "attempts": 1
  },
  "data": {
    "places": [
      {
        "place_id": "[redacted-phone]",
        "name": "[redacted-name]",
        "category": "한식",
        "address": "강남대로102길 15 지상1층",
        "review_count": 1143,
        "rating": null,
        "image_url": "https://ldb-phinf.pstatic.net/20260213_101/[redacted-phone]PaKB0_PNG/%BD%BA%C5%A9%B8%B0%BC%A6_[redacted-phone]_163001.png",
        "longitude": 127.0270063,
        "latitude": 37.5022171
      },
      {
        "place_id": "34590424",
        "name": "[redacted-name]",
        "category": "소고기구이",
        "address": "테헤란로70길 25 백합힐 1층",
        "review_count": 4127,
        "rating": 4.57,
        "image_url": "https://ldb-phinf.pstatic.net/20251105_52/[redacted-phone]s9FGy_JPEG/KakaoTalk_20220812_[redacted-phone]_01.jpg",
        "longitude": 127.0539791,
        "latitude": 37.5039962
      },
      {
        "place_id": "[redacted-phone]",
        "name": "[redacted-name]",
        "category": "일본식라면",
        "address": "논현로175길 40 1층 102호, 104호",
        "review_count": 2243,
        "rating": null,
        "image_url": "https://ldb-phinf.pstatic.net/20260408_149/[redacted-phone]WauH8_PNG/KakaoTalk_20260408_[redacted-phone].png",
        "longitude": 127.0253839,
        "latitude": 37.525023
      }
    ],
    "total": 34636,
    "query": "강남 맛집"
  }
}
Actions

What the Naver API does

ActionDescriptionConcrete use caseKey params
place/searchsearch restaurants & food places by query (richest food data)Support teams call place/search to search restaurants & food places by query (richest food data).query, limit
place/search-allsearch ANY business type on Naver Place/Map (clinics, cafes, hotels, salons, shops…)Reputation platforms call place/search-all to search ANY business type on Naver Place/Map (clinics, cafes, hotels, salons, shops…).query, limit
place/detailfull place profile (rating, phone, hours, images)Market researchers call place/detail to get full place profile (rating, phone, hours, images).place_id, query
place/reviewsvisitor reviews (latest page, ~20 per call) with the true totalB2B review analysts call place/reviews to get visitor reviews (latest page, ~20 per call) with the true total.place_id, limit, page_size, sort, query
place/blog-reviewsblog reviewsSupport teams call place/blog-reviews to get blog reviews.place_id, limit, page_size, query
place/resolveresolve a query → place_id (works for food AND any other business)Reputation platforms call place/resolve to resolve a query → place_id (works for food AND any other business).query, place_id
search/autocompleteNaver search-box keyword suggestions for a partial term (keyword research)Market researchers call search/autocomplete to get naver search-box keyword suggestions for a partial term (keyword research).query, limit
Code samples

Call place/search from your stack

curl -X POST https://api.reefapi.com/naver/v1/place/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"강남 맛집","limit":5}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.naver.place/search with {"query":"강남 맛집","limit":5}.
Use cases

Who uses this API and why

  • Local apps call place/search to list Korean businesses by area.
  • Reputation tools use place/reviews and place/blog-reviews to monitor sentiment.
  • Lead-gen uses place/search-all to build local business lists.
FAQ

Questions developers ask before integrating

Should I call place/search or place/search-all?

place/search-all, unless you specifically want restaurants. place/search is the food-oriented surface and carries the richest restaurant fields; place/search-all covers every business type - clinics, cafes, hotels, salons, shops - and is the one that returns place_id, category_id, both addresses and coordinates on a single row. A measured call for 강남 성형외과 (Gangnam plastic surgery) returned five clinics with full profiles.

Why do I get only 10 results when I set limit to 30?

Because Naver's place panel serves one page and the engine returns that page. Measured on 2026-08-26: limit 5 returned 5 places, but limit 20, 30, 40 and 100 all returned exactly 10, with data.total also reading 10, across three different queries. Treat 10 as the practical ceiling per query and narrow the query - by district, by neighborhood, by category word - instead of raising limit.

What is a Naver place_id and where else can I use it?

It is the numeric id in Naver's own place URLs (map.naver.com/p/entry/place/<id>, place.naver.com/restaurant/<id>), returned as a string. Length is not fixed: 33084820 (8 digits) and 1943746521 (10 digits) appeared in the same result set, so do not validate by length. If all you have is a name, place/resolve turns it into a place_id and shows its work: a measured call on 강남 맛집 returned id 1427134948 with the place's name, category, road address and 9,038 reviews beside it, exact_name_match false because a category phrase is not a shop name, and the six runners-up it passed over. Read exact_name_match before you trust the id.

Why are there two addresses on every place?

Korea moved from lot-number addressing (jibeon) to street-name addressing (doro-myeong) in 2011, and both remain in daily use, so Naver carries both. road_address is the official current form and the one to use for mail and geocoding; jibun_address is what older records, land registries and many locals still use. short_address is neither - it is the display abbreviation, with 서울특별시 shortened to 서울. All three describe the same building.

What are place_suggestions?

Naver's own related-query list for the search you ran, returned alongside the places as plain strings. A measured call for 강남 성형외과 returned ["강남역성형외과"], and one for 홍대 카페 returned nine, including 홍대 만화카페 and 홍대 고양이카페. Because the row ceiling is 10, these are the practical way to widen coverage: feed each suggestion back as a fresh query.

Do I have to search in Korean?

For places, in practice yes. The queries that returned data were Korean text - a business name, or an area plus a business word, like 강남 성형외과 or 홍대 카페 - because that is how the listings themselves are written. Names, categories and addresses all come back in Hangul with no romanized variants, so plan for UTF-8 end to end and for a transliteration step if your users read Latin script. search/autocomplete takes a partial term and returns Naver's own completions - 아이폰 returned 아이폰18, 아이폰17 and 아이폰17프로 - which is the cheapest way to learn the exact wording Korean users type.

What does a TARGET_BLOCKED response mean here?

It means Naver answered that attempt with a challenge instead of data, and it comes back with retryable set to true. It is a transient condition rather than a verdict on your parameters, so there is nothing to fix on your side beyond retrying later or spacing calls out. Handle it the way you would a 503: catch the code, back off, and never read the absence of data as "this place does not exist".

How does this engine handle a bad parameter?

limit is parsed strictly - a non-numeric limit returns PARSE_ERROR with retryable false rather than being ignored - while query is required and rejected when empty. There is no page parameter on any place action, so pagination is not the shape of this engine. You widen coverage by issuing more queries, not by walking pages.

What is the Naver API?

Naver API is a ReefAPI endpoint group for korean business listings, reviews and ratings. It returns live JSON through POST requests under /naver/v1.

Is the Naver API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Naver calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Naver login or account?

No login to Naver is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Naver data?

The page example is captured from a live place/search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Naver API use?

Naver actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call Naver from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call naver actions with the same key, credit pool and JSON envelope used by normal REST requests.

docs / naver

Naver

Korean business listings, reviews and ratings.

base /naver/v17 endpoints
post/naver/v1/place/search1 credit

search restaurants & food places by query (richest food data)

ParameterAllowed / rangeDescription
queryrequiredKorean search text (e.g. a business name or 'area + cuisine'). Used to find places, or to resolve a place_id when one isn't given.
limit = 10optional1–Maximum number of places to return.
Try in playground →
post/naver/v1/place/search-all1 credit

search ANY business type on Naver Place/Map (clinics, cafes, hotels, salons, shops…)

ParameterAllowed / rangeDescription
queryrequiredKorean search text for ANY business type — clinic, cafe, hotel, salon, shop, hospital, etc. (e.g. '강남 성형외과' = Gangnam plastic surgery).
limit = 10optional1–Maximum number of places to return (1-30).
Try in playground →
post/naver/v1/place/detail1 credit

full place profile (rating, phone, hours, images)

ParameterAllowed / rangeDescription
place_idrequiredNaver Place numeric id (from place/search results or place/resolve).
queryoptionalKorean search text (e.g. a business name or 'area + cuisine'). Used to find places, or to resolve a place_id when one isn't given.
Try in playground →
post/naver/v1/place/reviews1 credit

visitor reviews (latest page, ~20 per call) with the true total

ParameterAllowed / rangeDescription
place_idrequiredNaver Place numeric id (from place/search results or place/resolve).
limit = 50optional1–Maximum reviews to collect (capped by Naver).
page_size = 20optional1–50Accepted for compatibility but currently has no effect — reviews come from one page. meta.page_size_supported reports this.
sort = recentoptionalrecent · RECENT · RECOMMEND · RATINGAccepted for compatibility but currently has no effect — reviews arrive in Naver's own page order. meta.sort_supported reports this.
queryoptionalKorean search text (e.g. a business name or 'area + cuisine'). Used to find places, or to resolve a place_id when one isn't given.
Try in playground →
post/naver/v1/place/blog-reviews1 credit

blog reviews

ParameterAllowed / rangeDescription
place_idrequiredNaver Place numeric id (from place/search results or place/resolve).
limit = 50optional1–Maximum blog reviews to collect.
page_size = 20optional1–50Accepted for compatibility but currently has no effect — reviews come from one page. meta.page_size_supported reports this.
queryoptionalKorean search text (e.g. a business name or 'area + cuisine'). Used to find places, or to resolve a place_id when one isn't given.
Try in playground →
post/naver/v1/place/resolve1 credit

resolve a query → place_id (works for food AND any other business)

ParameterAllowed / rangeDescription
queryrequiredKorean search text (e.g. a business name or 'area + cuisine'). Used to find places, or to resolve a place_id when one isn't given.
place_idoptionalNaver Place numeric id (from place/search results or place/resolve).
Try in playground →
post/naver/v1/search/autocomplete1 credit

Naver search-box keyword suggestions for a partial term (keyword research)

ParameterAllowed / rangeDescription
queryrequiredPartial Korean (or English) search term to autocomplete (e.g. '아이폰' → '아이폰17', '아이폰18'…).
limit = 10optional1–Maximum number of suggestions to return (1-30).
Try in playground →