Brave API endpoint
Use Crawlora's Brave Search API to extract supported public Brave data as structured JSON. This page includes request parameters, cURL examples, response schema, error behavior, credit cost, and a Playground link for testing before integration.
/brave/searchReturns normalized web search results from Brave Search for a query string, along with offset-based pagination, related queries, discussions, videos, and the right-side knowledge card when Brave includes one. Use time_range for preset ranges or date_from/date_to for a custom YYYY-MM-DD range. Locale defaults to country=us and lang=en-us. Developers commonly use this endpoint for data enrichment, monitoring, research dashboards, internal automation, and AI-agent workflows that need repeatable structured public web data. Authentication uses the documented Crawlora headers, and usage is metered with the credit cost shown on this page.
Request parameters are generated from the active endpoint catalog. Required values must be sent before Crawlora can call the upstream public web data source.
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| q | string | Yes | Search query | openai | |
| offset | integer | No | Zero-based Brave result page Minimum: 0. | 1 | |
| country | string | No | us | Brave result country; defaults to us Allowed values: all, ar, at, au, be, br, ca, ch, cl, cn, de, dk, es, fi, fr, gb, gr, hk, id, in, it, jp, kr, mx, my, nl, no, nz, ph, pl, pt, ru, sa, se, sg, tr, tw, us, za | us |
| lang | string | No | en-us | Brave UI language; defaults to en-us Allowed values: de-de, en-ca, en-gb, en-in, en-us, fi-fi, fr-ca, fr-fr, ja-jp, pt-br, sq-al, sw-ke, zh-tw | en-us |
| time_range | string | No | Preset time filter: any, day, week, month, year, or custom Allowed values: any, day, week, month, year, custom | ||
| date_from | string | No | Custom start date in YYYY-MM-DD; requires date_to | 2026-03-01 | |
| date_to | string | No | Custom end date in YYYY-MM-DD; requires date_from | 2026-03-30 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/brave/search?q=openai&offset=1&country=us&lang=en-us&time_range=any&date_from=2026-03-01&date_to=2026-03-30" \ -H "x-api-key: $CRAWLORA_API_KEY"
Send your scraping API key in the x-api-key header. Use the console API Keys page to rotate or select the active key.
Endpoint usage is metered in credits. The plan prices, included credits, limits, and overage rates below match the active backend billing configuration.
| Plan | Price | Included credits | Daily cap | Rate limit | Overage |
|---|---|---|---|---|---|
| Free | $0/mo | 2,000 | 500 daily credits | 5/min | No overage |
| Starter | $9/mo | 20,000 | 5,000 daily credits | 15/min | $0.75/1,000 overage credits when enabled |
| Growth | $29/mo | 100,000 | 25,000 daily credits | 45/min | $0.45/1,000 overage credits when enabled |
| Pro | $79/mo | 400,000 | No daily cap | 120/min | $0.30/1,000 overage credits |
| Business | $199/mo | 1,200,000 | No daily cap | 300/min | $0.20/1,000 overage credits |
| Enterprise | $499/mo | 5,000,000 | No daily cap | 1,000/min | $0.12/1,000 overage credits |
This endpoint is executed through Crawlora's managed scraping infrastructure.
Crawlora does not silently return bad data when the upstream page cannot be used.
| Status | Common failure case |
|---|---|
| 400 | Invalid input or missing required parameter |
| 429 | Plan or endpoint rate limit exceeded |
| 500 | Internal execution error |
| 502 | Upstream platform failed, returned unusable HTML, or served a challenge page that could not be resolved |
When possible, Crawlora returns structured error context so your integration can retry, back off, or inspect the request.
| Status | Description | Schema |
|---|---|---|
| 400 | Missing or invalid query | #/definitions/app.Response |
| 404 | No results found | #/definitions/app.Response |
| 429 | Rate limit exceeded | #/definitions/app.Response |
| 500 | Internal server error | #/definitions/app.Response |
{
"code": 200,
"msg": "OK",
"data": {
"results": [
{
"position": 1,
"title": "OpenAI",
"url": "https://openai.com/",
"description": "OpenAI helps you build and deploy AI systems.",
"hostname": "openai.com",
"path": "research > overview"
}
],
"pagination": {
"offset": 0,
"next_offset": 1
},
"related_queries": [
"openai api"
],
"knowledge_card": {
"title": "OpenAI",
"description": "AI research and deployment company",
"long_description": "OpenAI is an AI research and deployment company building useful models and tools.",
"url": "https://openai.com/",
"image": "https://imgs.search.brave.com/openai-card.png",
"category": "Artificial intelligence company"
},
"discussions": [
{
"position": 1,
"title": "Why is OpenAI so popular?",
"url": "https://www.reddit.com/r/OpenAI/comments/abc123/why_is_openai_so_popular/",
"description": "Trying to understand why OpenAI has such a large audience.",
"forum": "r/OpenAI",
"hostname": "www.reddit.com"
}
],
"videos": [
{
"position": 1,
"title": "OpenAI DevDay keynote - YouTube",
"url": "https://www.youtube.com/watch?v=openai-devday",
"description": "Watch the OpenAI DevDay keynote and product announcements.",
"platform": "YouTube",
"creator": "OpenAI"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/brave.searchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | brave.SearchResponse | No | ||||
| data.discussions | array | No | ||||
| data.discussions[].age | string | No | October 24, 2024 | |||
| data.discussions[].comment_count | integer | No | 30 | |||
| data.discussions[].description | string | No | I have free time from highschool and want to get into coding, and tips on diving in and learning. | |||
| data.discussions[].favicon | string | No | https://imgs.search.brave.com/example-reddit.ico | |||
| data.discussions[].forum | string | No | r/pythontips | |||
| data.discussions[].hostname | string | No | www.reddit.com | |||
| data.discussions[].path | string | No | r > pythontips > comments > 1gav6bm > how_to_learn_python | |||
| data.discussions[].position | integer | No | 1 | |||
| data.discussions[].score | integer | No | 25 | |||
| data.discussions[].title | string | No | How to learn python | |||
| data.discussions[].top_comment | string | No | r/learnpython | |||
| data.discussions[].url | string | No | https://www.reddit.com/r/pythontips/comments/1gav6bm/how_to_learn_python/ | |||
| data.knowledge_card | brave.KnowledgeCard | No | ||||
| data.knowledge_card.category | string | No | computer program | |||
| data.knowledge_card.description | string | No | computer program that produces the message "Hello, world!", often used to illustrate the basic syntax of a programming language | |||
| data.knowledge_card.image | string | No | https://imgs.search.brave.com/example-card.png | |||
| data.knowledge_card.long_description | string | No | A "Hello, World!" program is usually a simple computer program that displays on the screen a message similar to "Hello, World!". | |||
| data.knowledge_card.provider | brave.KnowledgeCardProvider | No | ||||
| data.knowledge_card.provider.icon | string | No | https://imgs.search.brave.com/example-provider.ico | |||
| data.knowledge_card.provider.name | string | No | Wikipedia | |||
| data.knowledge_card.provider.url | string | No | https://en.wikipedia.org/wiki/%22Hello,_World!%22_program | |||
| data.knowledge_card.title | string | No | "Hello, World!" program | |||
| data.knowledge_card.url | string | No | https://en.wikipedia.org/wiki/%22Hello,_World!%22_program | |||
| data.pagination | brave.SearchPagination | No | ||||
| data.pagination.next_offset | integer | No | 1 | |||
| data.pagination.offset | integer | No | 0 | |||
| data.pagination.previous_offset | integer | No | 0 | |||
| data.related_queries | array | No | hello world anime,hello world code | |||
| data.results | array | No | ||||
| data.results[].age | string | No | 1 day ago | |||
| data.results[].description | string | No | OpenAI helps you build and deploy AI systems. | |||
| data.results[].favicon | string | No | https://imgs.search.brave.com/example.ico | |||
| data.results[].hostname | string | No | openai.com | |||
| data.results[].path | string | No | research > index | |||
| data.results[].position | integer | No | 1 | |||
| data.results[].title | string | No | OpenAI | |||
| data.results[].url | string | No | https://openai.com/ | |||
| data.videos | array | No | ||||
| data.videos[].age | string | No | March 24, 2024 | |||
| data.videos[].creator | string | No | Train To Code | |||
| data.videos[].description | string | No | Introducing you to 15 of the most popular programming languages in the world, by writing hello world to the console. | |||
| data.videos[].duration | string | No | 08:47 | |||
| data.videos[].favicon | string | No | https://imgs.search.brave.com/example-youtube.ico | |||
| data.videos[].hostname | string | No | www.youtube.com | |||
| data.videos[].path | string | No | watch | |||
| data.videos[].platform | string | No | YouTube | |||
| data.videos[].position | integer | No | 1 | |||
| data.videos[].thumbnail | string | No | https://imgs.search.brave.com/example-thumb.jpg | |||
| data.videos[].title | string | No | Hello World in 15 Programming Languages - YouTube | |||
| data.videos[].url | string | No | https://www.youtube.com/watch?v=tRUsXTbixIE | |||
| data.videos[].views | string | No | 118 | |||
| msg | string | No | OK |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/brave/search?q=openai&offset=1&country=us&lang=en-us&time_range=any&date_from=2026-03-01&date_to=2026-03-30" \
-H "x-api-key: $CRAWLORA_API_KEY"Crawlora is designed for responsible structured public web data workflows. Customers are responsible for using Crawlora in compliance with applicable laws, third-party rights, target-platform rules, and Crawlora terms.
Read Crawlora terms