# Naver Search API — Korean search results from search.naver.com: web, news, blogs, cafes, 지식iN Q&A, images, videos, shopping cards, power-link ads, related searches and autocomplete (Naver SERP scraper, no account)

> Naver's integrated results page (통합검색) for a query, every block it shows: organic results in Naver's own order (web pages, blog and cafe posts, videos, 지식iN answers), power-link ads, the news block, the image block, Naver Clip short videos, AI-generated related questions with their source documents, Naver's AI briefing when it shows one, shopping product cards, local places (Naver Place block, with the place_id the `naver` engine takes), related searches and the spelling correction Naver applied.
> ReefAPI engine `naver-search` · 11 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/naver-search/v1/<action>` with a JSON body.
- **Auth:** header `x-api-key: <YOUR_REEFAPI_KEY>` — create one free (1,000 credits, no card): https://reefapi.com/signup
- **Response (every call):** `{ ok: boolean, data: ..., meta: { record_count, credits, ... }, error: { code, message } }` — branch on `ok`. Failed calls are free.
- **One key + one shared credit pool** across every ReefAPI API. Per-call credits are listed on each endpoint below.
- **Use it from an AI agent (MCP):** connect `https://api.reefapi.com/mcp` (remote streamable-http). Clients that add connectors by URL, such as ChatGPT and the Claude app, connect with OAuth 2.1 (the user pastes their key once on a ReefAPI page; discovery at `/.well-known/oauth-protected-resource/mcp`). Config files send the key as `Authorization: Bearer <key>`. `?key=<key>` in the URL also works as a last-resort fallback.

## Endpoints

### POST https://api.reefapi.com/naver-search/v1/search — 3 credits
Naver's integrated results page (통합검색) for a query, every block it shows: organic results in Naver's own order (web pages, blog and cafe posts, videos, 지식iN answers), power-link ads, the news block, the image block, Naver Clip short videos, AI-generated related questions with their source documents, Naver's AI briefing when it shows one, shopping product cards, local places (Naver Place block, with the place_id the `naver` engine takes), related searches and the spelling correction Naver applied.

**Parameters:**
- `query` (string, required) — Search terms, in Korean or any language (e.g. 아이폰 17, 강남 맛집, python tutorial). Naver operators work as on the site ("exact phrase", -exclude).
- `sort` (enum, optional, default "relevance") — Order of the dated blocks (relevance or newest). [one of: relevance, date]
- `period` (enum, optional, default "all") — Only results published within this window. Ignored when date_from/date_to are given. [one of: all, 1h, 1d, 1w, 1m, 3m, 6m, 1y]
- `date_from` (string, optional) — Custom range start, YYYY-MM-DD (use with date_to).
- `date_to` (string, optional) — Custom range end, YYYY-MM-DD (use with date_from).
- `spell_check` (boolean, optional, default true) — Naver silently searches a corrected spelling when it thinks you mistyped (the answer's spelling_correction says so). false = search exactly what you typed.
- `include_related_searches` (boolean, optional, default true) — Fetch the related-searches block (one extra small request). false skips it.

**Returns:** query, spelling_correction, organic_results[]{position, type (web|blog|cafe|post|video|kin), title, url, snippet, source/author, date, date_iso, thumbnail…}, ads[]{position, advertiser, displayed_url, title, description, url, sitelinks[]}, news[], images[], clips[], related_questions[]{question, answer, sources[]}, ai_overview{text, sources[]}, shopping_results[], local_results[]{place_id, name, category, address, phone, reviews, latitude, longitude, url}, related_searches[]{query}, sections[]

**Example request body:**
```json
{
  "query": "아이폰"
}
```

### POST https://api.reefapi.com/naver-search/v1/web — 3 credits
Web documents (웹문서) — Naver's organic list on its own: 20 results per page with title, URL, displayed URL, snippet, site name, favicon and thumbnail. Paginate with `page`.

**Parameters:**
- `query` (string, required) — Search terms, in Korean or any language (e.g. 아이폰 17, 강남 맛집, python tutorial). Naver operators work as on the site ("exact phrase", -exclude).
- `page` (integer, optional, default 1) — 1-based result page (20 results per page as Naver serves them; up to page 20).
- `sort` (enum, optional, default "relevance") — Relevance (default) or newest first. [one of: relevance, date]
- `period` (enum, optional, default "all") — Only results published within this window. Ignored when date_from/date_to are given. [one of: all, 1h, 1d, 1w, 1m, 3m, 6m, 1y]
- `date_from` (string, optional) — Custom range start, YYYY-MM-DD (use with date_to).
- `date_to` (string, optional) — Custom range end, YYYY-MM-DD (use with date_from).
- `spell_check` (boolean, optional, default true) — Naver silently searches a corrected spelling when it thinks you mistyped (the answer's spelling_correction says so). false = search exactly what you typed.

**Returns:** results[]{position, type, title, url, displayed_url, domain, snippet, source, favicon, thumbnail, date, date_iso}, page, has_more, spelling_correction

**Example request body:**
```json
{
  "query": "아이폰"
}
```

### POST https://api.reefapi.com/naver-search/v1/news — 2 credits
Naver News search: 10 articles per page with title, publisher, article URL, Naver News URL, date, snippet, thumbnail and the cluster of related articles. Sort by relevance, newest or oldest; filter by period or a custom date range.

**Parameters:**
- `query` (string, required) — Search terms, in Korean or any language (e.g. 아이폰 17, 강남 맛집, python tutorial). Naver operators work as on the site ("exact phrase", -exclude).
- `page` (integer, optional, default 1) — 1-based result page (10 results per page as Naver serves them; up to page 40).
- `sort` (enum, optional, default "relevance") — Article order. [one of: relevance, date, oldest]
- `period` (enum, optional, default "all") — Only results published within this window. Ignored when date_from/date_to are given. [one of: all, 1h, 1d, 1w, 1m, 3m, 6m, 1y]
- `date_from` (string, optional) — Custom range start, YYYY-MM-DD (use with date_to).
- `date_to` (string, optional) — Custom range end, YYYY-MM-DD (use with date_from).

**Returns:** news[]{position, title, url, snippet, source, source_url, naver_news_url, date, date_iso, print_position, thumbnail, related_articles[], related_articles_total}, page, has_more

**Example request body:**
```json
{
  "query": "삼성전자"
}
```

### POST https://api.reefapi.com/naver-search/v1/blog — 3 credits
Naver Blog search: 30-40 posts per page with title, URL, snippet, blogger, blog URL, date, thumbnail and image count. Power-content ads in the list are flagged is_ad. Naver repeats part of a page on the next one; those repeats are removed, so a deeper page can hold fewer new posts (repeated_from_previous_page_removed says how many).

**Parameters:**
- `query` (string, required) — Search terms, in Korean or any language (e.g. 아이폰 17, 강남 맛집, python tutorial). Naver operators work as on the site ("exact phrase", -exclude).
- `page` (integer, optional, default 1) — 1-based result page (30 results per page as Naver serves them; up to page 10).
- `sort` (enum, optional, default "relevance") — Relevance (default) or newest first. [one of: relevance, date]
- `period` (enum, optional, default "all") — Only results published within this window. Ignored when date_from/date_to are given. [one of: all, 1h, 1d, 1w, 1m, 3m, 6m, 1y]
- `date_from` (string, optional) — Custom range start, YYYY-MM-DD (use with date_to).
- `date_to` (string, optional) — Custom range end, YYYY-MM-DD (use with date_from).

**Returns:** posts[]{position, type (blog|post|cafe|ad), title, url, snippet, author, author_url, date, date_iso, thumbnail, image_count, is_ad}, page, has_more, repeated_from_previous_page_removed

**Example request body:**
```json
{
  "query": "강남 맛집"
}
```

### POST https://api.reefapi.com/naver-search/v1/cafe — 3 credits
Naver Cafe search: about 30 posts per page with title, URL, snippet, cafe name, cafe URL, date and thumbnail. Sort, period, article type (all / trade / general / cafe names), trade method and trade status filters. Pages beyond 1 follow Naver's own continuation link, so page N costs N requests (max 5).

**Parameters:**
- `query` (string, required) — Search terms, in Korean or any language (e.g. 아이폰 17, 강남 맛집, python tutorial). Naver operators work as on the site ("exact phrase", -exclude).
- `page` (integer, optional, default 1) — 1-based result page (30 results per page as Naver serves them; up to page 5).
- `sort` (enum, optional, default "relevance") — Relevance (default) or newest first. [one of: relevance, date]
- `period` (enum, optional, default "all") — Posting period. [one of: all, 1h, 1d, 1w, 1m, 3m, 6m, 1y]
- `article_type` (enum, optional, default "all") — Kind of cafe post. [one of: all, trade, general, cafe_name]
- `trade_method` (enum, optional, default "all") — Trade method (trade posts). [one of: all, safe, general]
- `trade_status` (enum, optional, default "all") — Trade status (trade posts). [one of: all, selling, sold]

**Returns:** posts[]{position, type (cafe|ad), title, url, snippet, cafe_name, cafe_url, cafe_id, article_id, date, date_iso, thumbnail, is_ad}, page, has_more

**Example request body:**
```json
{
  "query": "아이폰"
}
```

### POST https://api.reefapi.com/naver-search/v1/kin — 2 credits
Naver 지식iN (Knowledge iN) Q&A search: 10 questions per page with question title and text, the shown answer excerpt, answerer nickname and badge, expert flag and date.

**Parameters:**
- `query` (string, required) — Search terms, in Korean or any language (e.g. 아이폰 17, 강남 맛집, python tutorial). Naver operators work as on the site ("exact phrase", -exclude).
- `page` (integer, optional, default 1) — 1-based result page (10 results per page as Naver serves them; up to page 30).

**Returns:** questions[]{position, title, url, question_id, question, answer, answer_url, answerer, answerer_badge, answerer_is_expert, date, date_iso}, page, has_more

**Example request body:**
```json
{
  "query": "아이폰 배터리"
}
```

### POST https://api.reefapi.com/naver-search/v1/images — 2 credits
Naver Image search: 50 images per page with the original image URL, a thumbnail, the page it is on, source name and domain, size and date.

**Parameters:**
- `query` (string, required) — Search terms, in Korean or any language (e.g. 아이폰 17, 강남 맛집, python tutorial). Naver operators work as on the site ("exact phrase", -exclude).
- `page` (integer, optional, default 1) — 1-based result page (50 results per page as Naver serves them; up to page 20).
- `sort` (enum, optional, default "relevance") — Relevance (default) or newest first. [one of: relevance, date]
- `period` (enum, optional, default "all") — Only results published within this window. Ignored when date_from/date_to are given. [one of: all, 1h, 1d, 1w, 1m, 3m, 6m, 1y]

**Returns:** images[]{position, title, image_url, thumbnail, source_page, source, source_domain, author, width, height, date, date_iso, image_id}, page, has_more

**Example request body:**
```json
{
  "query": "고양이"
}
```

### POST https://api.reefapi.com/naver-search/v1/videos — 3 credits
Naver Video search: up to 48 videos per page (YouTube, Naver TV, Chzzk and others) with title, URL, platform, channel, duration, views and date. Sort by relevance, date or views; filter by period, duration or short-form only (shorts carry no duration or view count: Naver does not print them on short-form cards). Naver repeats part of a page on the next one; repeats are removed (repeated_from_previous_page_removed).

**Parameters:**
- `query` (string, required) — Search terms, in Korean or any language (e.g. 아이폰 17, 강남 맛집, python tutorial). Naver operators work as on the site ("exact phrase", -exclude).
- `page` (integer, optional, default 1) — 1-based result page (48 results per page as Naver serves them; up to page 10).
- `sort` (enum, optional, default "relevance") — Video order. [one of: relevance, date, views]
- `period` (enum, optional, default "all") — Upload period. [one of: all, 1d, 1w, 1m, 3m, 6m, 1y]
- `duration` (enum, optional, default "all") — Video length. [one of: all, under_10m, 10m_30m, 30m_1h, over_1h]
- `shorts_only` (boolean, optional, default false) — Only short-form videos (숏폼: YouTube Shorts, Naver Clip, ...). Their rows have duration_seconds and views null.

**Returns:** videos[]{position, title, url, platform, channel, channel_url, duration_seconds, views, views_display, date, date_iso, thumbnail, is_certified, is_short}, page, has_more, repeated_from_previous_page_removed

**Example request body:**
```json
{
  "query": "아이폰 리뷰"
}
```

### POST https://api.reefapi.com/naver-search/v1/shopping — 3 credits
The shopping product cards Naver shows on its integrated results page for a query: price-comparison catalogue cards (lowest price across N malls) and Naver Plus Store cards, with price, original price, discount, mall, mall count, rating, review count, delivery fee and ad flag. Naver shows about 8-12 cards per query; Naver Shopping's own search site is not part of this action.

**Parameters:**
- `query` (string, required) — Search terms, in Korean or any language (e.g. 아이폰 17, 강남 맛집, python tutorial). Naver operators work as on the site ("exact phrase", -exclude).
- `spell_check` (boolean, optional, default true) — Naver silently searches a corrected spelling when it thinks you mistyped (the answer's spelling_correction says so). false = search exactly what you typed.

**Returns:** products[]{position, block (price_compare|plus_store), product_id, title, url, price, original_price, discount_percent, currency, is_lowest_price_of_catalog, mall, mall_count, rating, reviews, purchases, delivery_fee, free_delivery, image, category_id, is_ad}

**Example request body:**
```json
{
  "query": "아이폰"
}
```

### POST https://api.reefapi.com/naver-search/v1/ads — 3 credits
Naver power-link search ads for a keyword (Naver's full ad list, 25 per page, with the total number of advertisers): advertiser, displayed URL, ad title, description, sitelinks, extensions and the advertiser's running-time band. `url` and sitelink URLs are Naver's ad click links (ader.naver.com), the only link the page carries: opening one counts as a paid click for the advertiser; `displayed_url` is the advertiser's site.

**Parameters:**
- `query` (string, required) — Search terms, in Korean or any language (e.g. 아이폰 17, 강남 맛집, python tutorial). Naver operators work as on the site ("exact phrase", -exclude).
- `page` (integer, optional, default 1) — 1-based result page (25 results per page as Naver serves them; up to page 5).

**Returns:** ads[]{position, advertiser, displayed_url, title, description, url, sitelinks[], extensions[], ad_period, ad_id, naver_pay}, total_ads, page, has_more

**Example request body:**
```json
{
  "query": "아이폰"
}
```

### POST https://api.reefapi.com/naver-search/v1/autocomplete — 1 credit
Naver search-box suggestions for a partial query (keyword research).

**Parameters:**
- `query` (string, required) — Partial search term (Korean or English).

**Returns:** suggestions[]{position, suggestion}

**Example request body:**
```json
{
  "query": "아이폰"
}
```

## At scale
- **Volume:** 5M+ requests a day, measured at 60 requests a second across the fleet with no
  central bottleneck. Per-key limits are raised for high-volume accounts; volume pricing on request.
- **Missing a source:** tell us a site we do not cover and it becomes an engine. A customer asked
  for bestprice.gr on 21 Sep 2026 and it was in the catalog on 22 Sep.
- **Support:** 2 minute median time from a question in the live chat to the first answer. Setup
  help included, no support tier to buy.
- **One key, one credit pool** across every API. No per-site plans, no separate subscriptions.

## More
- Try it live, no code: https://reefapi.com/playground?engine=naver-search
- Human docs page: https://reefapi.com/docs/naver-search
- Overview page: https://reefapi.com/naver-search-api
- Every ReefAPI API in one file (for your AI): https://reefapi.com/llms-full.txt
