In short. Brave Answers API accepts one user message and can stream an answer with tagged source citations when citations are enabled outside research mode.
Definition: Brave Answers API is an application programming interface that produces answers using web search and can return inline source citations. As of 17 October 2026, Brave documents an endpoint compatible with the OpenAI chat completions format, with additional tagged data for citations and usage.
Key facts
- Brave's Answers guide places requests at
https://api.search.brave.com/res/v1/chat/completions. - The API reference supports exactly one
usermessage in themessagesarray. - Brave's Skills documentation provides both a blocking single-search example and a streaming research example using the same endpoint.
What does a cited request contain?
The API reference specifies a text content field within the user message. It accepts brave and brave-pro as model identifiers, with brave-pro as the default. Inline citation tags require stream: true and enable_citations: true; citation tags default to disabled and are unsupported in research mode.
This request adapts the documented cURL example to enable citations:
curl -X POST "https://api.search.brave.com/res/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "x-subscription-token: <YOUR_BRAVE_SEARCH_API_KEY>" \
-d '{
"model": "brave",
"messages": [{"role": "user", "content": "What is the second highest mountain?"}],
"stream": true,
"enable_citations": true,
"enable_research": false
}'
Brave's Skills quick start also shows direct HTTP requests with a subscription token. A blocking request uses stream: false; the research example sets both stream and enable_research to true.
How are answers and sources returned?
Brave's response format guide describes ordinary answer text interspersed with tagged strings containing JSON, a structured data format. A citation tag contains start_index, end_index, number, url, favicon and snippet fields. Its example uses this shape:
<citation>{"start_index": 0, "end_index": 10, "number": 1, "url": "https://...", "favicon": "...", "snippet": "..."}</citation>
The guide's parser separates citation tags from ordinary text, decodes their JSON and displays the citation number with its source URL. A final <usage> message reports resource usage and costs. For blocking requests, the same usage keys appear in response headers.
The response schema identifies streamed objects as chat.completion.chunk and places content in choices[].delta.content. For blocking requests, the guide's SDK example reads choices[0].message.content.
Related terms
- Brave Search API
- AI citation
- How do I read streamed citations from Brave's Answers API?
- How do I enable research mode in Brave's Answers API?
FAQ
Can I use the OpenAI SDK with this API?
Yes. Brave's SDK example sets base_url to https://api.search.brave.com/res/v1 and supplies a Brave API key. You pass Brave-specific controls such as enable_citations through extra_body.
Can I send a full conversation history?
The request reference specifies exactly one user message. You should construct requests around that documented input constraint.
Sources
- Brave, "Answers", service documentation, undated
- Brave, "Answers", API reference, undated
- Brave, "Skills", undated
Check how a page reads to answer engines. Open the GEO score analyzer