Naver Search API compatible
Both header forms, $1 per 1,000.
Naver's Search API stops at 25,000 calls a day, and its NAVER API HUB form at 775,000 a month, with no way to raise the limit. SpecStream answers the same webkr and news calls for $1 per 1,000 searches, with no daily limit.
The switch is one address: https://api.specstream.ai/naver in place of https://openapi.naver.com or https://naverapihub.apigw.ntruss.com. Your SpecStream key goes in the X-Naver-Client-Secret or the X-NCP-APIGW-API-KEY header, and your parser stays.
The results come from the SpecStream Search API, which scores 97.9 F-score on all 1,000 SimpleQA Verified questions. New accounts get $10 of credit, no card.
New accounts get $10 of credit, no card. It covers 10,000 searches.
Naver Search API to SpecStream, header by header and field by field
| SpecStream | Naver Search API | |
|---|---|---|
| Address, Developers Center form | GET https://api.specstream.ai/naver/v1/search/webkr.json and news.json, or .xml | GET https://openapi.naver.com/v1/search/webkr.json and news.json, or .xml |
| Address, NAVER API HUB form | GET https://api.specstream.ai/naver/search/v1/webkr and /news, with format=json or format=xml | GET https://naverapihub.apigw.ntruss.com/search/v1/webkr and /news |
| The key | One SpecStream key in X-Naver-Client-Secret or X-Naver-Client-Id, or in X-NCP-APIGW-API-KEY or X-NCP-APIGW-API-KEY-ID. Sent in both headers, it works too | A Client ID and a Client Secret for each registered application. Developers Center credentials do not work on NAVER API HUB, which issues new ones |
| Price | $1 per 1,000 searches of up to 10 results. Credit you buy never expires | Free inside the limits. NAVER API HUB is free for a limited time, and Naver will announce the move to paid in advance |
| Limit | No daily limit and no limit per key | 25,000 calls a day on the Search API. On NAVER API HUB, 775,000 calls a month across the search category and 50 requests a second per key. At the monthly limit calls are blocked, and the limit cannot be raised during the free period |
| `display` | 1 to 100, 10 when you send none | Default 10, maximum 100 |
| `start` | 1 to 1000, 1 when you send none | Default 1, maximum 1000 |
| `sort` on news | sim or date | sim by default, or date |
| The reply | lastBuildDate, total, start, display and items[] with title, link and description, plus originallink and pubDate on news. Query words are in <b> tags, as Naver prints them | lastBuildDate, total, start, display and items[] with title, link and description, plus originallink and pubDate on news |
| Where results come from | The SpecStream Search API, on the live web | Naver's search results for web documents and news |
The Naver Search API reference, on SpecStream
The call, before and after, in both header forms
Code written for the Developers Center sends X-Naver-Client-Id and X-Naver-Client-Secret to openapi.naver.com. Change the host and put your SpecStream key where the secret was.
# Before
curl -G "https://openapi.naver.com/v1/search/webkr.json" \
--data-urlencode "query=ì „ê¸°ì°¨ 보조금" -d display=10 -d start=1 \
-H "X-Naver-Client-Id: $NAVER_CLIENT_ID" -H "X-Naver-Client-Secret: $NAVER_CLIENT_SECRET"
# After
curl -G "https://api.specstream.ai/naver/v1/search/webkr.json" \
--data-urlencode "query=ì „ê¸°ì°¨ 보조금" -d display=10 -d start=1 \
-H "X-Naver-Client-Id: $SPECSTREAM_API_KEY" -H "X-Naver-Client-Secret: $SPECSTREAM_API_KEY"Code written for NAVER API HUB sends X-NCP-APIGW-API-KEY-ID and X-NCP-APIGW-API-KEY to naverapihub.apigw.ntruss.com. The same base address answers it.
# Before
curl -G "https://naverapihub.apigw.ntruss.com/search/v1/news" \
--data-urlencode "query=ì „ê¸°ì°¨ 보조금" -d display=10 -d sort=date -d format=json \
-H "X-NCP-APIGW-API-KEY-ID: $NCP_CLIENT_ID" -H "X-NCP-APIGW-API-KEY: $NCP_CLIENT_SECRET"
# After
curl -G "https://api.specstream.ai/naver/search/v1/news" \
--data-urlencode "query=ì „ê¸°ì°¨ 보조금" -d display=10 -d sort=date -d format=json \
-H "X-NCP-APIGW-API-KEY-ID: $SPECSTREAM_API_KEY" -H "X-NCP-APIGW-API-KEY: $SPECSTREAM_API_KEY"A client that sends two different values is read this way: a header that holds a SpecStream key wins, then the secret, then the ID. So you can leave the ID header as it is and change the secret alone.
Every parameter the route uses
Used in the search: query, display (1 to 100, default 10), start (1 to 1000, default 1) and, on news, sort (sim for relevance, date for newest first). On the NAVER API HUB form, format is json or xml.
Refused in Naver's own words, with HTTP 400: a display out of range gets SE02, a start out of range SE03, a sort other than sim or date SE04, and a format other than json or xml SE01.
The route answers webkr and news. Naver's other search categories, such as blog, cafe, image and shopping, have no route here.
Every field that comes back
The JSON reply has lastBuildDate, total, start, display and items. A web item has title, link and description. A news item has title, originallink, link, description and pubDate. Dates are in Naver's form and in Korean time, for example Wed, 28 Sep 2016 16:43:34 +0900.
The XML reply is Naver's RSS document: rss, channel with title, link, description, lastBuildDate, total, start, display, and one item for each result. Ask for it with .xml in the path on the Developers Center form, or format=xml on the NAVER API HUB form.
title and description are HTML escaped and carry each query word in <b> tags, so code that strips or shows the tags works as before. On a news item originallink and link both hold the address of the article on the publisher's site.
Errors in the form your client reads
The Developers Center form answers Naver's {"errorMessage", "errorCode"}: 024 with HTTP 401 for a missing or wrong key, and 012 with HTTP 429 when search is busy. The NAVER API HUB form answers the gateway's {"error": {"errorCode", "message", "details"}}: 200 Authentication Failed with 401, 210 Permission Denied with 402 or 403, and 410 Throttle Limited with 429.
A 429 carries a Retry-After header and charges nothing. A 402 means the balance is empty.
$1 per 1,000 searches, with no daily limit
A call of up to 10 results costs $0.001, on web and on news, in JSON or XML. Each started block of 10 more results adds $0.0012: display 20 costs $0.0022, display 50 costs $0.0058 and display 100 costs $0.0118. A call stopped by a 429 charges nothing, and credit you buy never expires.
Naver's daily limit of 25,000 calls is 25,000 searches of 10 results. On SpecStream that day costs $25, and the next call after it goes through.
The most accurate web search API, in about one second
On SimpleQA Verified the SpecStream Search API scores 97.9 F-score on all 1,000 official questions, 978 of them correct. On WideSearch it scores 64.0 item F1 and 43.4 row F1 on all 200 official tasks. The Extract API scores 0.908 F1 on WCXB. Every score and its method is on the benchmarks page.
Every call on this route runs the fast search. Measured on production on November 9, 2026, its median was 0.82 s at 1 search a second and 1.07 s at 20 a second, the 95th percentile stayed between 1.09 and 1.73 s, and it answered 718 of 720. It has no limit per key and no daily limit.
You decide what is kept, on each key
Create the key with zero_retention and a search made with it keeps no request text and no answer after the reply: it is not in the history, its answer is not reused for another call, and its log lines carry neither. spend_cap_cents is the most the key can spend.
curl -X POST https://api.specstream.ai/v1/account/keys \
-H "Authorization: Bearer $SPECSTREAM_API_KEY" -H "Content-Type: application/json" \
-d '{"name": "production", "scopes": ["account:read", "finds:spend"], "spend_cap_cents": 500000, "zero_retention": true}'Search, pages and rows on one key
The same key reads up to 20 pages or documents a call with the Extract API at $0.80 per 1,000 pages, and a page with no text is not charged. Deep Search returns every match for a request in plain words as structured rows, at 5¢, 15¢ or $1 a row, with a source URL on every value. The most a run can cost is approved before it starts.
What else Naver Search API users price
Brave Search API
A search API on Brave's own index at $5 per 1,000 requests, with $5 in free credits every month and 50 queries per second. SpecStream answers Brave's call at https://api.specstream.ai/res/v1/web/search at $1 per 1,000, a fifth of Brave's rate, and has no limit per key.
Tavily
A search API sold in credits at $0.008 each pay as you go: a basic search takes 1 credit and an advanced search 2. SpecStream answers Tavily's POST /search at https://api.specstream.ai/tavily for $0.001 a basic search and $0.005 an advanced one.
Exa
A search API on Exa's own index, at $7 per 1,000 requests on auto and $4 on lite for up to 10 results, with its own request and reply. SpecStream answers Exa's call as well, at https://api.specstream.ai/exa, for $0.001 a search.
How SpecStream scores
The same numbers as the benchmarks page, from the official tasks and scorers.
How to migrate, step by step
1. Create a key under Agents & API in the workspace. A new account gets $10 of credit, no card, which covers 10,000 searches.
2. Set the host to https://api.specstream.ai/naver where your code has https://openapi.naver.com, and send the SpecStream key in the secret's header. In Python:
import requests
BASE = "https://api.specstream.ai/naver" # was https://openapi.naver.com
reply = requests.get(
f"{BASE}/v1/search/news.json",
headers={"X-Naver-Client-Id": SPECSTREAM_KEY, "X-Naver-Client-Secret": SPECSTREAM_KEY},
params={"query": "ì „ê¸°ì°¨ 보조금", "display": 10, "start": 1, "sort": "date"},
timeout=30,
)
reply.raise_for_status()
for item in reply.json()["items"]:
print(item["title"], item["originallink"], item["pubDate"])3. On NAVER API HUB code, set the same host where you have https://naverapihub.apigw.ntruss.com. In JavaScript:
const url = new URL("https://api.specstream.ai/naver/search/v1/webkr");
url.search = new URLSearchParams({ query: "ì „ê¸°ì°¨ 보조금", display: "10", start: "1", format: "json" });
const res = await fetch(url, {
headers: {
"X-NCP-APIGW-API-KEY-ID": process.env.SPECSTREAM_KEY,
"X-NCP-APIGW-API-KEY": process.env.SPECSTREAM_KEY,
},
});
const data = await res.json();
for (const item of data.items) console.log(item.title, item.link);4. Read 402 as an empty balance and 429 as a call to send again after Retry-After. Neither is charged.
5. When your product needs every match in place of a results page, write the request in plain words. SpecStream reads it back as the conditions every row must meet and the facts to bring back, quotes the most it can cost, and delivers the rows after you approve.
Frequently asked questions
Something we didn't answer? Talk to a human
Is there a Naver Search API compatible API?
webkr and news search calls at https://api.specstream.ai/naver in Naver's JSON and XML, for $0.001 a search of up to 10 results. Both header forms work: X-Naver-Client-Id with X-Naver-Client-Secret, and X-NCP-APIGW-API-KEY-ID with X-NCP-APIGW-API-KEY.What is the Naver Search API daily limit?
How much does a Naver call cost on SpecStream?
display 100 costs $0.0118. New accounts get $10 of credit with no card, which covers 10,000 searches.Which header takes the SpecStream key?
X-Naver-Client-Secret or X-Naver-Client-Id on the Developers Center form, or in X-NCP-APIGW-API-KEY or X-NCP-APIGW-API-KEY-ID on the NAVER API HUB form. A header that holds a SpecStream key wins over one that holds another value.Are the results Naver's results?
Does the XML form work?
webkr.xml and news.xml on the Developers Center form, and format=xml on the NAVER API HUB form, return Naver's RSS document with lastBuildDate, total, start, display and one item for each result, at the same $0.001 a call.Do I need new credentials to move from the Developers Center to NAVER API HUB?
What happens when search is busy?
Retry-After header and charges nothing. There is no limit per key and no daily limit.Sources
SpecStream wrote this page. Each Naver fact comes from Naver's own reference on the Developers Center and from NAVER Cloud's own API and user guides, and each other provider's figure from that company's own page. Each SpecStream line describes the route as it answers on November 13, 2026.
- Naver Search API, web documentsdevelopers.naver.com/docs/serviceapi/search/web/web.md, read Nov 13, 2026
- Naver Search API, newsdevelopers.naver.com/docs/serviceapi/search/news/news.md, read Nov 13, 2026
- NAVER API HUB, web document searchapi.ncloud-docs.com/docs/en/naver-api-hub-search-webkr, read Nov 13, 2026
- NAVER API HUB overview and limitsguide.ncloud-docs.com/docs/apihub-overview, read Nov 13, 2026
- NAVER API HUB migration guideguide.ncloud-docs.com/docs/apihub-migration, read Nov 13, 2026
- Brave Search APIbrave.com/search/api/, read Nov 13, 2026
- Tavily API creditsdocs.tavily.com/documentation/api-credits.md, read Nov 13, 2026
- Exa pricingexa.ai/docs/admin/pricing.md, read Nov 13, 2026
- SpecStream benchmarksspecstream.ai/benchmarks, read Nov 13, 2026
- SpecStream pricingspecstream.ai/pricing, read Nov 13, 2026
- SpecStream for agentsspecstream.ai/agents.md, read Nov 13, 2026




