DEV Community

Cover image for Naver API for Developers: Scrape Korea's Top Search Engine as JSON in 2026
Truffle Pig Data
Truffle Pig Data

Posted on

Naver API for Developers: Scrape Korea's Top Search Engine as JSON in 2026

If your product touches Korea, Google's results are the wrong map: Naver is where Korean users actually search, and its results pages look nothing like a Google SERP. Getting those pages as data is the hard part for anyone outside Korea. This post covers what Naver's official developer program does and does not give you, and the shortcut I use: the Naver Search API on Apify, which returns web, news, image, video, and shopping results as structured JSON rows.

Disclosure: the Apify links in this post are affiliate links. If you run the Actor, I may earn a referral commission at no extra cost to you.

Doesn't Naver have an official API?

It does, and if you are building a Korean consumer service it is worth a look. It also comes with real friction for data work: developer registration, client keys, daily call quotas, and responses shaped for embedding features rather than for studying the results page itself. What it will not show you is the SERP as users see it, the actual ranking order, the ad and shopping blocks, the news mix. A scraper-as-API answers that question directly: send a query, get back what Naver displayed, row by row with positions.

What the Naver Search API returns

The Naver Search API returns search results from five verticals as flat JSON rows, each tagged with its result_type, query, vertical, and position.

Field Example Notes
result_type web_organic Also ad, shopping, news, image, video
position 1 Rank as displayed
title 서울 맛집 베스트 30 Korean handled natively
link / source example.co.kr With displayed_link and snippet
price shopping rows With rating, reviews, stores
views video rows With channel and duration

The default nexearch vertical returns the integrated page with its mixed blocks; web, news, image, and video drill into one vertical and paginate.

Who this is for

Market researchers sizing Korean demand who need Naver data, not Google proxies. SEO teams tracking rankings for brands that sell into Korea. And AI-agent builders whose assistants need grounded Korean search instead of hallucinated translations.

The manual way, and where it breaks

Scraping Naver yourself starts with the usual SERP problems, JavaScript rendering and shifting markup, and adds two more: the integrated page mixes a dozen block types with different structures, and everything is in Korean, including the parts that tell you something went wrong. Debugging a selector when you cannot read the page is its own special experience; I did it long enough to decide once was plenty. Proxies, rate limits, and layout churn finish the argument.

The faster way: run the Naver scraper

Apify Console

  1. Open the Naver Search API and click Try for free.
  2. Enter a query (Korean or English), pick a where vertical, set maxResultsPerQuery.
  3. Run it and export the rows as JSON, CSV, or Excel.

REST

curl -X POST "https://api.apify.com/v2/acts/johnvc~naver-search-api/runs?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "query": "서울 맛집", "where": "web", "maxResultsPerQuery": 20 }'
Enter fullscreen mode Exit fullscreen mode

Endpoint mechanics: the Apify API docs.

Search Naver in Python

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run = client.actor("johnvc/naver-search-api").call(
    run_input={"query": "서울 맛집", "where": "web", "maxResultsPerQuery": 20}
)

for row in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(row["position"], row["title"], row.get("source"))
Enter fullscreen mode Exit fullscreen mode

Batch mode takes a queries list, so a 50-keyword rank check is one run.

Get Naver web results as clean rows

The base recipe lives in the task Get Naver web search results, and Export Naver search results to CSV is the same run pointed at a spreadsheet.

Track Korean news coverage

The news vertical returns press, date, and snippet per story: Search Naver news by keyword is the general case, and Monitor Samsung coverage with Naver news search shows it aimed at one company.

Pull images and video results

Visual verticals come back with their own fields, dimensions for images, channel and view counts for video: Search Naver images by keyword and Search Naver video results.

Track brand rankings over time

Run the same keyword list on a schedule and chart position per brand, the k-beauty worked example being Track Naver keyword rankings for K-beauty brands.

Give Claude Korean search over MCP

Through the Model Context Protocol, Claude, Claude Code, and Cursor can run live Naver queries as tool calls, which makes "what is trending in Korean coverage of this brand" answerable with sources. The setup is in Search Naver from Claude via MCP for Korean research, and you can read more about Claude at claude.ai.

FAQ about scraping Naver

Naver has an official developer API, so why use a scraper?

Different questions, different tools. The official API suits building features inside quota limits after registration; the scraper answers SERP questions, actual ranking order, ad and shopping blocks, with no keys and no Korean-language signup flow.

What does the Naver scraper cost per result?

A negligible start fee plus $0.005 per result row on the free plan, scaling down to $0.003 on higher Apify plans, with no monthly minimum. You pay only for rows returned, and maxResultsPerQuery caps each query.

Can the scraper handle Korean queries?

Yes, and it should: Korean queries return the richest results. English works too, but if you are researching the Korean market, query the way Korean users do, like 서울 맛집 rather than "Seoul restaurants".

Can Claude run this Naver scraper through MCP?

It can. Connected through the Apify MCP server, the Actor is a callable tool in Claude, Claude Code, Cursor, and other MCP clients, with live results returned into the conversation.

How do I schedule the scraper for rank tracking?

Save your keyword list as a task, attach an Apify schedule, and each run appends positions with timestamps, which builds the trend line. Start from the Naver Search API.

What will the scraper not give me?

Anything Naver does not render for the query: integrated-page block mixes vary, shopping rows only appear where Naver shows shopping, and positions are the order displayed at crawl time, not a stable global rank. Treat each run as a snapshot.

More from Truffle Pig Data

Non-Google search is a family: the Naver AI Overview API tracks Naver's AI answer boxes for Korean AEO work, the Baidu Search API covers China, and the Yandex Search API covers Russia and the CIS.

Wrapping up

Korea searches on Naver, and now Naver fits in a dataframe. Run one query through the Naver Search API and see the Korean SERP as rows.

Top comments (0)