Our Naver Maps API allows you to scrape places from Naver Maps search results, with the details Naver Maps shows for each kind of place (see Local Results).


Search around any point in South Korea with center, and get up to 300 places, 70 per page, with page.


The API endpoint is https://serpapi.com/search?engine=naver_maps

Head to the playground for a live and interactive demo.

API Parameters

Search Query

query

Required

Parameter defines the query you want to search. You can use anything that you would use in a regular Naver Maps search.

Geographic Location

center

Optional

Parameter defines the coordinates of the point in South Korea to search around, as latitude,longitude (e.g. 35.1796,129.0756 for Busan). The distance of each result is measured from this point. Naver Maps searches around Seoul City Hall when it's not set.

Advanced Filters

sort_by

Optional

Parameter defines the order of the results. By default, results come in the order of the Naver Maps list.

Options:
distance - Distance

Lists of franchise branches, such as 스타벅스, are already sorted by distance, and mart lists keep their own order.

open_state

Optional

Parameter defines the open state of the places.

Options:
now - Open now

It applies to restaurants and cafes, hospitals, pharmacies, animal hospitals, gyms and other leisure places, and attractions such as parks. The other lists ignore it.

bookable

Optional

Parameter defines whether to only show places that can be booked on Naver. It can be set to true or false (default).

Pharmacies, convenience stores, movie theaters, gas stations, franchise lists, and accommodations ignore it. Mart lists return no places with it.

coupon

Optional

Parameter defines whether to only show places with a coupon. It can be set to true or false (default).

Hospitals, pharmacies, animal hospitals, convenience stores, movie theaters, gas stations, and franchise lists ignore it.

naver_pay

Optional

Parameter defines whether to only show places that accept Naver Pay. It can be set to true or false (default).

It applies to restaurants and cafes, hair and nail salons, and place lists such as banks, hotels, and motels. Mart lists return no places with it, and the other lists ignore it.

wheelchair_accessible

Optional

Parameter defines whether to only show places with a wheelchair accessible entrance. It can be set to true or false (default).

Convenience stores, movie theaters, gas stations, and franchise lists ignore it.

Dates And Guests

check_in_date

Optional

Parameter defines the check-in date. The format is YYYY-MM-DD (e.g., 2026-11-20). It must be used together with check_out_date.

Dates apply to accommodation lists, such as 펜션, 캠핑장, and 글램핑. With dates, Naver Maps only returns the places available for the stay, and price is the average nightly price.

check_out_date

Optional

Parameter defines the check-out date. The format is YYYY-MM-DD (e.g., 2026-11-22). It must be used together with check_in_date, and be later than it.

adults

Optional

Parameter defines the number of adults. It's used together with check_in_date and check_out_date, and ignored without them.

adults and children can add up to 15 guests, the most Naver Maps allows.

children

Optional

Parameter defines the number of children. It's used together with check_in_date and check_out_date, and ignored without them. Naver Maps has a single guest count, so children are added to adults: adults=2 and children=1 search for 3 guests, like adults=3.

adults and children can add up to 15 guests, the most Naver Maps allows.

Pagination

page

Optional

Value is used to get results on a specific page. (e.g., 1 (default) is the first page of results, 2 is the 2nd page of results, 3 is the 3rd page of results, etc.). Naver Maps returns up to 70 results per page, and up to 300 results (5 pages).

Serpapi Parameters

engine

Required

Set parameter to naver_maps to use the Naver Maps API engine.

no_cache

Optional

Parameter will force SerpApi to fetch the Naver Maps results even if a cached version is already present. A cache is served only if the query and all parameters are exactly the same. Cache expires after 1h. Cached searches are free, and are not counted towards your searches per month. It can be set to false (default) to allow results from the cache, or true to disallow results from the cache. no_cache and async parameters should not be used together.

async

Optional

Parameter defines the way you want to submit your search to SerpApi. It can be set to false (default) to open an HTTP connection and keep it open until you got your search results, or true to just submit your search to SerpApi and retrieve them later. In this case, you'll need to use our Searches Archive API to retrieve your results. async and no_cache parameters should not be used together. async should not be used on accounts with Ludicrous Speed enabled.

zero_trace

Optional

Enterprise only. Parameter enables ZeroTrace mode. It can be set to false (default) or true. Enable this mode to skip storing search parameters, search files, and search metadata on our servers. This may make debugging more difficult.

api_key

Required

Parameter defines the SerpApi private key to use.

output

Optional

Parameter defines the format of the result. It can be set to json (default) to get a structured JSON of the results, html to get the raw HTML retrieved, or md to get a markdown-formatted version optimized for LLMs and AI agents.

json_restrictor

Optional

Parameter defines the fields you want to include in the output, reducing payload size for faster response. See the JSON Restrictor documentation for more details.

API Results

JSON Results

JSON output includes structured data for Local Results.

A search status is accessible through search_metadata.status. It flows this way: Processing -> Success || Error. If a search has failed, error will contain an error message. search_metadata.id is the search ID inside SerpApi.

HTML Results

This API does not have a full HTML response, only text. search_metadata.prettify_html_file contains a link to the prettified version of the result. It is displayed in the playground.

Markdown Results

Markdown output is optimized for LLMs and AI agents. It provides most of the same informational content as JSON in a token-efficient format using tables, markdown links, and YAML frontmatter.

To access, use the output=md parameter, the /search.md endpoint, or request header Accept: text/markdown.

API Examples

Example with query: Coffee

Example with query: Coffee

JSON Example

{
  ...
  "search_information": {
    "total_results": 80299,
    "list_type": "place"
  },
  "local_results": [
    {
      "title": "카페이마",
      "place_id": "11678597",
      "link": "https://map.naver.com/p/entry/place/11678597",
      "type": "카페",
      "reviews": 5203,
      "description": "함박 스테이크와 커피의 완벽한 조화",
      "address": "서울 종로구 세종로",
      "road_address": "세종대로 152 일민미술관 1층",
      "lot_address": "세종로 139-8",
      "distance": "370m",
      "phone": "0507-1498-2165",
      "open_state": "영업 전",
      "hours": "11:00에 영업 시작",
      "thumbnail": "https://ldb-phinf.pstatic.net/20220531_269/1653980732163MXlog_JPEG/waffle.jpg",
      "image_count": 24,
      "images": [
        "https://ldb-phinf.pstatic.net/20220531_269/1653980732163MXlog_JPEG/waffle.jpg",
        "https://ldb-phinf.pstatic.net/20220531_150/1653980728130dBeQe_JPEG/classic_hamburg.jpg",
        ...
      ],
      "gps_coordinates": {
        "latitude": 37.5698359,
        "longitude": 126.9776958
      }
    },
    ...
  ],
  ...
}

Example with price for query: 호텔 and center: 35.1796,129.0756

Hotels, motels, and other lodging have the lowest price Naver Maps shows for a stay. price_comparison is true when Naver Maps compares the prices of the place on booking sites. The distance of each place is measured from center, while Naver Maps measures it from your own location.

Example with price for query: 호텔 and center: 35.1796,129.0756

JSON Example

{
  ...
  "local_results": [
    {
      "title": "부산시티호텔",
      "place_id": "1486674680",
      "link": "https://map.naver.com/p/entry/place/1486674680",
      "type": "호텔",
      "reviews": 512,
      "description": "편안한 침구와 깨끗한 룸 컨디션의 휴식처",
      "address": "부산 연제구 연산동",
      "road_address": "신촌로 19 부산시티호텔",
      "lot_address": "연산동 1356-12",
      "distance": "350m",
      "phone": "051-851-1122",
      "price": "72,340원",
      "extracted_price": 72340,
      "price_comparison": true,
      "thumbnail": "https://ldb-phinf.pstatic.net/20220322_113/16479285088608NujX_JPEG/DSC_8164___________C.jpg",
      "image_count": 1,
      "images": [
        "https://ldb-phinf.pstatic.net/20220322_113/16479285088608NujX_JPEG/DSC_8164___________C.jpg"
      ],
      "gps_coordinates": {
        "latitude": 35.1827122,
        "longitude": 129.0761708
      }
    },
    ...
  ],
  ...
}

Example with page: 2

page gets the results of a specific page. Naver Maps returns up to 70 results per page, and up to 300 results, so page 5 is the last one. serpapi_pagination has the SerpApi links to get the other pages.

Example with page: 2

JSON Example

{
  ...
  "local_results": [
    {
      "title": "투썸플레이스 파인애비뉴점",
      ...
    },
    ...
  ],
  "serpapi_pagination": {
    "current": 2,
    "previous": "https://serpapi.com/search.json?engine=naver_maps&page=1&query=Coffee",
    "next": "https://serpapi.com/search.json?engine=naver_maps&page=3&query=Coffee",
    "other_pages": {
      "1": "https://serpapi.com/search.json?engine=naver_maps&page=1&query=Coffee",
      "3": "https://serpapi.com/search.json?engine=naver_maps&page=3&query=Coffee",
      "4": "https://serpapi.com/search.json?engine=naver_maps&page=4&query=Coffee",
      "5": "https://serpapi.com/search.json?engine=naver_maps&page=5&query=Coffee"
    }
  }
}

JSON Structure Overview

{
  ...
  "search_information": {
    "total_results": "Integer - Number of places Naver Maps found for the query.",
    "list_type": "String - Kind of list Naver Maps returned, which decides the details of each place. (Ex. place, restaurant, franchise, mart, hospital, hairshop, accommodation, gas)",
    "local_results_state": "String - Fully empty when Naver Maps returns no places.",
    "regions": "Array - Regions Naver Maps matched the query to when it's the name of a region, which Naver Maps lists no places for. (Ex. 부산광역시 for 부산)"
  },
  "local_results": [
    {
      "title": "String - Name of the place.",
      "place_id": "String - Naver Maps ID of the place.",
      "link": "String - Link to the place on Naver Maps.",
      "type": "String - Category of the place. (Ex. 카페,디저트)",
      "rating": "Float - Average rating of the place, out of 5.",
      "reviews": "Integer - Number of visitor and blog reviews of the place.",
      "description": "String - Short description of the place by Naver Maps. (Ex. 덕수궁이 한눈에 들어오는 뷰 맛집)",
      "promotion": "String - Promotion of the place. (Ex. 첫 방문 20%할인)",
      "coupon": "String - Coupon of the place. (Ex. 알림받기 하면 네이버 예약시 3% 할인 쿠폰)",
      "membership_benefit": "String - Benefit for members of the place. (Ex. 결제금액의 2% 적립)",
      "address": "String - Short address Naver Maps shows for the place, usually its city, district, and neighborhood. (Ex. 서울 종로구 세종로)",
      "road_address": "String - Road name address of the place. (Ex. 세종대로 152 일민미술관 1층)",
      "lot_address": "String - Lot number address of the place. (Ex. 세종로 139-8)",
      "distance": "String - Distance of the place from center. (Ex. 370m)",
      "phone": "String - Phone number of the place.",
      "open_state": "String - Whether the place is open. (Ex. 영업 중)",
      "hours": "String - When the place opens or closes next. (Ex. 23:00에 영업 종료)",
      "day_off": "String - Next day off of the place. (Ex. 10/28(수))",
      "day_off_description": "String - Regular days off of the place. (Ex. 2, 4번째 수요일 휴무)",
      "new_opening": "Boolean - True when Naver Maps marks the place as newly opened.",
      "frequently_revisited": "Boolean - True when Naver Maps marks the place as often revisited (재방문 많은).",
      "tv_program": "String - TV program that featured the place. (Ex. 생방송투데이)",
      "michelin_guide": {
        "year": "String - Year of the Michelin Guide. (Ex. 2026)",
        "region": "String - Region of the Michelin Guide. (Ex. 서울)",
        "stars": "Integer - Michelin stars of the place, from 1 to 3.",
        "bib_gourmand": "Boolean - True when the place has a Bib Gourmand.",
        "description": "String - Distinction of the place in the Michelin Guide. (Ex. 빕구르망 - 합리적인 가격에 훌륭한 음식을 선사하는 친근한 분위기의 레스토랑)",
        "link": "String - Link to the place in the Michelin Guide."
      },
      "wheelchair_accessible": "Boolean - True when the place has a wheelchair accessible entrance.",
      "naver_pay": "Boolean - True when Naver Maps shows the Naver Pay badge for the place.",
      "naver_order": "Boolean - True when the place takes table orders, pre-orders, or pickup orders on Naver (주문).",
      "delivery": "Boolean - True when the place delivers through Naver (배달 or 지금배달).",
      "parcel_service": "Boolean - True when the place takes parcel bookings on Naver (택배예약).",
      "place_plus": "Boolean - True when Naver Maps shows the Place Plus badge for the place.",
      "price": "String - Price Naver Maps shows for the place: the lowest price of a stay for lodging, or a representative price such as the price of a cut for hair salons. (Ex. 컷 40,000원)",
      "extracted_price": "Integer - Price, in won.",
      "price_comparison": "Boolean - True when Naver Maps compares the prices of the place on booking sites.",
      "specialists": [
        {
          "name": "String - Medical field of the specialists. (Ex. 정신건강의학과)",
          "count": "Integer - Number of specialists in that field."
        }
      ],
      "fuel_prices": [
        {
          "fuel": "String - Name of the fuel. (Ex. 휘발유)",
          "price": "String - Price of the fuel per liter. (Ex. 1,914)",
          "extracted_price": "Integer - Price of the fuel per liter, in won.",
          "lowest": "Boolean - True when Naver Maps marks the price as the lowest."
        }
      ],
      "amenities": "Array - Amenities of the place. (Ex. 글램핑, 개별바비큐)",
      "info_cards": [
        {
          "title": "String - Title of the card. (Ex. 주간 인기 많은 메뉴, 3개월 방문 많은 진료)",
          "description": "String - Text of the card."
        }
      ],
      "thumbnail": "String - Link to the main photo of the place.",
      "image_count": "Integer - Number of photos of the place.",
      "images": "Array - Links to photos of the place.",
      "popular_menu": [
        {
          "title": "String - Name of the menu item.",
          "price": "String - Price of the menu item. (Ex. 5,700원)",
          "extracted_price": "Integer - Price of the menu item, in won.",
          "thumbnail": "String - Link to the photo of the menu item."
        }
      ],
      "rooms": [
        {
          "title": "String - Name of the room.",
          "price": "String - Price range of the room. (Ex. 430,000~550,000원)",
          "thumbnail": "String - Link to the photo of the room."
        }
      ],
      "styles": [
        {
          "title": "String - Name of the style Naver Maps shows on its photo. (Ex. 볼륨매직)",
          "thumbnail": "String - Link to the photo of the style.",
          "popular": "Boolean - True when Naver Maps marks the style as popular."
        }
      ],
      "user_photos": [
        {
          "thumbnail": "String - Link to the photo.",
          "user": {
            "name": "String - Name of the visitor who posted the photo.",
            "thumbnail": "String - Link to the profile photo of the visitor."
          }
        }
      ],
      "blog_photos": [
        {
          "thumbnail": "String - Link to the photo.",
          "user": {
            "name": "String - Name of the blog author.",
            "thumbnail": "String - Link to the profile photo of the blog author."
          }
        }
      ],
      "user_reviews": [
        {
          "snippet": "String - Text of a visitor review.",
          "snippet_highlighted_words": "Array - Words of the review Naver Maps highlights."
        }
      ],
      "talktalk_link": "String - Link to chat with the place on Naver TalkTalk.",
      "bookable": "Boolean - True when the place can be booked on Naver.",
      "booking_link": "String - Link to book the place on Naver.",
      "gps_coordinates": {
        "latitude": "Float - Latitude of the place.",
        "longitude": "Float - Longitude of the place."
      }
    }
  ],
  "serpapi_pagination": {
    "current": "Integer - Current page.",
    "previous": "String - SerpApi link to the previous page.",
    "next": "String - SerpApi link to the next page.",
    "other_pages": {
      "2": "String - SerpApi link to page 2."
    }
  }
}