Naver AI Overview API
Our Naver AI Overview API allows you to scrape the AI overviews from the Naver Search page.
The API endpoint is https://serpapi.com/search?engine=naver_ai_overview
Head to the playground for a live and interactive demo.
API Parameters
Serpapi Parameters
device
Optional
Parameter defines the device to use to get the results. It can be set to desktop (default) to use a regular browser, tablet to use a tablet browser (currently using iPads), or mobile to use a mobile browser.
no_cache
Optional
Parameter will force SerpApi to fetch the Naver Ai Overview results even if a cached version is already present. A cache is served only if the query and all parameters are exactly the same. Cache expires after 1h. Cached searches are free, and are not counted towards your searches per month. It can be set to false (default) to allow results from the cache, or true to disallow results from the cache. no_cache and async parameters should not be used together.
async
Optional
Parameter defines the way you want to submit your search to SerpApi. It can be set to false (default) to open an HTTP connection and keep it open until you got your search results, or true to just submit your search to SerpApi and retrieve them later. In this case, you'll need to use our Searches Archive API to retrieve your results. async and no_cache parameters should not be used together. async should not be used on accounts with Ludicrous Speed enabled.
zero_trace
Optional
Enterprise only. Parameter enables ZeroTrace mode. It can be set to false (default) or true. Enable this mode to skip storing search parameters, search files, and search metadata on our servers. This may make debugging more difficult.
API Results
JSON Results
JSON output includes structured data for text_blocks, references, and more.
A search status is accessible through search_metadata.status. It flows this way: Processing -> Success || Error. If a search has failed, error will contain an error message. search_metadata.id is the search ID inside SerpApi.
HTML Results
HTML output is useful to debug JSON results or support features not supported yet by SerpApi. HTML output gives you the raw HTML result from Naver AI Overview.
API Examples
Example with table response for query:table comparing ruby and javascript
{
"search_metadata": {
"id": "6a0616525c00dd425b9f271e",
"status": "Success",
"json_endpoint": "https://serpapi.com/searches/sm5d_dQ32d582GRW0cHYrA/6a0616525c00dd425b9f271e.json",
"created_at": "2026-05-14 18:37:06 UTC",
"processed_at": "2026-05-14 18:37:06 UTC",
"naver_ai_overview_url": "https://search.naver.com/search.naver?query=table+comparing+ruby+and+javascript&where=nexearch",
"raw_html_file": "https://serpapi.com/searches/sm5d_dQ32d582GRW0cHYrA/6a0616525c00dd425b9f271e.html",
"prettify_html_file": "https://serpapi.com/searches/sm5d_dQ32d582GRW0cHYrA/6a0616525c00dd425b9f271e.prettify",
"total_time_taken": 4.22
},
"search_parameters": {
"engine": "naver_ai_overview",
"query": "table comparing ruby and javascript"
},
"markdown": "제공된 검색 결과만으로는 Ruby와 JavaScript를 직접 비교한 표를 완전하게 재현하기는 어렵지만, 대표적인 비교 항목(언어 성격, 문법, 사용처, 데이터 타입 등)을 정리해 드릴 수 있습니다. [1] [2]\n\n### Ruby와 JavaScript 비교 표 [2] [3]\n\n| 항목 | Ruby | JavaScript |\n|---|---|---|\n| 언어 성격 | 동적, 객체 지향 스크립트 언어 | 동적, 프로토타입 기반 OOP + 함수형 |\n| 변수 선언 | `var_name = value` | `var var_name = value`(또는 `let/const`) |\n| 해시/객체 | `hash_name = {key: value}` | `hash_name.key`로 접근 |\n| 주요 사용처 | 백엔드(예: Rails) | 프론트엔드 + 백엔드(Node) |\n| 데이터 타입 | Ruby의 타입 체계(정확히 정리된 자료 없음) | Number, BigInt, String, Boolean, Symbol, Undefined, Null, Object 등 |\n| 비교 연산 | Ruby의 비교는 `==`, `===` 등(정확히 정리된 자료 없음) | `>`, `<`, `===` 등 |\n\n### 문법 차이 핵심\n\n- 변수 선언: Ruby는 `var_name = value`처럼 간단하고, JavaScript는 `var var_name = value` 또는 `let/const`를 사용합니다. [2]\n- 해시/객체: Ruby는 `hash_name = {key: value}` 형태로 정의하고, JavaScript는 객체 리터럴을 사용하며 `hash_name.key`로 접근합니다. [2]\n\n### 데이터 타입과 비교\n\nMDN 문서 기준으로 JavaScript는 Number, BigInt, String, Boolean, Symbol, Undefined, Null, Object 등 기본 타입을 제공합니다. [1]\nRuby의 타입 체계는 검색 결과에서 JavaScript 타입과 직접 비교해 정리된 자료가 부족해, Ruby의 타입 비교는 별도 Ruby 문서 확인이 필요합니다. [1] [3]\n\n정보출처\n[1] MDN Web Docs, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Language_overview\n[2] EDUCBA, https://www.educba.com/javascript-vs-ruby/\n[3] gist.github.com, https://gist.github.com/jfarmer/2647362\n\nAI브리핑에서 생성된 결과입니다. 2026.05.15\n실험 단계로 정확하지 않을 수 있어요.\nAI브리핑은 참고용으로만 사용하시기 바랍니다.",
"text_blocks": [
{
"type": "paragraph",
"snippet": "제공된 검색 결과만으로는 Ruby와 JavaScript를 직접 비교한 표를 완전하게 재현하기는 어렵지만, 대표적인 비교 항목(언어 성격, 문법, 사용처, 데이터 타입 등)을 정리해 드릴 수 있습니다.",
"reference_indexes": [
1,
2
]
},
{
"type": "header",
"snippet": "Ruby와 JavaScript 비교 표",
"reference_indexes": [
2,
3
]
},
{
"type": "table",
"table": [
[
"항목",
"Ruby",
"JavaScript"
],
[
"언어 성격",
"동적, 객체 지향 스크립트 언어",
"동적, 프로토타입 기반 OOP + 함수형"
],
[
"변수 선언",
"`var_name = value`",
"`var var_name = value`(또는 `let/const`)"
],
[
"해시/객체",
"`hash_name = {key: value}`",
"`hash_name.key`로 접근"
],
...
],
"formatted": [
{
"항목": "언어 성격",
"ruby": "동적, 객체 지향 스크립트 언어",
"java_script": "동적, 프로토타입 기반 OOP + 함수형"
},
{
"항목": "변수 선언",
"ruby": "`var_name = value`",
"java_script": "`var var_name = value`(또는 `let/const`)"
},
{
"항목": "해시/객체",
"ruby": "`hash_name = {key: value}`",
"java_script": "`hash_name.key`로 접근"
},
...
]
},
{
"type": "header",
"snippet": "문법 차이 핵심"
},
{
"type": "list",
"list": [
{
"snippet": "변수 선언: Ruby는 `var_name = value`처럼 간단하고, JavaScript는 `var var_name = value` 또는 `let/const`를 사용합니다.",
"reference_indexes": [
2
]
},
{
"snippet": "해시/객체: Ruby는 `hash_name = {key: value}` 형태로 정의하고, JavaScript는 객체 리터럴을 사용하며 `hash_name.key`로 접근합니다.",
"reference_indexes": [
2
]
}
]
},
...
],
"references": [
{
"index": 1,
"title": "JavaScript language overview",
"snippet": "Its syntax is based on the Java and C languages — many structures from those languages apply to Java",
"link": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Language_overview",
"source": "MDN Web Docs",
"source_icon": "https://developer.mozilla.org/favicon.ico"
},
{
"index": 2,
"title": "JavaScript vs Ruby | Topmost 7 Useful Comparisons to Learn",
"snippet": "JavaScript vs Ruby Comparison Table Following is the comparison table between JavaScript and Ruby Ba",
"link": "https://www.educba.com/javascript-vs-ruby/",
"source": "EDUCBA",
"source_icon": "https://cdn.educba.com/academy/wp-content/uploads/2020/05/cropped-apple-touch-icon-180x180.png"
},
{
"index": 3,
"title": "True and False vs. \"Truthy\" and \"Falsey\" (or \"Falsy\") in Ruby, Python, and JavaScript · GitHub",
"snippet": "Here's a script to play around with. def truthy_or_falsey value # We don't know what `value` is # It",
"link": "https://gist.github.com/jfarmer/2647362",
"source": "gist.github.com",
"source_icon": "https://github.githubassets.com/favicons/favicon.svg"
}
],
"media": [
{
"title": "[Ruby] #12. 배열을 사용해보자.",
"link": "http://blog.naver.com/noksek0615/221737596632",
"thumbnail": "http://blogfiles.naver.net/MjAxOTEyMTVfMTQy/MDAxNTc2MzM3ODU4MzQ2.prU_KAV7wVZD85RY4dVbgeqdnpHNT_sfPN7p1Bbj1zcg.R9oij1XGP3QCfIhAj0mm-XxljEZd0PDqOxmDmbEJA8Ag.PNG.noksek0615/image.png",
"platform": "네이버 블로그"
},
{
"title": "루비 프로그래밍 언어",
"link": "http://blog.naver.com/letsbemax/120120759988",
"thumbnail": "http://blogfiles.naver.net/20101225_123/letsbemax_1293285801358qxNAo_JPEG/x9788979147384.jpg",
"platform": "네이버 블로그"
},
{
"title": "루비 ~ RUBY! 보석 아니죠 프로그래밍 언어입니다!",
"link": "http://cafe.naver.com/thdskarl/10109?art=ZXh0ZXJuYWwtc2VydmljZS1uYXZlci1haS1icmllZmluZw.eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjYWZlVHlwZSI6IkNBRkVfVVJMIiwiYXJ0aWNsZUlkIjoxMDEwOSwiY2FmZVVybCI6InRoZHNrYXJsIiwiaXNzdWVkQXQiOjE3Nzg3ODM4Mjg2NDB9.x4KOHMM8ApOR0OIbtVE8gQhtKQIS3Komo9CkIYoYD4s",
"thumbnail": "http://cafefiles.naver.net/MjAxNjEyMTlfMTgz/MDAxNDgyMTM1MjY1MzQw.uyl3z2xRBf-p4YxM38WdG1BtaOGQu7wpBFil4fEYFZgg.JatxbLhb3bEVAfljxykD7yshKjugPhnsf7s7-up_fHgg.JPEG.udonno520/ruby-310233_1280.png",
"platform": "네이버 카페"
},
...
],
"related_questions": [
{
"question": "Ruby와 JavaScript의 객체지향 프로그래밍 차이점 알려주세요",
"serpapi_link": "https://serpapi.com/search.json?engine=naver_ai_overview&query=Ruby%EC%99%80+JavaScript%EC%9D%98+%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5+%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D+%EC%B0%A8%EC%9D%B4%EC%A0%90+%EC%95%8C%EB%A0%A4%EC%A3%BC%EC%84%B8%EC%9A%94"
},
{
"question": "Ruby와 JavaScript의 Truthy와 Falsey 차이 알려주세요",
"serpapi_link": "https://serpapi.com/search.json?engine=naver_ai_overview&query=Ruby%EC%99%80+JavaScript%EC%9D%98+Truthy%EC%99%80+Falsey+%EC%B0%A8%EC%9D%B4+%EC%95%8C%EB%A0%A4%EC%A3%BC%EC%84%B8%EC%9A%94"
},
{
"question": "Ruby와 JavaScript의 단위 테스트 프레임워크 비교 알려주세요",
"serpapi_link": "https://serpapi.com/search.json?engine=naver_ai_overview&query=Ruby%EC%99%80+JavaScript%EC%9D%98+%EB%8B%A8%EC%9C%84+%ED%85%8C%EC%8A%A4%ED%8A%B8+%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC+%EB%B9%84%EA%B5%90+%EC%95%8C%EB%A0%A4%EC%A3%BC%EC%84%B8%EC%9A%94"
}
]
}
JSON structure overview
{
...
"markdown": "String - Markdown formatted text representing the main content",
"text_blocks": [
{
"type": "String - Type of the text block. Can be 'heading', 'paragraph', 'list', 'table'",
"snippet": "String - Snippet of the text block",
"snippet_highlighted_words": "Array of Strings - Highlighted words in the snippet",
"reference_indexes": "Array of Integers - Indexes of references related to this text block",
// Only for 'list' type
"list": [
{
"snippet": "String - Snippet of the list item",
"snippet_highlighted_words": "Array of Strings - Highlighted words in the snippet",
"reference_indexes": "Array of Integers - Indexes of references related to this list item"
}
]
// Only for 'table' type
"table": [
[
"String - Table header cell",
...
],
[
"String - Table row cell",
...
],
...
],
"formatted": [
{
"header_cell_snake_case": "String - Value from column 1 for this row",
},
...
],
}
],
"references": [
{
"index": "Integer - Index of the reference",
"title": "String - Title of the reference",
"snippet": "String - Snippet of the reference",
"link": "String - URL of the reference",
"source": "String - Source name of the reference",
"source_icon": "String - URL of the source icon"
},
...
],
"media": [
{
"title": "String - Title of the media",
"link": "String - URL of the media",
"thumbnail": "String - URL of the media thumbnail",
"platform": "String - Platform name of the media"
},
...
],
"related_questions": [
{
"question": "String - Related question",
"serpapi_link": "String - SerpApi link for the related question"
},
...
],
...
}