SocialCrawl

Naver

Search Naver blog, news, cafe, KnowledgeiN, local, image, encyclopedia and web, plus Korean search-volume and shopping-click trends, with one API key.

Naver is South Korea's dominant search portal. It indexes the Korean web, and especially Korean blogs, community cafes and Q&A, far more deeply than Google does, so for the Korean market it is usually the more meaningful signal.

Base URL: /v1/naver/...

Naver shut down its Shopping, Book and Academic-document corpora on 31/07/2026, so /v1/naver/shop/search, /v1/naver/book/search and /v1/naver/doc/search no longer exist. See Retired corpora for what to do instead.

Quickstart

1. Search a corpus

Every endpoint is a GET with an x-api-key header. You do not need a Naver Cloud account, an API HUB application, or a client-id/secret pair. We hold those.

curl "https://www.socialcrawl.dev/v1/naver/blog/search?query=%EC%86%8C%EC%89%AC%EC%96%BC%ED%81%AC%EB%A1%A4&display=10" \
  -H "x-api-key: YOUR_API_KEY"

Swap blog for any other corpus.

2. Or hit five corpora in one call

brief fans one query across news, blog, cafearticle, kin and webkr together and returns per-corpus counts alongside the results.

curl "https://www.socialcrawl.dev/v1/naver/brief?query=%EC%A0%84%EA%B8%B0%EC%B0%A8&corpora=news,blog,cafearticle&include=digest" \
  -H "x-api-key: YOUR_API_KEY"

include=digest adds an LLM-written English digest with translated quotes alongside the Korean originals, which is the fastest way for a non-Korean-reading team to act on Korean results.

Search the Korean web

The eight corpora share one response shape but index genuinely different parts of the Korean internet, and picking the wrong one is the most common reason a Korean query comes back thin. All eight are 1 credit.

EndpointCreditsWhat it returnsKey parameters
GET /v1/naver/blog/search1Long-form Korean blog writing, where most Korean product reviews, comparisons and how-to guides livequery, display, start, sort
GET /v1/naver/cafearticle/search1Naver Cafe community posts, the Korean equivalent of forumsquery, display, start, sort
GET /v1/naver/kin/search1KnowledgeiN (지식iN) question-and-answer threads, in users' own wordsquery, display, start, sort (adds point)
GET /v1/naver/news/search1Korean press coverage, with both the publisher's own URL and Naver's hosted copyquery, display, start, sort
GET /v1/naver/webkr/search1Broad Korean web pages from Naver's own index, the closest analogue to a plain web searchquery, display, start
GET /v1/naver/encyc/search1Naver's curated Knowledge Encyclopedia: reference definitions written by editorsquery, display, start
GET /v1/naver/image/search1Images from Naver's crawl of the Korean web, returning the image files with dimensions, not the pages hosting themquery, display, start, sort, filter
GET /v1/naver/local/search1Korean business listings from Naver Maps with category, phone, district and street addresses, and map coordinatesquery, display, sort

display defaults to 10 and caps at 100, and start is a 1-indexed offset that caps at 1000. Both reject an out-of-range value with a 400.

Two corpora differ, both because Naver made them differ:

  • local caps display at 5 and defaults it to 1, so omitting display returns a single place. It ignores start entirely, which is why it is the one corpus with no pagination. A display above 5 is silently clamped by Naver rather than rejected.
  • image additionally takes filter (all, large, medium, small) to restrict results to a size band.

Reach for kin when you want the questions Korean users ask about a topic in their own words, which is a different and often better input to content planning than what marketers wrote about it. Many cafes are members-only, so a cafearticle result may link to a teaser rather than the full post. The title and snippet are still yours.

For news outside Korea use /v1/google_news/search. For Google's version of a Korean place, use /v1/google/business/info.

Clean up Korean input

EndpointCreditsWhat it returnsKey parameters
GET /v1/naver/errata1Naver's spelling correction for a mistyped Korean query, as a single errata stringquery
GET /v1/naver/adult1Whether a term is adult-only, as adultquery

errata returns an empty string when the query was already correct. This matters more in Korean than in English: Korean mistypes usually come from hitting the wrong jamo key, which produces a syllable that looks nothing like the intended one, so edit-distance correction misses them entirely. Run user-supplied queries through it before searching.

adult returns the string "1" or "0", not a boolean, a detail worth encoding once rather than debugging twice. Use it to moderate user-supplied search input, or to filter a keyword list before publishing it.

One call across the Korean internet

EndpointCreditsWhat it returnsKey parameters
GET /v1/naver/brief10One query run across news, blog, cafearticle, kin and webkr, with per-corpus countsquery, corpora, display, start, sort, include, cursor

corpora takes a CSV subset when you do not want all five, display sets items per corpus (1-100, default 20), and cursor is the preferred way to page. Prefer it over start.

Read trend data

EndpointCreditsWhat it returnsKey parameters
GET /v1/naver/search-trend5Naver's search-volume index over time, the Korean equivalent of Google Trendskeywords (up to 20), start_date, end_date, time_unit, group_name, device, gender, ages
GET /v1/naver/shopping-insight/category5Shopping click-share trend, comparing whole categoriescategory_code (up to 3), the same window and dimension params, plus breakdown
GET /v1/naver/shopping-insight/keyword5Shopping click-share trend, comparing product terms inside one categorycategory_code, keyword (up to 5), the same params, plus breakdown

All three return a time series under data.results[].data[] as {period, ratio} pairs, and all three share the same four optional dimensions: time_unit (date, week, month, default month), device (pc or mo), gender (f or m), and ages. Omit a dimension and you get the total. group_name on search-trend labels the series in the response and defaults to the first keyword.

ratio is a relative index, not a count. It is scaled 0-100 within the window you asked for, so the highest point in your range is always 100. Two separate requests are not comparable to each other, and no endpoint returns absolute search or click volumes. Naver does not publish those.

A keyword or category with no measurable volume returns no data points, and that call is not charged.

Four gotchas worth knowing

Only some endpoints compare, and the rest combine

Which one you get depends on the endpoint, so check before you read the series:

EndpointMultiple values behave as
search-trendOne combined series. The keywords are summed, so keywords=삼성전자,갤럭시 is "either term" demand, not two lines. Call once per term to compare them.
shopping-insight/categoryOne comparable series per category id, up to 3, sharing a scale.
shopping-insight/keywordOne comparable series per keyword, up to 5, sharing a scale.

Sending more values than an endpoint accepts returns a 400 naming the limit. We do not silently drop the extras, because a shorter list of series looks identical to "Naver had no data for those".

Setting breakdown on either Shopping Insight endpoint changes the shape again: it splits a single value by device, gender or age instead of comparing several, so only the first category id or keyword you passed is used.

The two Data Lab APIs start at different dates

EndpointHistory starts
search-trend2016-01-01
shopping-insight/category, shopping-insight/keyword2017-08-01

An earlier start_date is clamped up to the relevant floor rather than rejected, so asking for "everything" is safe on both.

ages uses different codes on different endpoints

This is Naver's own inconsistency, and we surface it rather than silently guess for you:

Endpointages values
search-trend1 through 11 (eleven fine-grained bands; 1 is 0-12, 11 is 60+). Note it is 1-based, so there is no 0.
shopping-insight/category, shopping-insight/keyword10, 20, 30, 40, 50, 60 (decade buckets)

Sending the wrong set returns a 400 from us before the call is made, so you are never charged for it.

Shopping Insight needs a category id

Naver publishes no category-list API, so the ids have to come from a table. The top-level ones:

Categorycategory_code
패션의류 (Fashion / clothing)50000000
패션잡화 (Fashion accessories)50000001
화장품/미용 (Cosmetics / beauty)50000002
디지털/가전 (Digital / appliances)50000003
가구/인테리어 (Furniture / interior)50000004
출산/육아 (Maternity / childcare)50000005
식품 (Food)50000006
스포츠/레저 (Sports / leisure)50000007
생활/건강 (Living / health)50000008
여가/생활편의 (Leisure / convenience)50000009
면세점 (Duty free)50000010
도서 (Books)50005542

Deeper subcategory ids are visible in the URL when you browse a category on Naver Shopping. Pass up to 3 comma-separated ids to compare them, or one id plus breakdown to split it by device, gender, or age.

Retired corpora

Naver shut down its Shopping, Book, and Academic-document search corpora on 31/07/2026 with no grace period and published no replacement API, so /v1/naver/shop/search, /v1/naver/book/search, and /v1/naver/doc/search no longer exist. This was Naver's decision, not ours, and no provider can resell those corpora because the upstream is gone.

If you were using them:

  • Shopping listings and prices: there is no API replacement. shopping-insight/category gives you demand and click trends for a category, which covers a lot of the analytical use, but not individual products or prices. For those you would need to scrape shopping.naver.com yourself.
  • Books: consider the 알라딘 Open API or Kakao Book Search.
  • Academic documents: no comparable open API exists.

brief rejects corpora=shop for the same reason.

All endpoints

14 endpoints available.

EndpointPathCredit Tier
Check whether a Korean search term is adult-only (성인 검색어 판별)/v1/naver/adultstandard (1cr)
Search Naver Blog/v1/naver/blog/searchstandard (1cr)
Search Naver Cafe articles/v1/naver/cafearticle/searchstandard (1cr)
Search Naver Encyclopedia/v1/naver/encyc/searchstandard (1cr)
Correct a mistyped Korean search query (오타변환)/v1/naver/erratastandard (1cr)
Search Naver Image/v1/naver/image/searchstandard (1cr)
Search Naver KnowledgeiN (지식iN)/v1/naver/kin/searchstandard (1cr)
Search Naver Local (장소 검색)/v1/naver/local/searchstandard (1cr)
Search Naver News/v1/naver/news/searchstandard (1cr)
Search Naver Web (웹문서)/v1/naver/webkr/searchstandard (1cr)
One query across the Korean internet (5 Naver corpora) + optional digest./v1/naver/briefadvanced (10cr)
Get Naver search-volume trend for Korean keywords (검색어트렌드)/v1/naver/search-trendadvanced (5cr)
Get Naver Shopping click trend for a category (쇼핑인사이트)/v1/naver/shopping-insight/categoryadvanced (5cr)
Get Naver Shopping click trend for keywords inside a category (쇼핑인사이트)/v1/naver/shopping-insight/keywordadvanced (5cr)

Platform notes

  • local/search is the one corpus Naver does not paginate. It returns at most 5 places and ignores any offset, so it is a single-page endpoint and returns no pagination cursor. Every other corpus paginates normally up to start=1000.
  • sort values are validated per corpus, because Naver's accepted values differ: sim/date for blog, news, cafe and image, plus point on KnowledgeiN, and random/comment on local. encyc and webkr ignore sort entirely. Sending a value the corpus does not accept returns a 400 before the call is made, so it costs you nothing.
  • Titles and descriptions come back HTML-tagged with <b> around matched terms, so you can highlight hits directly.
  • Korean text is returned as-is, never transliterated or machine-translated. Use brief with include=digest if you want an English synthesis alongside the Korean originals.
  • All endpoints use GET with query parameters and return the unified SocialCrawl envelope.

Next steps