Naver Search Scraper & API - Web, Blog and Cafe Results avatar

Naver Search Scraper & API - Web, Blog and Cafe Results

Pricing

$2.00 / 1,000 search results

Go to Apify Store
Naver Search Scraper & API - Web, Blog and Cafe Results

Naver Search Scraper & API - Web, Blog and Cafe Results

Get Naver search results as clean rows: position, title, URL, snippet and domain from the web tab, plus author, blog ID and date for blog posts and cafe articles. For Korean SEO, brand monitoring and influencer research. Empty searches are free.

Pricing

$2.00 / 1,000 search results

Rating

0.0

(0)

Developer

SR

SR

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Share

Naver Search Scraper & Naver Search API: Web, Blog and Cafe Results

Naver Search Scraper works as a Naver search API for Korean SEO, brand monitoring and blog research: send keywords, get organic web, blog and cafe results from Naver as clean dataset rows. Use it to research Korean keywords, monitor brand mentions, identify relevant bloggers or compare which pages appear for your campaign queries. Each result is a separate row with its search query, position, title, destination URL and snippet. Blog results also include the author, blog identifier and publication date when Naver shows them.

No Naver developer account, client ID or browser is needed. You choose the queries, the tab, the sort order and how many results you want per query; the actor handles pagination and returns a flat table you can export to JSON, CSV or Excel.

What Naver Search Scraper returns

Choose the web tab for general website visibility, the blog tab for posts and creator discovery, or the cafe tab for community articles. These are separate Naver search surfaces. Positions describe the selected tab and sort order, so compare runs that use the same settings. A position in blog search is not a position in web search.

The actor excludes blog advertisements and removes duplicate destination URLs within each query. It keeps the first occurrence and numbers the remaining results from one. A page that appears for two different queries remains a result for both queries. This allows you to group rows by keyword without losing the relationships between keywords and destinations.

This version returns information shown in the search results. It does not open every post to collect its full text, comments, likes or other engagement statistics. A snippet is an excerpt supplied by Naver and may differ from the current page content.

How to use the Naver search API in four steps

  1. Open the actor and enter one or more keywords in Search queries, in Korean or English.
  2. Pick the tab: web for websites, blog for Naver Blog posts, cafe for Naver Cafe articles.
  3. Pick the sort order (relevance or date) and set maxResults per query.
  4. Start the run and download the dataset, or read it from the Apify API in your own code.

You can also start the actor from the Apify API, a schedule, a webhook or an integration such as Make, Zapier or n8n, so the same Naver search runs every day or week without manual work.

Input and search settings

Provide a queries array of search phrases. Korean phrases and English terms both work. Leading and trailing whitespace is removed, empty entries are skipped, and identical queries are processed once. You can supply up to 50 unique queries, each containing up to 500 characters. A list with no usable queries returns an input error.

The tab setting accepts web, blog or cafe, with web as the default. The sort setting accepts relevance or date. Relevance preserves Naver's relevance order; date requests newest results first. Date sorting is useful for recent brand mentions, while relevance is useful for keyword visibility and content research.

maxResults limits the number of unique results for each query. Its default is 30 and its supported range is 1 to 1000. Web results are selected from the website collections in Naver’s combined search pages; blog posts, answers and advertisements in those pages are excluded. The available web total varies by query and sort order. The actor follows the available pages until the requested limit or the source ends. A requested maximum is a limit, not a guarantee that Naver has that many results.

fieldtypedefaultwhat it does
queriesarray of strings(required)Keywords to search, up to 50 unique queries
tabweb, blog, cafewebWhich Naver search tab to collect
sortrelevance, daterelevanceNaver's order or newest first
maxResultsinteger 1–100030Unique results per query

For the query used in the captured examples:

{
"queries": ["캠핑 의자"],
"tab": "blog",
"sort": "relevance",
"maxResults": 30
}

Apify handles continuation automatically. You do not need to provide a cursor for a normal actor run. The number of rows ultimately returned depends on your input, available search results and the applicable free-user limit.

Output fields and exports

Results are written to the default dataset. Download them as JSON, CSV or Excel from the dataset view, or read them using the Apify dataset API. The run's OUTPUT record reports delivery counts and status, and an errors record describes queries that could not be collected when applicable.

Every row includes source, fetched_at, query, position, url, title, snippet, domain, engine, country, tab and sort. The source is naver-search; engine distinguishes naver_web, naver_blog and naver_cafe. The country is kr, representing the Korean search market. fetched_at is a UTC timestamp recording when that result page was retrieved.

Web rows may include a displayed breadcrumb URL, site_name and ai_summary. Naver sometimes presents an AI summary as a table instead of a text excerpt; such rows can have an empty snippet. Blog rows expose author, author_url, blog_id, post_id, image_count and thumbnail_url when those values appear in search. blog_id and post_id identify posts on Naver's blog hosts; both are null for external blogs, which retain their URL, author and other available search fields. Cafe rows expose cafe_name, cafe_id and post_id. The cafe search tab does not show a reliable article author, so its author field is null. Missing optional information is returned as null rather than guessed.

Web URLs point to the real destination page. When Naver wraps a shop or brand link in its own click-tracking address, the actor returns the destination behind it, and domain is that destination's domain. Duplicates are removed on the destination URL, so one brand site does not appear twice under different tracking links.

Output example: a Naver blog search result

This is position 5 of the blog search for 캠핑 의자 (camping chair), exactly as the actor returned it on 5 October 2026:

{
"source": "naver-search",
"fetched_at": "2026-10-05T00:37:23.000Z",
"query": "캠핑 의자",
"position": 5,
"url": "https://blog.naver.com/petit360/224428388470",
"title": "캠핑 의자 고를 때 무게만 보고 계신가요? 두 번 사기 전에 꼭 앉아보고 체크할 것 3가지",
"snippet": "[ 불멍 4시간도 편안한 하이백 릴렉스체어 보러가기] 캠핑의자 1+1 휴대용 경량 릴렉스체어 LAKSELV naver.me 확인 ③. 내 테이블·화로대 높이와 맞나요? 의외로 많이 놓치는 부분입니다. 의자만 편해도 테이블과 높이가 안 맞으면 식사할 때마다 허리를 숙이거나 어깨를 들어 올려야 해요. 의자 유형 좌면 높이(대략) 어울리는 테이블 추천 상황 로우체어 25~30cm 로우...",
"domain": "blog.naver.com",
"engine": "naver_blog",
"country": "kr",
"tab": "blog",
"sort": "relevance",
"site_name": null,
"ai_summary": false,
"author": "동키의 하루",
"author_url": "https://blog.naver.com/petit360",
"blog_id": "petit360",
"post_id": "224428388470",
"cafe_name": null,
"cafe_id": null,
"date_text": "4일 전",
"published_date": "2026-10-01",
"image_count": null,
"thumbnail_url": "https://search.pstatic.net/common/?src=http%3A%2F%2Fblogfiles.naver.net%2FMjAyNjEwMDFfMTkx%2FMDAxNzkwODM5MzQ0NzQ3.nvgMQZHGRuSy_xxHZ5GXWtT6J7bzink75_OUaTMp0ogg.9KuzIpAWo-S3rLihplf7_EqvKCS60xNNYpbpJc4A4Jcg.PNG%2Fimage.png%231024x1024&type=ff192_192"
}

Output example: a Naver web search result

Position 3 of the web search for the same query, from the same day:

{
"source": "naver-search",
"fetched_at": "2026-10-05T00:37:43.000Z",
"query": "캠핑 의자",
"position": 3,
"url": "https://konucamping.com/",
"title": "코누 공식 온라인몰",
"snippet": "[코누캠핑] 윈드스크린,블랙코팅타프,캠핑의자 1 1,경량 캠핑테이블,릴렉스체어, 롤테이블",
"domain": "konucamping.com",
"engine": "naver_web",
"country": "kr",
"tab": "web",
"sort": "relevance",
"site_name": "코누",
"ai_summary": false,
"author": null,
"author_url": null,
"blog_id": null,
"post_id": null,
"cafe_name": null,
"cafe_id": null,
"date_text": null,
"published_date": null,
"image_count": null,
"thumbnail_url": null,
"displayed_url": "konucamping.com"
}

Publication dates

date_text preserves the date displayed by Naver. published_date is a calendar day in Korea, formatted as YYYY-MM-DD. It is derived from an absolute date or a relative value expressed in minutes, hours or days. A value expressed in weeks or a broad time interval does not identify an exact day, so published_date remains null. Use date_text when your analysis needs to preserve that uncertainty.

Use cases for Naver search data

  • Korean SEO and rank tracking. Naver is a leading search engine in Korea. Run your target keywords on the web tab every week and track the position of your domain and your competitors' domains over time.
  • Brand monitoring. Search your brand and product names on the blog and cafe tabs with sort: date to see new posts and community discussions as they appear.
  • Influencer and blogger discovery. Blog rows carry blog_id, author and author_url, so you can group results by blogger and find the creators who write most about your category.
  • Content research. Titles and snippets of the top blog posts show which angles, questions and formats rank for a keyword in Korea.
  • Agency reporting. Export the dataset to a spreadsheet or BI tool and report Naver visibility next to Google visibility for clients entering the Korean market.

Naver's official search API (Naver Developers) returns blog, cafe, news and other results as JSON, but it needs an application registration, client credentials and a daily call quota, and its results are not guaranteed to match what a user sees on the search page. This actor returns the results as they appear on Naver's search tabs, with positions, without any Naver account.

General SERP API providers cover Naver as one engine among many, usually with a monthly plan. This actor is pay per result with no subscription, and it returns blog author, blog ID and cafe fields as their own columns.

Other Apify actors for Naver often focus on one surface, such as blog posts only, or charge per page or per query on top of results. Here one actor covers web, blog and cafe with the same output schema, and searches without results cost nothing.

Pricing and free-user limit

The result event counts delivered dataset rows. There is no custom run-start charge, and searches that return no rows incur no result charge. The current price per result is shown in the actor's Pricing tab. A higher maxResults can increase the number of delivered rows, but it does not create a charge for unavailable results.

Runs by users without a paid Apify plan return at most ten rows in total. This limit applies across all queries in the run. Paid users can request the supported result volume without that ten-row cap. The run output indicates when the free-user cap applied, so account for it when comparing counts from different runs.

FAQ

Why did I receive fewer rows than maxResults?

Naver may have fewer matching results, web search has a source limit, and duplicate URLs are removed. The free-user cap can also reduce delivery. Check the run output and warnings before treating the number of rows as the size of the full search index.

Are result positions comparable across runs?

Positions reflect Naver's order at collection time, after removing advertisements and duplicates. Compare the same query, tab and sort setting. Search results change over time, so retain fetched_at alongside position when building a history.

Can I get full blog posts or comments?

This actor collects the search-result fields. Full post bodies, reactions and comments are outside its current output. Destination URLs and blog identifiers can help you connect these results to a separate content collection workflow.

What happens when a query has no results or collection fails?

A query with no results returns no dataset rows. When other queries succeed, their rows are retained. Collection problems are recorded in the run output or errors; inspect warnings when a run reports partial results. No replacement rows are invented.

No. Some Naver web results link through a Naver payment or click-tracking address. The actor returns the shop or brand page behind that link, so url and domain show who actually ranks. A wrapped link without a usable destination is left out instead of being delivered as a Naver address.

Do I need a Naver API key or client ID?

No. You only need an Apify account. The actor does not use Naver Developers credentials, so there is no Naver quota to manage.

Can I search in English or only in Korean?

Both work. Queries are sent to Naver's Korean search market as you type them. Most Naver results are in Korean, so Korean keywords usually return more and more relevant results than their English translations.

Can I call this Naver search API from my own code?

Yes. Start the actor with the Apify API or one of the Apify client libraries for JavaScript and Python, wait for the run to finish and read the dataset items. The rows have the same fields as the examples above.