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
- Open the Naver Search API and click Try for free.
- Enter a
query(Korean or English), pick awherevertical, setmaxResultsPerQuery. - 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 }'
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"))
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)