# Apinoa AI Answers API > The AI Answers API: answers, citations and sources from ChatGPT, Gemini, Google AI Overviews, Google AI Mode and Naver's AI answers, as normalized JSON. Every page of its documentation, in one file. Requests go to https://gateway.apinoa.com with the API key in an `x-api-key` header. A JSON answer is `{"success": true, "data": ...}`; an error is `{"success": false, "error": {"code", "message"}, "requestId"}`, and a request that fails is not billed. More: [Getting Started](https://apinoa.com/en/docs-raw/getting-started), [Authentication](https://apinoa.com/en/docs-raw/authentication), [Errors](https://apinoa.com/en/docs-raw/errors), [SDKs and MCP](https://apinoa.com/en/docs-raw/sdks); every operation as OpenAPI 3.1: https://apinoa.com/openapi.json. The other API families: https://apinoa.com/llms.txt. ## Contents - [AI Answers API](https://apinoa.com/en/docs-raw/api-reference/answers): What ChatGPT, Gemini, Google AI Overviews, Google AI Mode and Naver's AI answer to a prompt, with every citation, source, product card and brand mention, in one answer type. - [Response Schema](https://apinoa.com/en/docs-raw/api-reference/answers/response-schema): The Answer type every AI engine returns: the answer's text, its citations and sources, cards, mentions and follow-ups. - [ChatGPT](https://apinoa.com/en/docs-raw/api-reference/chatgpt): ChatGPT's answers, with citations, sources, product cards and brand mentions. Conversations and photos are supported. - [Answer](https://apinoa.com/en/docs-raw/api-reference/chatgpt/answer): Ask ChatGPT a question and get its answer, with citations, sources, cards and mentions. - [Gemini](https://apinoa.com/en/docs-raw/api-reference/gemini): Gemini's answers, with citations and sources. Conversations are supported. - [Answer](https://apinoa.com/en/docs-raw/api-reference/gemini/answer): Ask Gemini a question and get its answer, with citations, sources, cards and mentions. - [Google AI Mode](https://apinoa.com/en/docs-raw/api-reference/google-ai-mode): Google AI Mode's answers, with citations, sources, product cards and mentions. Conversations are supported. - [Answer](https://apinoa.com/en/docs-raw/api-reference/google-ai-mode/answer): Ask Google AI Mode a question and get its answer, with citations, sources, cards and mentions. - [Google AI Overviews](https://apinoa.com/en/docs-raw/api-reference/google-aio): The AI Overview Google shows above its search results, with its sources and the results around it. - [Answer](https://apinoa.com/en/docs-raw/api-reference/google-aio/answer): Get the AI Overview Google shows above its results, with its sources and the results around it. - [Naver AI Tab](https://apinoa.com/en/docs-raw/api-reference/naver-ai-tab): The answers of Naver's AI tab, with citations, sources, product and place cards, and mentions. Conversations are supported. - [Answer](https://apinoa.com/en/docs-raw/api-reference/naver-ai-tab/answer): Ask Naver AI Tab a question and get its answer, with citations, sources, cards and mentions. - [Naver AI Briefing](https://apinoa.com/en/docs-raw/api-reference/naver-ai-brief): The AI Briefing Naver shows above its search results, with its sources and the results around it. - [Answer](https://apinoa.com/en/docs-raw/api-reference/naver-ai-brief/answer): Get the AI Briefing Naver shows above its search results, with its sources and the results around it. --- # AI Answers API > What ChatGPT, Gemini, Google AI Overviews, Google AI Mode and Naver's AI answer to a prompt, with every citation, source, product card and brand mention, in one answer type. Source: https://apinoa.com/en/docs-raw/api-reference/answers The AI Answers API asks an AI engine a question and returns the answer people are shown: the text, the sources it cites, the product and place cards, and the brands the engine itself marked. Every engine returns the same type, so tracking what ChatGPT says about a brand works the same way as tracking Google AI Mode. ```bash curl -X POST "https://gateway.apinoa.com/v1/chatgpt/answer" \ -H "x-api-key: $APINOA_API_KEY" -H "content-type: application/json" \ -d '{"prompt": "What are the best running shoes for beginners?", "country": "US"}' ``` ## Engines Every engine has one operation, `answer`. | Engine | Countries | Conversation | Photos | Usually under | |---|---|:-:|:-:|---| | [ChatGPT](/docs/api-reference/chatgpt) | US DE GB AT KR AU JP CA FR IT | ✓ | ✓ | 30 s | | [Gemini](/docs/api-reference/gemini) | US DE GB AT KR AU JP CA FR IT | ✓ | | 15 s | | [Google AI Mode](/docs/api-reference/google-ai-mode) | US | ✓ | | 35 s | | [Google AI Overviews](/docs/api-reference/google-aio) | US | | | 10 s | | [Naver AI Tab](/docs/api-reference/naver-ai-tab) | KR | ✓ | | 40 s | | [Naver AI Briefing](/docs/api-reference/naver-ai-brief) | KR | | | 10 s | An answer takes seconds, not milliseconds. Allow up to 120 seconds per call. ## Inputs | Input | Meaning | |---|---| | `prompt` | the question, as a person would type it (required) | | `country` | the market it is asked from. Each engine lists its countries above, and the first is the default | | `language` | the language to answer in (Google engines). The other engines answer in the prompt's language | | `conversation` | an earlier answer's `conversation.id`, to ask a follow-up in the same conversation | | `photos` | up to four photos to ask about, as https URLs or `data:image/…;base64,` URLs (ChatGPT) | | `include` | `page`: also return the answer as a self-contained HTML page | Send the inputs as a JSON body with `POST`. An input an engine does not take is refused with `400 INVALID_PARAMS`, and the message gives the reason. It is never silently ignored. ## Outcomes `outcome` says what the engine did: - `answered`: it answered. - `noAnswer`: it showed no answer for this prompt. Google shows an AI Overview for only some searches, and Naver shows a briefing for only some. The surrounding results are still returned in `results`, and the call is billed, because the page was read. - `refused`: it declined; its words are in `text`. - `partial`: it stopped early, with some text. ## What Is the Same Everywhere - **One type.** Every engine returns an [`Answer`](/docs/api-reference/answers/response-schema#answer). Facts only one engine has are in `ext`. - **Text, markdown and blocks agree.** `text` and `markdown` are rendered from `blocks`, and `citations` point at character ranges of `text`. - **Sources, cited or not.** `sources` lists everything the engine showed. `cited` tells the sources the answer links to from the ones it only read. - **Mentions are the engine's own.** `mentions` are the brands, products and places the engine itself marked. They are never guessed from the text. - **Price.** $0.0012 per answer. ## Errors The AI Answers API uses the same envelope and codes as the rest of the API. See [Errors](/docs/errors). An engine that does not answer in time returns `502 UPSTREAM_TIMEOUT`. Failed calls are not billed. ## Reference - [Response Schema](/docs/api-reference/answers/response-schema): every field of the answer - [SERP API](/docs/api-reference/serp): the search engines, whose Google results carry the same AI Overview - [Errors](/docs/errors): every error code --- # Response Schema > The Answer type every AI engine returns: the answer's text, its citations and sources, cards, mentions and follow-ups. Source: https://apinoa.com/en/docs-raw/api-reference/answers/response-schema Every engine returns one type, `Answer`. A field means the same thing on every engine. Optional fields are genuinely optional: **absent means the engine did not say**. A card without `rating` showed no stars. Times are ISO 8601 in UTC. Money is in decimal major units with an ISO 4217 code. Every object may carry `ext`, which holds facts only that engine has. ## Answer | Field | Type | Notes | |---|---|---| | `engine` | string | `chatgpt` `gemini` `google-aio` `google-ai-mode` `naver-ai-brief` `naver-ai-tab` | | `outcome` | string | see below | | `prompt` | string | the question as asked | | `askedAt` | string | when it was asked | | `country` | string | the market it was asked from (`US`, `KR`) | | `language` | string? | | | `conversation` | object? | `{id, turn, expiresAt?}`. Pass `id` as `conversation` to ask a follow-up | | `title` | string? | the conversation's title, where the engine gives one | | `blocks` | Block[] | the answer as ordered blocks. See below | | `text` | string | the answer as plain text, rendered from `blocks` | | `markdown` | string | the answer as markdown, rendered from `blocks` | | `citations` | Citation[] | which part of `text` cites which sources | | `sources` | Source[] | every source the engine showed, cited or not | | `mentions` | Mention[] | brands, products and places the engine itself marked | | `cards` | Card[] | product, place, video and image cards, ads included | | `suggestions` | array | `{text, prompt?}`: the follow-up questions the engine offered | | `results` | Result[]? | the results page around the answer (Google AI Overviews, Naver AI Briefing) | | `page` | string? | with `include=page`: the answer as a self-contained HTML page | ### Outcome | Value | Meaning | |---|---| | `answered` | the engine answered | | `noAnswer` | the engine showed no answer for this prompt. Google shows no overview for many searches and Naver no briefing. This is not an error, and the rest of the page (`results`) is still returned | | `refused` | the engine declined; its own words are in `text` | | `partial` | the engine stopped early, but some text came back | ### Blocks `text`, `markdown` and `blocks` are three views of one answer and always agree. A block is one of: | `type` | Fields | |---|---| | `heading` | `level` (1–6), `markdown` | | `paragraph` `quote` | `markdown` | | `list` | `ordered`, `items`: `{markdown, depth}[]` | | `table` | `header`: string[], `rows`: string[][] | | `code` | `language?`, `text` | | `cards` | `cards`: indexes into `cards`, where the engine showed them in the answer | | `rule` | | ## Citation | Field | Type | Notes | |---|---|---| | `start` `end` | integer | a character range of `text`, `[start, end)` | | `sources` | integer[] | indexes into `sources` | ## Source | Field | Type | Notes | |---|---|---| | `url` | string | | | `title` `site` `favicon` `image` `snippet` | string? | `site` is the site's display name | | `publishedAt` | string? | | | `cited` | boolean | `true` if a citation points at it; `false` if the engine read it without citing it | ## Card | Field | Type | Notes | |---|---|---| | `type` | string | `product` `place` `video` `image` `other` | | `title` `url` | string? | | | `image` `thumbnail` | string? | for an image card, `image` is the image itself | | `width` `height` | integer? | | | `price` `originalPrice` | object? | `{text, amount?, currency?}`. `text` is printed as shown; `amount` appears only when the text is one clear amount | | `rating` `reviews` | number? | | | `merchant` `site` | string? | | | `badges` | string[]? | the labels on the card, word for word ("Best overall") | | `address` | string? | | | `coordinates` | object? | `{lat, lng}` | | `sponsored` | boolean | an ad. Ads are cards, never a separate list | ## Mention | Field | Type | Notes | |---|---|---| | `name` | string | | | `kind` | string | `brand` `product` `place` `other` | | `category` | string? | the engine's own label, word for word | | `at` | integer? | where in `text` the engine marked it | | `card` | integer? | the index of its card in `cards`, when the engine showed one | Mentions are only what the engine marked itself. They are never guessed from the text. ## Result One result on the results page around the answer. | Field | Type | Notes | |---|---|---| | `position` | integer | 1-based | | `title` `url` | string | | | `site` `favicon` `image` `snippet` | string? | | | `publishedAt` | string? | | | `breadcrumbs` | string[]? | the path the page prints for the result | | `sitelinks` | array? | `{title, url}` | The same `Answer` is the `answer` of a Google search's `aiOverview` item in the [SERP API](/docs/api-reference/serp/response-schema#resultspage). --- # ChatGPT > ChatGPT's answers, with citations, sources, product cards and brand mentions. Conversations and photos are supported. Source: https://apinoa.com/en/docs-raw/api-reference/chatgpt ChatGPT's answers, with citations, sources, product cards and brand mentions. Conversations and photos are supported. **Markets:** `US` `DE` `GB` `AT` `KR` `AU` `JP` `CA` `FR` `IT` (the first is the default) ## Operations | Operation | Endpoint | Returns | Price | |---|---|---|---| | [Answer](/docs/api-reference/chatgpt/answer) | `POST /v1/chatgpt/answer` | `Answer` | $0.0012 | --- # Answer > Ask ChatGPT a question and get its answer, with citations, sources, cards and mentions. Source: https://apinoa.com/en/docs-raw/api-reference/chatgpt/answer ```http POST /v1/chatgpt/answer ``` Send the inputs as a JSON body. An answer takes seconds: allow up to 120 seconds. ## Request ```bash tab="cURL" curl -X POST "https://gateway.apinoa.com/v1/chatgpt/answer" \ -H "x-api-key: $APINOA_API_KEY" \ -H "content-type: application/json" \ -d '{"prompt": "What are the best running shoes for beginners?", "country": "US"}' ``` ```js tab="JavaScript" const res = await fetch("https://gateway.apinoa.com/v1/chatgpt/answer", { method: "POST", headers: { "x-api-key": process.env.APINOA_API_KEY, "content-type": "application/json" }, body: JSON.stringify({ prompt: "What are the best running shoes for beginners?", country: "US" }), }); const { success, data, error } = await res.json(); ``` ```python tab="Python" import os import requests res = requests.post( "https://gateway.apinoa.com/v1/chatgpt/answer", json={"prompt": "What are the best running shoes for beginners?", "country": "US"}, headers={"x-api-key": os.environ["APINOA_API_KEY"]}, timeout=120, ) body = res.json() ``` ## Parameters | Parameter | Type | Required | Notes | |---|---|---|---| | `prompt` | string | yes | The question, as a person would type it. | | `conversation` | string | | An earlier answer's `conversation.id`: ask a follow-up in the same conversation. | | `country` | string | | The market the answer is asked from, as an ISO 3166 country code. Each engine's page lists its countries. | | `include` | enum list | | `page`: also return the answer as a self-contained HTML page, in `page`. | | `photos` | string[] | | Up to four photos to ask about: https URLs, or `data:image/…;base64,` URLs. | The same parameters, and every response type, are in the OpenAPI document: https://apinoa.com/openapi.json ## Response Returns [`Answer`](/docs/api-reference/answers/response-schema#answer) in `data`. A real response, shortened: arrays keep their first entries and long text is cut. ```json { "success": true, "data": { "engine": "chatgpt", "outcome": "answered", "prompt": "What are the best running shoes for beginners?", "askedAt": "2026-10-30T01:00:31.899Z", "country": "US", "blocks": [ { "type": "paragraph", "markdown": "If you're just getting into running, I'd recommend starting with a pai…" }, {"type": "paragraph", "markdown": "Here are my top recommendations for beginners in 2026."}, {"type": "cards", "cards": [0]} ], "text": "If you're just getting into running, I'd recommend starting with a pai…", "markdown": "If you're just getting into running, I'd recommend starting with a pai…", "citations": [], "sources": [ { "url": "https://www.rtings.com/running-shoes/reviews/best/beginners", "cited": false, "title": "The 6 Best Running Shoes for Beginners of 2026 - RTINGS.com", "site": "www.rtings.com", "favicon": "https://www.google.com/s2/favicons?domain=https://www.rtings.com&sz=32" } ], "mentions": [ { "name": "Brooks Ghost 18", "kind": "product", "category": "product", "at": 305, "ext": {"badges": ["Best overall"]} } ], "cards": [ { "type": "image", "title": "Brooks Ghost 18 Men's Primer Grey/Oyster Mushroom – Holabird Sports", "url": "https://www.holabirdsports.com/products/brooks-ghost-18-mens-primer-gr…", "image": "https://images.openai.com/static-rsc-4/gdRYkLjq-bR17fW27V3af80NtFn4L9l…", "thumbnail": "https://images.openai.com/static-rsc-4/aoryHYHPeH-VtbKe9AMq-CeuVyRNzQu…", "width": 800, "height": 800, "sponsored": false, "ext": { "original": "https://www.holabirdsports.com/cdn/shop/files/044666_1_800x.jpg?v=1779…", "query": "Brooks Ghost 18 running shoes" } } ], "suggestions": [ { "text": "Find my best running shoes", "prompt": "Recommend the best beginner running shoes based on these preferences:…" } ], "ext": { "useCase": "shopping", "modelExperience": "instant", "steps": ["Searching the web"], "layout": { "program": "function __dilSafe(evaluate,failureValue){try{return evaluate()}catch{…", "constants": { "0": "If you're just getting into running, I'd recommend starting with a pai…", "1": "comfortable, well-cushioned daily running shoes", "2": ". You don't need expensive racing shoes or anything overly technical.", "3": "Here are my top recommendations for beginners in 2026.", "4": "🏃 Best running shoes for beginners", "5": "a588d0a9-b3f2-5d84-b96a-e7dbc7573701", "6": "Best overall", "7": "1. ", "8": "Brooks Ghost 18", "9": "3ffebd24-1b61-5e95-8b90-4667c80853e6", "10": "$150", "11": "Comfortable, balanced cushioning.", "12": "Great for everyday road running.", "13": "A reliable first running shoe.", "14": "Best if you want one shoe for most runs.", "15": "339f3929-b005-5464-9db1-8a1b00da4b7e", "16": "Best cushioned all-rounder", "17": "2. ", "18": "ASICS Novablast 6", "19": "8b156f63-e995-50c6-9723-932c37fb8cb4", "20": "Soft, responsive cushioning.", "21": "Lightweight feel.", "22": "Great for building up running distance.", "23": "Best if you want comfort with a little bounce.", "24": "caeda85d-331b-5956-b5d3-e030ea256046", "25": "3. ", "26": "HOKA Clifton 11", "27": "0fc28757-f71e-5bfe-a04f-e3f232ba79fb", "28": "$155", "29": "Soft, protective cushioning.", "30": "Lightweight for its cushioning level.", "31": "Excellent for run/walk training.", "32": "Best if you're starting with a Couch to 5K plan.", "33": "6a501449-4b60-543b-91b6-71a191bd9f68", "34": "4. ", "35": "Nike Vomero 18", "36": "5212da76-3de1-5bcb-80f1-b7b378478858", "37": "$155", "38": "Plush, maximum cushioning.", "39": "Comfortable for longer easy runs.", "40": "Soft and responsive underfoot.", "41": "Best if comfort is your biggest priority.", "42": "eac36d13-dd19-5522-8e8e-ff2ed1602705", "43": "5. ", "44": "New Balance Fresh Foam 680 v9", "45": "1bbf6e8f-3c49-5733-af2d-0e07430e50e3", "46": "Practical everyday trainer.", "47": "Comfortable cushioning.", "48": "A good option for budget-conscious beginners.", "49": "Best for an affordable first pair.", "50": "a4e63692-5937-5d73-bfab-3b417068dc56", "51": "6. ", "52": "Brooks Adrenaline GTS 25", "53": "386c636a-91f2-503d-a31e-c46a6537de44", "54": "Supportive stability design.", "55": "Comfortable cushioning.", "56": "Useful if you prefer more guidance underfoot.", "57": "Best if you need a stability shoe.", "58": "Prices are approximate US retail prices. Recommendations informed by ", "59": "Runner's World", "60": "25bfac6e-fbcd-5e68-a028-1e13eb99de53", "61": " and ", "62": "RTINGS 2026 testing", "63": "dedf923e-efb9-5796-821d-1bd07d4a9183", "64": ".", "65": "What should you look for as a beginner?", "66": "My advice:", "67": "Cushioning:", "68": " Look for comfortable cushioning, but not necessarily the thickest sol…", "69": "Fit:", "70": " Leave about a thumb's width of space between your longest toe and the…", "71": "Width:", "72": " Your toes should be able to spread naturally.", "73": "Weight:", "74": " Avoid unnecessarily heavy shoes.", "75": "Support:", "76": " Don't assume you need stability shoes just because you're a beginner.", "77": "Try shoes on later in the day when your feet are slightly swollen, and…", "78": "Let me narrow it down to the best shoe for you", "79": "A few details will help me recommend the right pair rather than just t…", "80": "1. What's your budget?", "81": "Under $80", "82": "$80–$100", "83": "$100–$150", "84": "$150–$200", "85": "No limit", "86": "2. What's your main goal?", "87": "Start running / lose weight", "88": "Train for a 5K", "89": "Run a 10K or longer", "90": "Improve fitness and endurance", "91": "Run and walk for general health", "92": "3. Where will you run?", "93": "Road / pavement", "94": "Treadmill", "95": "Trails / parks", "96": "Combination of surfaces", "97": "4. What's most important?", "98": "Maximum comfort and cushioning", "99": "Lightweight and flexible", "100": "Extra stability and support", "101": "Best value for money", "102": "Find my best running shoes", "103": "I'll use your answers to narrow it down to the three shoes I'd recomme…" } }, "forms": [ { "suggestion": 0, "submit": "Find my best running shoes", "prompt": "Recommend the best beginner running shoes based on these preferences:…", "fields": [ { "name": "budget", "control": "radio-group", "options": [{"value": "Under $80", "label": "Under $80"}], "default": "100–150", "label": "1. What's your budget?" } ] } ] }, "conversation": {"id": "c_f2Yfh5reFisXUt4Wga6Mkw", "turn": 1, "expiresAt": "2026-10-30T04:00:43.744Z"} } } ``` ## Errors | Status | Code | Meaning | |---|---|---| | 400 | `INVALID_PARAMS` | A parameter is missing, unknown or out of range, or the engine does not take it. The message names it. | | 401 | `UNAUTHORIZED` | The `x-api-key` header is missing, or the key is revoked or unknown. | | 402 | `INSUFFICIENT_BALANCE` | The balance does not cover this call. Top up in the dashboard. | | 429 | `MARKETPLACE_SATURATED` | Too many concurrent calls. Retry after the `Retry-After` seconds. | | 502 | `UPSTREAM_ERROR` | The engine answered with something unusable. Retry with backoff. | | 502 | `UPSTREAM_TIMEOUT` | The engine did not answer in time. Retry. | | 503 | `SERVICE_UNAVAILABLE` | A temporary failure. Retry with backoff. | Every code is listed in [Errors](/docs/errors). Failed calls are not billed. ## Pricing **Price** $0.0012 per call. [List price](https://apinoa.com/en/pricing); the rate steps down above 1,000 calls a day. ## Notes - To ask a follow-up, pass the answer's `conversation.id` as `conversation`. - `photos` takes up to four images to ask about, as https URLs or `data:image/…;base64,` URLs. - ChatGPT answers in the language of the prompt. --- # Gemini > Gemini's answers, with citations and sources. Conversations are supported. Source: https://apinoa.com/en/docs-raw/api-reference/gemini Gemini's answers, with citations and sources. Conversations are supported. **Markets:** `US` `DE` `GB` `AT` `KR` `AU` `JP` `CA` `FR` `IT` (the first is the default) ## Operations | Operation | Endpoint | Returns | Price | |---|---|---|---| | [Answer](/docs/api-reference/gemini/answer) | `POST /v1/gemini/answer` | `Answer` | $0.0012 | --- # Answer > Ask Gemini a question and get its answer, with citations, sources, cards and mentions. Source: https://apinoa.com/en/docs-raw/api-reference/gemini/answer ```http POST /v1/gemini/answer ``` Send the inputs as a JSON body. An answer takes seconds: allow up to 120 seconds. ## Request ```bash tab="cURL" curl -X POST "https://gateway.apinoa.com/v1/gemini/answer" \ -H "x-api-key: $APINOA_API_KEY" \ -H "content-type: application/json" \ -d '{"prompt": "What are the best running shoes for beginners?", "country": "US"}' ``` ```js tab="JavaScript" const res = await fetch("https://gateway.apinoa.com/v1/gemini/answer", { method: "POST", headers: { "x-api-key": process.env.APINOA_API_KEY, "content-type": "application/json" }, body: JSON.stringify({ prompt: "What are the best running shoes for beginners?", country: "US" }), }); const { success, data, error } = await res.json(); ``` ```python tab="Python" import os import requests res = requests.post( "https://gateway.apinoa.com/v1/gemini/answer", json={"prompt": "What are the best running shoes for beginners?", "country": "US"}, headers={"x-api-key": os.environ["APINOA_API_KEY"]}, timeout=120, ) body = res.json() ``` ## Parameters | Parameter | Type | Required | Notes | |---|---|---|---| | `prompt` | string | yes | The question, as a person would type it. | | `conversation` | string | | An earlier answer's `conversation.id`: ask a follow-up in the same conversation. | | `country` | string | | The market the answer is asked from, as an ISO 3166 country code. Each engine's page lists its countries. | | `include` | enum list | | `page`: also return the answer as a self-contained HTML page, in `page`. | The same parameters, and every response type, are in the OpenAPI document: https://apinoa.com/openapi.json ## Response Returns [`Answer`](/docs/api-reference/answers/response-schema#answer) in `data`. A real response, shortened: arrays keep their first entries and long text is cut. ```json { "success": true, "data": { "engine": "gemini", "outcome": "answered", "prompt": "What are the best running shoes for beginners?", "askedAt": "2026-10-30T01:00:44.498Z", "country": "US", "language": "en", "title": "Best Running Shoes for Beginners", "blocks": [ { "type": "paragraph", "markdown": "When starting out as a runner, the best shoes share a few key traits: **generous comfort** to protect your joints as your body adapts, a **forgiving fit** that…" }, { "type": "paragraph", "markdown": "The top-rated, most reliable running shoes for beginners feature several standout models tailored to different preferences:" } ], "text": "When starting out as a runner, the best shoes share a few key traits: generous comfort to protect your joints as your body adapts, a forgiving fit that doesn’t…", "markdown": "When starting out as a runner, the best shoes share a few key traits: **generous comfort** to protect your joints as your body adapts, a **forgiving fit** that…", "citations": [{"start": 0, "end": 258, "sources": [0]}, {"start": 443, "end": 491, "sources": [0]}], "sources": [ { "url": "https://www.fleetfeet.com/running-shoe-buyers-guide/best-running-shoes-women", "title": "The 10 Best Women's Running Shoes 2026 - Fleet Feet", "site": "Fleet Feet", "favicon": "https://encrypted-tbn2.gstatic.com/favicon-tbn?q=tbn%3AANd9GcQTW69jHapZCXp40IeOUlcK9pl3Uqjv9AfQz4UK9yWZJzexnB8DlIx8FEp1QlJMdcyn62qSLSzVxWKbjG00g2yeWYdoHkxcWHAPB…", "snippet": "The nitrogen-infused DNA Loft v3 cushioning provides soft, protective comfort without feeling overly squishy or unstable — giving you the confidence to run, wal…", "cited": true, "ext": { "quotes": ["The nitrogen-infused DNA Loft v3 cushioning provides … gear as you build your new habit."], "snippets": [ "The nitrogen-infused DNA Loft v3 cushioning provides soft, protective comfort without feeling overly squishy or unstable — giving you the confidence to run, wal…" ] } }, { "url": "https://www.fleetfeet.com/blog/our-top-6-running-shoes-for-beginners-this-summer", "title": "Our Top 6 Running Shoes for Beginners This Summer - Fleet Feet", "site": "Fleet Feet", "favicon": "https://encrypted-tbn2.gstatic.com/favicon-tbn?q=tbn%3AANd9GcQTW69jHapZCXp40IeOUlcK9pl3Uqjv9AfQz4UK9yWZJzexnB8DlIx8FEp1QlJMdcyn62qSLSzVxWKbjG00g2yeWYdoHkxcWHAPB…", "snippet": "Plus, it's available in Fleet Feet exclusive colorways, helping you stand out from the crowd. Read the full review. Sale. Women's ASICS Gel-Cumulus 25. Women's…", "cited": true, "ext": { "quotes": ["Plus, it's available in Fleet Feet exclusive … decade, mostly because it's so aptly named."], "snippets": [ "Plus, it's available in Fleet Feet exclusive colorways, helping you stand out from the crowd. Read the full review. Sale. Women's ASICS Gel-Cumulus 25. Women's…" ] } } ], "mentions": [], "cards": [], "suggestions": [ { "text": "Compare neutral vs. stability running shoes", "prompt": "What is the difference between neutral and stability running shoes, and how do I know which one I need?" }, { "text": "Tips for starting a Couch-to-5K running routine", "prompt": "Give me a beginner-friendly Couch-to-5K running plan and tips to avoid injury." } ], "ext": { "model": "3.5 Flash-Lite", "steps": [{"label": "Searched the web", "tool": "Google Search", "pages": 8}], "classifier": [ [{"label": "Academic - Other", "score": 1.2308828e-05}, {"label": "Coding", "score": 8.606076e-06}], [ {"label": "Action Execution / Device Control - Other", "score": 2.9255574e-05}, {"label": "Advice & Opinion - Other", "score": 0.00015245765} ] ], "modifiers": ["Longer", "Shorter"], "suggestionHeading": "To help you narrow down your choice:" }, "conversation": {"id": "c_GLVf-d67JzX_h9UkuWw87Q", "turn": 1, "expiresAt": "2026-10-30T01:30:51.206Z"} } } ``` ## Errors | Status | Code | Meaning | |---|---|---| | 400 | `INVALID_PARAMS` | A parameter is missing, unknown or out of range, or the engine does not take it. The message names it. | | 401 | `UNAUTHORIZED` | The `x-api-key` header is missing, or the key is revoked or unknown. | | 402 | `INSUFFICIENT_BALANCE` | The balance does not cover this call. Top up in the dashboard. | | 429 | `MARKETPLACE_SATURATED` | Too many concurrent calls. Retry after the `Retry-After` seconds. | | 502 | `UPSTREAM_ERROR` | The engine answered with something unusable. Retry with backoff. | | 502 | `UPSTREAM_TIMEOUT` | The engine did not answer in time. Retry. | | 503 | `SERVICE_UNAVAILABLE` | A temporary failure. Retry with backoff. | Every code is listed in [Errors](/docs/errors). Failed calls are not billed. ## Pricing **Price** $0.0012 per call. [List price](https://apinoa.com/en/pricing); the rate steps down above 1,000 calls a day. ## Notes - To ask a follow-up, pass the answer's `conversation.id` as `conversation`. - Gemini answers in the language of the prompt. --- # Google AI Mode > Google AI Mode's answers, with citations, sources, product cards and mentions. Conversations are supported. Source: https://apinoa.com/en/docs-raw/api-reference/google-ai-mode Google AI Mode's answers, with citations, sources, product cards and mentions. Conversations are supported. **Markets:** `US` ## Operations | Operation | Endpoint | Returns | Price | |---|---|---|---| | [Answer](/docs/api-reference/google-ai-mode/answer) | `POST /v1/google-ai-mode/answer` | `Answer` | $0.0012 | --- # Answer > Ask Google AI Mode a question and get its answer, with citations, sources, cards and mentions. Source: https://apinoa.com/en/docs-raw/api-reference/google-ai-mode/answer ```http POST /v1/google-ai-mode/answer ``` Send the inputs as a JSON body. An answer takes seconds: allow up to 120 seconds. ## Request ```bash tab="cURL" curl -X POST "https://gateway.apinoa.com/v1/google-ai-mode/answer" \ -H "x-api-key: $APINOA_API_KEY" \ -H "content-type: application/json" \ -d '{"prompt": "What are the best running shoes for beginners?"}' ``` ```js tab="JavaScript" const res = await fetch("https://gateway.apinoa.com/v1/google-ai-mode/answer", { method: "POST", headers: { "x-api-key": process.env.APINOA_API_KEY, "content-type": "application/json" }, body: JSON.stringify({ prompt: "What are the best running shoes for beginners?" }), }); const { success, data, error } = await res.json(); ``` ```python tab="Python" import os import requests res = requests.post( "https://gateway.apinoa.com/v1/google-ai-mode/answer", json={"prompt": "What are the best running shoes for beginners?"}, headers={"x-api-key": os.environ["APINOA_API_KEY"]}, timeout=120, ) body = res.json() ``` ## Parameters | Parameter | Type | Required | Notes | |---|---|---|---| | `prompt` | string | yes | The question, as a person would type it. | | `conversation` | string | | An earlier answer's `conversation.id`: ask a follow-up in the same conversation. | | `country` | string | | The market the answer is asked from, as an ISO 3166 country code. Each engine's page lists its countries. | | `include` | enum list | | `page`: also return the answer as a self-contained HTML page, in `page`. | | `language` | string | | The language to answer in, as a language tag (`en`, `ko-KR`). | The same parameters, and every response type, are in the OpenAPI document: https://apinoa.com/openapi.json ## Response Returns [`Answer`](/docs/api-reference/answers/response-schema#answer) in `data`. A real response, shortened: arrays keep their first entries and long text is cut. ```json { "success": true, "data": { "engine": "google-ai-mode", "prompt": "What are the best running shoes for beginners?", "askedAt": "2026-10-30T01:03:14.053Z", "country": "US", "outcome": "answered", "title": "Best Running Shoes for Beginners", "blocks": [ { "type": "paragraph", "markdown": "Choosing the right running shoes as a beginner comes down to finding a protective, comfortable **daily trainer** that offers a balanced mix of stability and sho…" }, {"type": "heading", "level": 3, "markdown": "Top Running Shoes for Beginners"}, {"type": "cards", "cards": [0]} ], "text": "Choosing the right running shoes as a beginner comes down to finding a protective, comfortable daily trainer that offers a balanced mix of stability and shock a…", "markdown": "Choosing the right running shoes as a beginner comes down to finding a protective, comfortable **daily trainer** that offers a balanced mix of stability and sho…", "citations": [{"start": 171, "end": 282, "sources": [0, 1]}, {"start": 317, "end": 408, "sources": [3]}], "sources": [ { "url": "https://www.reddit.com/r/AskRunningShoeGeeks/comments/1ngm9bj/advice_on_daily_runners_for_beginner_should_i/", "title": "Advice on daily runners for beginner - should i listen less to you guys?", "site": "Reddit", "favicon": "https://encrypted-tbn2.gstatic.com/faviconV2?url=https://www.reddit.com&client=AIM&size=128&type=FAVICON&fallback_opts=TYPE,SIZE,URL", "snippet": "The Saucony Triumph is frequently suggested as a suitable cushioned daily trainer for beginners, with having less cushion than the...", "cited": true, "ext": {"origin": "https://www.reddit.com"} }, { "url": "https://www.google.com/search?q=product&prds=pvt:hg,pvo:29,productid:5825792439568125735,catalogid:10929777223096081606,gpcid:5310959131376330242,mid:5764628895…", "title": "ASICS Men's Gel-Nimbus 28", "site": "Google", "favicon": "https://encrypted-tbn1.gstatic.com/faviconV2?url=https://www.google.com&client=AIM&size=128&type=FAVICON&fallback_opts=TYPE,SIZE,URL", "snippet": "The Gel-Nimbus 28 is a refined max-cushion daily neutral shoe. It's 7% lighter than the Nimbus 27, with a 43.5 / 35.5 mm stack. Th...", "cited": true, "ext": {"origin": "https://www.google.com"} } ], "cards": [ { "type": "product", "title": "ASICS Men's Novablast 6", "url": "https://www.google.com/search?ibp=oshop&prds=pvt:a,pvo:29,mid:576462896392334029,imageDocid:13241215194731966452,gpcid:5626042281368975415,headlineOfferDocid:24…", "image": "data:image/jpeg;base64,/9j/4AAQSkZJRgABA…", "price": {"text": "$155.00", "amount": 155, "currency": "USD"}, "rating": 4.66, "reviews": 1546, "merchant": "ASICS", "sponsored": false, "ext": { "productId": "7161459321851462405", "catalogId": "8790407336806612921", "offerId": "2453831124051266496", "merchantId": "576462896392334029", "moreMerchants": true, "reviewsShown": "1.5K", "merchantUrl": "http://www.asics.com/us/", "delivery": {"from": "2026-11-03", "to": "2026-11-09"} } }, { "type": "product", "title": "Brooks Men's Ghost 18", "url": "https://www.google.com/search?ibp=oshop&prds=pvt:a,pvo:29,mid:576462236222818190,imageDocid:7301987987080420790,gpcid:7326703641027475137,headlineOfferDocid:214…", "image": "data:image/jpeg;base64,/9j/4AAQSkZJRgABA…", "price": {"text": "$150.00", "amount": 150, "currency": "USD"}, "rating": 4.53, "reviews": 674, "merchant": "Brooks Running", "sponsored": false, "ext": { "productId": "2256397734681246202", "catalogId": "12711205400595365682", "offerId": "2148487881347949421", "merchantId": "576462236222818190", "moreMerchants": true, "merchantUrl": "https://www.BrooksRunning.com", "delivery": {"from": "2026-10-28", "to": "2026-10-30"} } } ], "mentions": [ {"name": "ASICS Novablast 6", "kind": "product", "at": 1767, "card": 4}, {"name": "Brooks Ghost 18", "kind": "product", "at": 1870, "card": 5} ], "suggestions": [], "conversation": {"id": "c_0nTtfHpv8jl7f55V-cg1Yg", "turn": 1, "expiresAt": "2026-10-30T01:33:16.375Z"} } } ``` ## Errors | Status | Code | Meaning | |---|---|---| | 400 | `INVALID_PARAMS` | A parameter is missing, unknown or out of range, or the engine does not take it. The message names it. | | 401 | `UNAUTHORIZED` | The `x-api-key` header is missing, or the key is revoked or unknown. | | 402 | `INSUFFICIENT_BALANCE` | The balance does not cover this call. Top up in the dashboard. | | 429 | `MARKETPLACE_SATURATED` | Too many concurrent calls. Retry after the `Retry-After` seconds. | | 502 | `UPSTREAM_ERROR` | The engine answered with something unusable. Retry with backoff. | | 502 | `UPSTREAM_TIMEOUT` | The engine did not answer in time. Retry. | | 503 | `SERVICE_UNAVAILABLE` | A temporary failure. Retry with backoff. | Every code is listed in [Errors](/docs/errors). Failed calls are not billed. ## Pricing **Price** $0.0012 per call. [List price](https://apinoa.com/en/pricing); the rate steps down above 1,000 calls a day. ## Notes - To ask a follow-up, pass the answer's `conversation.id` as `conversation`. - `language` sets the language of the answer. --- # Google AI Overviews > The AI Overview Google shows above its search results, with its sources and the results around it. Source: https://apinoa.com/en/docs-raw/api-reference/google-aio The AI Overview Google shows above its search results, with its sources and the results around it. **Markets:** `US` ## Operations | Operation | Endpoint | Returns | Price | |---|---|---|---| | [Answer](/docs/api-reference/google-aio/answer) | `POST /v1/google-aio/answer` | `Answer` | $0.0012 | --- # Answer > Get the AI Overview Google shows above its results, with its sources and the results around it. Source: https://apinoa.com/en/docs-raw/api-reference/google-aio/answer ```http POST /v1/google-aio/answer ``` Send the inputs as a JSON body. An answer takes seconds: allow up to 120 seconds. ## Request ```bash tab="cURL" curl -X POST "https://gateway.apinoa.com/v1/google-aio/answer" \ -H "x-api-key: $APINOA_API_KEY" \ -H "content-type: application/json" \ -d '{"prompt": "best crm for small business"}' ``` ```js tab="JavaScript" const res = await fetch("https://gateway.apinoa.com/v1/google-aio/answer", { method: "POST", headers: { "x-api-key": process.env.APINOA_API_KEY, "content-type": "application/json" }, body: JSON.stringify({ prompt: "best crm for small business" }), }); const { success, data, error } = await res.json(); ``` ```python tab="Python" import os import requests res = requests.post( "https://gateway.apinoa.com/v1/google-aio/answer", json={"prompt": "best crm for small business"}, headers={"x-api-key": os.environ["APINOA_API_KEY"]}, timeout=120, ) body = res.json() ``` ## Parameters | Parameter | Type | Required | Notes | |---|---|---|---| | `prompt` | string | yes | The question, as a person would type it. | | `country` | string | | The market the answer is asked from, as an ISO 3166 country code. Each engine's page lists its countries. | | `include` | enum list | | `page`: also return the answer as a self-contained HTML page, in `page`. | | `language` | string | | The language to answer in, as a language tag (`en`, `ko-KR`). | The same parameters, and every response type, are in the OpenAPI document: https://apinoa.com/openapi.json ## Response Returns [`Answer`](/docs/api-reference/answers/response-schema#answer) in `data`. A real response, shortened: arrays keep their first entries and long text is cut. ```json { "success": true, "data": { "engine": "google-aio", "prompt": "best crm for small business", "askedAt": "2026-10-30T01:03:13.154Z", "country": "US", "outcome": "answered", "blocks": [ { "type": "paragraph", "markdown": "The best CRM for a small business depends on your primary goal, with **HubSpot**, **Pipedrive**, **GoHighLevel**, and **Zoho CRM** leading the top choices." }, {"type": "heading", "level": 3, "markdown": "Top CRMs by Use Case"} ], "text": "The best CRM for a small business depends on your primary goal, with HubSpot, Pipedrive, GoHighLevel, and Zoho CRM leading the top choices.\n\nTop CRMs by Use Cas…", "markdown": "The best CRM for a small business depends on your primary goal, with **HubSpot**, **Pipedrive**, **GoHighLevel**, and **Zoho CRM** leading the top choices.\n\n###…", "citations": [{"start": 0, "end": 139, "sources": [0, 1]}, {"start": 478, "end": 544, "sources": [3, 4]}], "sources": [ { "url": "https://www.youtube.com/watch?v=RIRyuq-AKOU&t=19", "title": "Best CRM Software for Small Business for 2026 (Top 5 Tested & Compared)", "site": "YouTube", "favicon": "https://encrypted-tbn2.gstatic.com/faviconV2?url=https://www.youtube.com&client=AIM&size=128&type=FAVICON&fallback_opts=TYPE,SIZE,URL", "snippet": "Best CRM Software for Small Business for 2026 (Top 5 Tested & Compared) that's why after working with over 7,000 small businesses.", "cited": true, "ext": {"origin": "https://www.youtube.com"} }, { "url": "https://fayedigital.com/blog/best-crm-for-small-business/", "title": "Best CRM for Small Business: 2026 Guide - Faye Digital", "site": "fayedigital.com", "favicon": "https://encrypted-tbn2.gstatic.com/faviconV2?url=https://fayedigital.com&client=AIM&size=128&type=FAVICON&fallback_opts=TYPE,SIZE,URL", "snippet": "Originally published September 30, 2025 · Updated: July 2026 The best CRM for a small business is the one that fits your team toda...", "cited": true, "ext": {"origin": "https://fayedigital.com"} } ], "cards": [], "mentions": [], "suggestions": [], "results": [ { "position": 1, "title": "10 Best CRM For Small Business Reviewed For 2026", "url": "https://croclub.com/tools/best-crm-for-small-business/", "site": "The CRO Club", "favicon": "data:image/png;base64,iVBORw0KGgoAAAANSU…", "snippet": "1. monday CRM — Best for customizable workflow 2. Attio — Best for automation capabilities 3. Salesflare — Best CRM for B2B small business ...", "publishedAt": "2026-07-31T00:00:00.000Z", "breadcrumbs": ["https://croclub.com", "Tools"] }, { "position": 2, "title": "Best Small Business CRM Software for 2026: Top Picks", "url": "https://twelverays.agency/blog/the-best-small-business-crm-software-for-2023", "site": "Twelverays", "favicon": "data:image/png;base64,iVBORw0KGgoAAAANSU…", "snippet": "Zoho CRM gives small teams enterprise-grade customization at small-team prices. The free edition supports up to three users with the essentials, ...", "publishedAt": "2023-11-28T00:00:00.000Z", "breadcrumbs": ["https://twelverays.agency", "blog"] } ], "ext": { "videos": [ { "title": "Top 5 CRM software for Small Business | Best Free & Paid ...", "url": "https://www.youtube.com/watch?v=G3zieFDnrO4", "image": "data:image/jpeg;base64,/9j/4AAQSkZJRgABA…", "platform": "YouTube", "channel": "Dan Kieft", "durationSec": 212 } ], "other": [ { "text": "Page Navigation 1 2 3 4 5 6 7 8 9 Next", "links": [ { "title": "2", "url": "https://www.google.com/search?q=best+crm+for+small+business&sca_esv=1b1cc9915cf7410a&hl=en&gl=us&sxsrf=AKL5yDjUwz3OnD5UUgQHK9Z_Bxq-dflu7Q:1793322193204&ei=0ezja…" } ] } ] } } } ``` ## Errors | Status | Code | Meaning | |---|---|---| | 400 | `INVALID_PARAMS` | A parameter is missing, unknown or out of range, or the engine does not take it. The message names it. | | 401 | `UNAUTHORIZED` | The `x-api-key` header is missing, or the key is revoked or unknown. | | 402 | `INSUFFICIENT_BALANCE` | The balance does not cover this call. Top up in the dashboard. | | 429 | `MARKETPLACE_SATURATED` | Too many concurrent calls. Retry after the `Retry-After` seconds. | | 502 | `UPSTREAM_ERROR` | The engine answered with something unusable. Retry with backoff. | | 502 | `UPSTREAM_TIMEOUT` | The engine did not answer in time. Retry. | | 503 | `SERVICE_UNAVAILABLE` | A temporary failure. Retry with backoff. | Every code is listed in [Errors](/docs/errors). Failed calls are not billed. ## Pricing **Price** $0.0012 per call. [List price](https://apinoa.com/en/pricing); the rate steps down above 1,000 calls a day. ## Notes - Google shows an AI Overview for only some searches. When it shows none, `outcome` is `noAnswer` and the results page is still returned in `results`. The call is billed, because the page was read. - A one-shot answer: for a conversation, use [Google AI Mode](/docs/api-reference/google-ai-mode). --- # Naver AI Tab > The answers of Naver's AI tab, with citations, sources, product and place cards, and mentions. Conversations are supported. Source: https://apinoa.com/en/docs-raw/api-reference/naver-ai-tab The answers of Naver's AI tab, with citations, sources, product and place cards, and mentions. Conversations are supported. **Markets:** `KR` ## Operations | Operation | Endpoint | Returns | Price | |---|---|---|---| | [Answer](/docs/api-reference/naver-ai-tab/answer) | `POST /v1/naver-ai-tab/answer` | `Answer` | $0.0012 | --- # Answer > Ask Naver AI Tab a question and get its answer, with citations, sources, cards and mentions. Source: https://apinoa.com/en/docs-raw/api-reference/naver-ai-tab/answer ```http POST /v1/naver-ai-tab/answer ``` Send the inputs as a JSON body. An answer takes seconds: allow up to 120 seconds. ## Request ```bash tab="cURL" curl -X POST "https://gateway.apinoa.com/v1/naver-ai-tab/answer" \ -H "x-api-key: $APINOA_API_KEY" \ -H "content-type: application/json" \ -d '{"prompt": "초보자용 러닝화 추천해줘"}' ``` ```js tab="JavaScript" const res = await fetch("https://gateway.apinoa.com/v1/naver-ai-tab/answer", { method: "POST", headers: { "x-api-key": process.env.APINOA_API_KEY, "content-type": "application/json" }, body: JSON.stringify({ prompt: "초보자용 러닝화 추천해줘" }), }); const { success, data, error } = await res.json(); ``` ```python tab="Python" import os import requests res = requests.post( "https://gateway.apinoa.com/v1/naver-ai-tab/answer", json={"prompt": "초보자용 러닝화 추천해줘"}, headers={"x-api-key": os.environ["APINOA_API_KEY"]}, timeout=120, ) body = res.json() ``` ## Parameters | Parameter | Type | Required | Notes | |---|---|---|---| | `prompt` | string | yes | The question, as a person would type it. | | `conversation` | string | | An earlier answer's `conversation.id`: ask a follow-up in the same conversation. | | `country` | string | | The market the answer is asked from, as an ISO 3166 country code. Each engine's page lists its countries. | | `include` | enum list | | `page`: also return the answer as a self-contained HTML page, in `page`. | The same parameters, and every response type, are in the OpenAPI document: https://apinoa.com/openapi.json ## Response Returns [`Answer`](/docs/api-reference/answers/response-schema#answer) in `data`. A real response, shortened: arrays keep their first entries and long text is cut. ```json { "success": true, "data": { "engine": "naver-ai-tab", "outcome": "answered", "prompt": "초보자용 러닝화 추천해줘", "askedAt": "2026-10-30T01:00:54.627Z", "country": "KR", "language": "ko", "title": "초보자용 러닝화 추천해줘", "blocks": [ { "type": "paragraph", "markdown": "초보자라면 **쿠션과 경량성, 통기성, 발볼 편의성**을 우선해 밸롭 썬더R2·나이키 레볼루션 8·뉴발란스 480v5·스케쳐스 딜라이트 4.0·아디다스 듀라모 RC2·갤럭시 8·언더아머 차지드 서지4·런블레이즈·도윈 쿠션 러닝화·일반 경량 쿠션 러닝화를 추천해요. 발볼이 넓다면 뉴발란스…" }, {"type": "heading", "level": 3, "markdown": "가격대별 추천 러닝화 비교"}, {"type": "cards", "cards": [27]} ], "text": "초보자라면 쿠션과 경량성, 통기성, 발볼 편의성을 우선해 밸롭 썬더R2·나이키 레볼루션 8·뉴발란스 480v5·스케쳐스 딜라이트 4.0·아디다스 듀라모 RC2·갤럭시 8·언더아머 차지드 서지4·런블레이즈·도윈 쿠션 러닝화·일반 경량 쿠션 러닝화를 추천해요. 발볼이 넓다면 뉴발란스 480…", "markdown": "초보자라면 **쿠션과 경량성, 통기성, 발볼 편의성**을 우선해 밸롭 썬더R2·나이키 레볼루션 8·뉴발란스 480v5·스케쳐스 딜라이트 4.0·아디다스 듀라모 RC2·갤럭시 8·언더아머 차지드 서지4·런블레이즈·도윈 쿠션 러닝화·일반 경량 쿠션 러닝화를 추천해요. 발볼이 넓다면 뉴발란스…", "citations": [{"start": 144, "end": 211, "sources": [3, 5]}, {"start": 562, "end": 606, "sources": [3, 5]}], "sources": [ { "url": "https://product.shopping.naver.com/inflow/outlink/ai-tab?p=12535989634&tr=aitab", "title": "남성 경량 쿠션 러닝화 초보자용 운동화 러닝화 가성비 워킹화 편안한", "site": "추쓰", "favicon": "https://shopv.pstatic.net/web/r/20260416121107/_next/static/ico/favicon_shopping.ico", "snippet": "주요소재(신발) : 메시 | 부가기능 : 통풍, 경량 | 굽높이 : 3cm이하 | 발목높이 : 로우탑 | 솔 : 고무 | 사용대상 : 남성용 | 조임방식 : 끈 | 계절 : 봄 | 종류 : 카본화", "cited": false, "ext": { "official": false, "kind": "new_shopping", "platform": "네이버+ 스토어", "gdid": "00000009_0014f9375b07", "categoryId": "50000001:50000174:50001466:50003854", "thumbnails": ["https://shopping-phinf.pstatic.net/main_9008050/90080500487.jpg"] } }, { "url": "https://product.shopping.naver.com/inflow/outlink/ai-tab?p=13218239703&tr=aitab", "title": "조깅화 초보자용런닝화 가벼운 패션운동화 워킹화 쿠션좋은운동화 초경량", "site": "탑슈즈", "favicon": "https://shopv.pstatic.net/web/r/20260416121107/_next/static/ico/favicon_shopping.ico", "cited": false, "ext": { "official": false, "kind": "new_shopping", "platform": "네이버+ 스토어", "gdid": "00000009_001521e1a852", "categoryId": "50000001:50000174:50001466:50003854", "thumbnails": ["https://shopping-phinf.pstatic.net/main_9076275/90762750034.jpg"] } } ], "mentions": [ {"name": "밸롭 썬더R2 러닝화 가벼운 런닝화", "kind": "product", "card": 27}, {"name": "나이키 런닝화 레볼루션 8 가벼운 경량 운동화 조깅화", "kind": "product", "card": 30} ], "cards": [ { "type": "product", "title": "남성 경량 쿠션 러닝화 초보자용 운동화 러닝화 가성비 워킹화 편안한", "url": "https://product.shopping.naver.com/inflow/outlink/ai-tab?p=12535989634&tr=aitab", "image": "https://shopping-phinf.pstatic.net/main_9008050/90080500487.jpg", "price": {"text": "53,700원", "amount": 53700, "currency": "KRW"}, "originalPrice": {"text": "76,700원", "amount": 76700, "currency": "KRW"}, "rating": 5, "reviews": 1, "merchant": "추쓰", "badges": ["oversea"], "sponsored": false, "ext": { "nvmid": "90080500487", "gdid": "00000009_0014f9375b07", "categoryId": "50000001:50000174:50001466:50003854", "discount": "29%", "deliveryFee": "무료배송", "source": 0 } }, { "type": "product", "title": "조깅화 초보자용런닝화 가벼운 패션운동화 워킹화 쿠션좋은운동화 초경량", "url": "https://product.shopping.naver.com/inflow/outlink/ai-tab?p=13218239703&tr=aitab", "image": "https://shopping-phinf.pstatic.net/main_9076275/90762750034.jpg", "price": {"text": "32,800원", "amount": 32800, "currency": "KRW"}, "merchant": "탑슈즈", "sponsored": false, "ext": { "nvmid": "90762750034", "gdid": "00000009_001521e1a852", "categoryId": "50000001:50000174:50001466:50003854", "deliveryFee": "무료배송", "source": 1 } } ], "suggestions": [], "ext": { "searches": ["초보자용 러닝화 추천", "초보자용 러닝화"], "topic": "knowledge", "topics": [{"name": "shopping", "score": 0.9955}], "steps": [{"status": "답변 계획 중..."}, {"status": "확인 중...", "search": "초보자용 러닝화 추천"}], "disclaimer": "네이버는 상품판매의 당사자가 아닙니다. 정확한 자문은 전문가와 상담하세요." }, "conversation": {"id": "c_5p4vjyt2CF3kCk_SMp2HqQ", "turn": 1, "expiresAt": "2026-10-30T01:31:26.477Z"} } } ``` ## Errors | Status | Code | Meaning | |---|---|---| | 400 | `INVALID_PARAMS` | A parameter is missing, unknown or out of range, or the engine does not take it. The message names it. | | 401 | `UNAUTHORIZED` | The `x-api-key` header is missing, or the key is revoked or unknown. | | 402 | `INSUFFICIENT_BALANCE` | The balance does not cover this call. Top up in the dashboard. | | 429 | `MARKETPLACE_SATURATED` | Too many concurrent calls. Retry after the `Retry-After` seconds. | | 502 | `UPSTREAM_ERROR` | The engine answered with something unusable. Retry with backoff. | | 502 | `UPSTREAM_TIMEOUT` | The engine did not answer in time. Retry. | | 503 | `SERVICE_UNAVAILABLE` | A temporary failure. Retry with backoff. | Every code is listed in [Errors](/docs/errors). Failed calls are not billed. ## Pricing **Price** $0.0012 per call. [List price](https://apinoa.com/en/pricing); the rate steps down above 1,000 calls a day. ## Notes - To ask a follow-up, pass the answer's `conversation.id` as `conversation`. - Naver's AI tab answers in Korean whatever the prompt's language, and an answer takes 15–40 seconds. --- # Naver AI Briefing > The AI Briefing Naver shows above its search results, with its sources and the results around it. Source: https://apinoa.com/en/docs-raw/api-reference/naver-ai-brief The AI Briefing Naver shows above its search results, with its sources and the results around it. **Markets:** `KR` ## Operations | Operation | Endpoint | Returns | Price | |---|---|---|---| | [Answer](/docs/api-reference/naver-ai-brief/answer) | `POST /v1/naver-ai-brief/answer` | `Answer` | $0.0012 | --- # Answer > Get the AI Briefing Naver shows above its search results, with its sources and the results around it. Source: https://apinoa.com/en/docs-raw/api-reference/naver-ai-brief/answer ```http POST /v1/naver-ai-brief/answer ``` Send the inputs as a JSON body. An answer takes seconds: allow up to 120 seconds. ## Request ```bash tab="cURL" curl -X POST "https://gateway.apinoa.com/v1/naver-ai-brief/answer" \ -H "x-api-key: $APINOA_API_KEY" \ -H "content-type: application/json" \ -d '{"prompt": "아이폰 배터리 오래 쓰는 법"}' ``` ```js tab="JavaScript" const res = await fetch("https://gateway.apinoa.com/v1/naver-ai-brief/answer", { method: "POST", headers: { "x-api-key": process.env.APINOA_API_KEY, "content-type": "application/json" }, body: JSON.stringify({ prompt: "아이폰 배터리 오래 쓰는 법" }), }); const { success, data, error } = await res.json(); ``` ```python tab="Python" import os import requests res = requests.post( "https://gateway.apinoa.com/v1/naver-ai-brief/answer", json={"prompt": "아이폰 배터리 오래 쓰는 법"}, headers={"x-api-key": os.environ["APINOA_API_KEY"]}, timeout=120, ) body = res.json() ``` ## Parameters | Parameter | Type | Required | Notes | |---|---|---|---| | `prompt` | string | yes | The question, as a person would type it. | | `country` | string | | The market the answer is asked from, as an ISO 3166 country code. Each engine's page lists its countries. | | `include` | enum list | | `page`: also return the answer as a self-contained HTML page, in `page`. | The same parameters, and every response type, are in the OpenAPI document: https://apinoa.com/openapi.json ## Response Returns [`Answer`](/docs/api-reference/answers/response-schema#answer) in `data`. A real response, shortened: arrays keep their first entries and long text is cut. ```json { "success": true, "data": { "engine": "naver-ai-brief", "prompt": "아이폰 배터리 오래 쓰는 법", "askedAt": "2026-10-30T01:03:55.789Z", "country": "KR", "language": "ko", "outcome": "answered", "blocks": [ {"type": "cards", "cards": [0, 1]}, {"type": "paragraph", "markdown": "아이폰 배터리를 오래 쓰려면 충전 습관과 기기 설정을 최적화하여 배터리 셀의 열화와 전력 소모를 줄이는 것이 중요합니다."}, {"type": "heading", "level": 3, "markdown": "충전 습관 및 관리"} ], "text": "아이폰 배터리를 오래 쓰려면 충전 습관과 기기 설정을 최적화하여 배터리 셀의 열화와 전력 소모를 줄이는 것이 중요합니다.\n\n충…", "markdown": "아이폰 배터리를 오래 쓰려면 충전 습관과 기기 설정을 최적화하여 배터리 셀의 열화와 전력 소모를 줄이는 것이 중요합니다.\n\n#…", "citations": [{"start": 0, "end": 67, "sources": [0]}], "sources": [ { "url": "https://support.apple.com/ko-kr/108055", "title": "iPhone의 충전 한도 및 최적화된 배터리 충전에 관하여", "site": "Apple Support", "favicon": "https://support.apple.com/favicon.ico", "snippet": "최적화된 배터리 충전 기능으로 배터리 수명 늘리기 최적화된 배터리 충전 기능은 배터리 소모를 최소화하고 iPhone을 완전히…", "cited": true, "ext": { "official": false, "breadcrumbs": ["support.apple.com"], "gdid": "a00000fa_024437dfdb61d56e4fe29bae", "listed": 1 } } ], "mentions": [], "cards": [ { "type": "image", "image": "http://blogfiles.naver.net/MjAyNjA5MTdfMzQg/MDAxNzg5NjEyMjM4NzAy.sBEJ7…", "url": "https://blog.naver.com/sjww_jy/224414701859", "title": "아이폰 배터리 성능 100% 유지 관리법 및 수명 갉아먹는 나쁜 습관 4가지", "site": "춘향", "sponsored": false, "ext": {"platform": "네이버 블로그", "publishedAt": "2026-09-17T02:31:00.000Z", "hasFace": false, "source": 1} } ], "suggestions": [], "results": [ { "position": 1, "title": "배터리 - 성능 최대화", "url": "https://www.apple.com/kr/batteries/maximizing-performance/", "site": "Apple", "favicon": "https://search.pstatic.net/sunny?src=https%3A%2F%2Fwww.apple.com%2Ffav…", "image": "https://search.pstatic.net/sunny?src=https%3A%2F%2Fwww.apple.com%2Fv%2…", "snippet": "당신의 MacBook, iPod, iPhone, iPad에 들어있는 리튬 이온 배터리의 사용 시간과 수명을 최대로 늘려보세요.", "breadcrumbs": ["www.apple.com"], "ext": { "siteUrl": "https://www.apple.com/", "about": "애플은 iPhone, iPad, Mac, Apple Watch 등 자사 제품과 액세서리를 소개하고 온라인으로 구매할 수 있는…" } } ], "ext": { "disclaimer": "AI 답변으로 정확하지 않은 정보가 포함될 수 있어요.", "ads": [ { "title": "오픈 테이블 , 아이폰수리소", "subtitles": ["주말수리ok 택배수리ok"], "url": "https://map.naver.com/v5/entry/place/1550583143", "advertiser": "명일동아이폰수리소", "displayUrl": "map.naver.com/v5", "description": "강동구 아이폰 무료점검 - 정품인증 대용량 배터리 6만원 / 오픈된 공간에서 수리", "favicon": "https://search.pstatic.net/common/?src=https%3A%2F%2Fmap.naver.com%2Fv…", "sitelinks": [ { "title": "강동구 정품", "url": "https://map.naver.com/v5/entry/place/1550583143", "image": "https://searchad-phinf.pstatic.net/MjAyNjA0MjhfMTUx/MDAxNzc3MzY1ODMzOD…" } ] } ], "clips": [ { "title": "아이폰 배터리 3배 오래쓰는 방법! (feat. 배터리 수명늘리기) 아니, 벌써...", "url": "https://m.naver.com/shorts/?mediaType=VOD&recId=%7B%22query%22%3A%22%E…", "image": "https://search.pstatic.net/common/?src=https%3A%2F%2Fclip-service-phin…", "video": "https://a02-g-smp-vod.akamaized.net/clip-home/c/read/v2/VOD_ALPHA/clip…", "channel": "울산휴대폰성지 폰통령 무거점", "channelUrl": "https://clip.naver.com/@aone300", "avatar": "https://search.pstatic.net/common/?src=https%3A%2F%2Fclip-service-phin…", "verified": false, "date": "1일 전", "viewsText": "조회 10" } ], "influencers": { "title": "IT/테크 주제 네이버 메이트", "items": [ { "name": "햇병아리", "url": "https://blog.naver.com/sunchick1224", "image": "https://search.pstatic.net/common/?src=https%3A%2F%2Fblogpfthumb-phinf…", "platform": "블로그", "description": "아이패드 및 다양한 IT 제품 리뷰와 최신 기술 트렌드를 다루는 블로그입니다.", "citations": 1120622, "official": false } ] }, "images": [ { "image": "http://blogfiles.naver.net/MjAyNjA4MjNfMTY2/MDAxNzg3NDQyOTgxMjYz.nJMfR…", "thumbnail": "https://search.pstatic.net/common/?src=http%3A%2F%2Fblogfiles.naver.ne…", "width": 1254, "height": 1254, "url": "https://blog.naver.com/gomiyoda/224387204578", "title": "# 아이폰 배터리 오래 쓰는 법, 100% 충전보다 중요한 설정 6가지", "site": "쓸모있는 하루", "platform": "네이버 블로그", "publishedAt": "2026-08-23T00:00:00.000Z" } ] } } } ``` ## Errors | Status | Code | Meaning | |---|---|---| | 400 | `INVALID_PARAMS` | A parameter is missing, unknown or out of range, or the engine does not take it. The message names it. | | 401 | `UNAUTHORIZED` | The `x-api-key` header is missing, or the key is revoked or unknown. | | 402 | `INSUFFICIENT_BALANCE` | The balance does not cover this call. Top up in the dashboard. | | 429 | `MARKETPLACE_SATURATED` | Too many concurrent calls. Retry after the `Retry-After` seconds. | | 502 | `UPSTREAM_ERROR` | The engine answered with something unusable. Retry with backoff. | | 502 | `UPSTREAM_TIMEOUT` | The engine did not answer in time. Retry. | | 503 | `SERVICE_UNAVAILABLE` | A temporary failure. Retry with backoff. | Every code is listed in [Errors](/docs/errors). Failed calls are not billed. ## Pricing **Price** $0.0012 per call. [List price](https://apinoa.com/en/pricing); the rate steps down above 1,000 calls a day. ## Notes - Naver shows a briefing for only some searches. When it shows none, `outcome` is `noAnswer` and the results page is still returned in `results`. The call is billed, because the page was read. - A one-shot answer: for a conversation, use [Naver AI Tab](/docs/api-reference/naver-ai-tab).