Rich Structured Results
Organic results, FAQs, forum discussions, videos, places and related searches, all parsed into clean JSON.
Scrape Brave Search results as structured JSON — organic results with sitelinks, FAQs, forum discussions, videos, places and related searches. No proxies or CAPTCHAs to manage.
{
"organic_results": [
{
"position": 1,
"title": "India - Wikipedia",
"link": "https://en.wikipedia.org/wiki/India",
"displayed_link": "en.wikipedia.org › wiki › India",
"source": "Wikipedia",
"snippet": "India, officially the Republic of India, is a country in South Asia...",
"sitelinks": [
{ "title": "History", "link": "https://en.wikipedia.org/wiki/India#History" },
{ "title": "Geography", "link": "https://en.wikipedia.org/wiki/India#Geography" }
]
}
],
"related_searches": [
{ "query": "india cricket", "link": "https://search.brave.com/search?q=india%20cricket" }
]
}import requests
api_key = "APIKEY"
url = "https://api.scrapingdog.com/brave/search"
params = {
"api_key": api_key,
"query": "india",
"country": "us",
"lang": "en"
}
response = requests.get(url, params=params)
if response.status_code == 200:
data = response.json()
print(data)
else:
print(f"Request failed with status code: {response.status_code}")import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
String apiKey = "APIKEY";
String apiUrl = "https://api.scrapingdog.com/brave/search?api_key=" + apiKey + "&query=india&country=us&lang=en";
URL url = new URL(apiUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
int responseCode = connection.getResponseCode();
if (responseCode == 200) {
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = reader.readLine()) != null) {
response.append(inputLine);
}
reader.close();
System.out.println(response.toString());
} else {
System.out.println("HTTP request failed with response code: " + responseCode);
}
connection.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}<?php
$api_key = 'APIKEY';
$url = 'https://api.scrapingdog.com/brave/search?api_key=' . $api_key . '&query=india&country=us&lang=en';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
if ($response === false) {
echo 'cURL error: ' . curl_error($ch);
} else {
echo $response;
}
curl_close($ch);require 'net/http'
require 'uri'
api_key = 'APIKEY'
url = URI.parse("https://api.scrapingdog.com/brave/search?api_key=#{api_key}&query=india&country=us&lang=en")
request = Net::HTTP::Get.new(url)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
response = http.request(request)
if response.is_a?(Net::HTTPSuccess)
puts response.body
else
puts "HTTP request failed with code: #{response.code}, message: #{response.message}"
endconst axios = require('axios');
const api_key = 'APIKEY';
const url = 'https://api.scrapingdog.com/brave/search';
const params = {
api_key: api_key,
query: 'india',
country: 'us',
lang: 'en',
};
axios
.get(url, { params: params })
.then(function (response) {
if (response.status === 200) {
console.log(response.data);
} else {
console.log('Request failed with status code: ' + response.status);
}
})
.catch(function (error) {
console.error('Error making the request: ' + error.message);
});titlelinkdisplayed_linksnippetpositionsitelinksquestionanswersourcetitleforumcommentsupvotesvideos_resultsplaces_resultsrelated_searchesOrganic results, FAQs, forum discussions, videos, places and related searches, all parsed into clean JSON.
Target any market and language with the country and lang params to capture region-accurate results.
Filter by how recently a result was indexed, or apply safe-search filtering with a single param.
A rotating proxy pool changes IPs on every request to keep requests to Brave Search succeeding.
Scrapingdog clears CAPTCHAs and anti-bot challenges automatically, so requests just succeed.
Receive Brave Search results in a few seconds on our high-performance scraping infrastructure.
Track your organic position on Brave Search for target keywords over time.
Track FAQs, discussions, and related searches to spot new content opportunities.
Compare how competing sites rank for the same terms on Brave Search.
Collect diverse, privacy-focused search results at scale for LLM training and research.
Scan Brave Search results and discussions for new brand mentions and reviews.
Pull places_results to power local business discovery and travel apps.
Sign up and get free credits to start testing the Brave Search API.
Grab your API key from the dashboard to authenticate every call to /brave/search.
Call /brave/search with your query, adding country and lang to target a market.
Get organic results, FAQs, discussions, videos, places and related searches as JSON.
Start your web scraping journey with 200 free credits. Test our service and upgrade to one of the plans below. Cancel anytime.

I got the free trial and in less than a minute I already integrated with their API, they had all the plug-and-play codes ready for me. It was seamless.
United States
I love how you can use it to scrape structured data without dealing with proxies or CAPTCHAs.
Norway
Scrapingdog is an awesome service. It gave me all the structured data I needed for my project.
Mexico
Reliable, and simple to use! It’s also inexpensive and has packaged solutions for every need. Highly recommend.
France
It returns structured Brave Search results — organic results with sitelinks, FAQs, forum discussions, videos, places and related searches — as JSON.
Yes. Pass a country and lang parameter to get results localized to that market.
Yes, use the freshness parameter with values like pd (past day), pw (past week), pm (past month), or py (past year).
Yes, Scrapingdog has a dedicated Google Search API, Bing Search API & Baidu Search API that you can use to extract search results from respective platforms.
Each API request consumes a certain number of credits based on the dedicated API you're using. For example, the Brave Search API costs 5 credits per request. The number of credits required per request can vary depending on the specific API you're using.
Get 200 free credits to spin the API. No credit card required!