Collect Google SERP 100 Results by URL
curl --request POST \
--url https://api.brightdata.com/datasets/v3/scrape \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"input": [
{
"url": "<string>",
"keyword": "<string>",
"tbm": "<string>",
"language": "<string>",
"uule": "<string>",
"brd_mobile": "<string>",
"tbs": "<string>",
"nfpr": "<string>",
"index": "<string>"
}
]
}
'import requests
url = "https://api.brightdata.com/datasets/v3/scrape"
payload = { "input": [
{
"url": "<string>",
"keyword": "<string>",
"tbm": "<string>",
"language": "<string>",
"uule": "<string>",
"brd_mobile": "<string>",
"tbs": "<string>",
"nfpr": "<string>",
"index": "<string>"
}
] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
input: [
{
url: '<string>',
keyword: '<string>',
tbm: '<string>',
language: '<string>',
uule: '<string>',
brd_mobile: '<string>',
tbs: '<string>',
nfpr: '<string>',
index: '<string>'
}
]
})
};
fetch('https://api.brightdata.com/datasets/v3/scrape', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.brightdata.com/datasets/v3/scrape",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'input' => [
[
'url' => '<string>',
'keyword' => '<string>',
'tbm' => '<string>',
'language' => '<string>',
'uule' => '<string>',
'brd_mobile' => '<string>',
'tbs' => '<string>',
'nfpr' => '<string>',
'index' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.brightdata.com/datasets/v3/scrape"
payload := strings.NewReader("{\n \"input\": [\n {\n \"url\": \"<string>\",\n \"keyword\": \"<string>\",\n \"tbm\": \"<string>\",\n \"language\": \"<string>\",\n \"uule\": \"<string>\",\n \"brd_mobile\": \"<string>\",\n \"tbs\": \"<string>\",\n \"nfpr\": \"<string>\",\n \"index\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.brightdata.com/datasets/v3/scrape")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"input\": [\n {\n \"url\": \"<string>\",\n \"keyword\": \"<string>\",\n \"tbm\": \"<string>\",\n \"language\": \"<string>\",\n \"uule\": \"<string>\",\n \"brd_mobile\": \"<string>\",\n \"tbs\": \"<string>\",\n \"nfpr\": \"<string>\",\n \"index\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.brightdata.com/datasets/v3/scrape")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"input\": [\n {\n \"url\": \"<string>\",\n \"keyword\": \"<string>\",\n \"tbm\": \"<string>\",\n \"language\": \"<string>\",\n \"uule\": \"<string>\",\n \"brd_mobile\": \"<string>\",\n \"tbs\": \"<string>\",\n \"nfpr\": \"<string>\",\n \"index\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body[
{
"keyword": "best coffee nyc",
"results": [
{
"position": 1,
"title": "The 38 Best Coffee Shops in NYC",
"link": "https://example.com/best-coffee-nyc",
"display_link": "example.com",
"description": "Our picks for the top coffee shops in New York City."
}
],
"total_results": 100
}
]
Google
Collect Google SERP 100 Results by URL
Use the Bright Data Web Scraper API to collect up to 100 organic Google search results per query. POST /datasets/v3/scrape returns results as JSON.
POST
/
datasets
/
v3
/
scrape
Collect Google SERP 100 Results by URL
curl --request POST \
--url https://api.brightdata.com/datasets/v3/scrape \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"input": [
{
"url": "<string>",
"keyword": "<string>",
"tbm": "<string>",
"language": "<string>",
"uule": "<string>",
"brd_mobile": "<string>",
"tbs": "<string>",
"nfpr": "<string>",
"index": "<string>"
}
]
}
'import requests
url = "https://api.brightdata.com/datasets/v3/scrape"
payload = { "input": [
{
"url": "<string>",
"keyword": "<string>",
"tbm": "<string>",
"language": "<string>",
"uule": "<string>",
"brd_mobile": "<string>",
"tbs": "<string>",
"nfpr": "<string>",
"index": "<string>"
}
] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
input: [
{
url: '<string>',
keyword: '<string>',
tbm: '<string>',
language: '<string>',
uule: '<string>',
brd_mobile: '<string>',
tbs: '<string>',
nfpr: '<string>',
index: '<string>'
}
]
})
};
fetch('https://api.brightdata.com/datasets/v3/scrape', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.brightdata.com/datasets/v3/scrape",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'input' => [
[
'url' => '<string>',
'keyword' => '<string>',
'tbm' => '<string>',
'language' => '<string>',
'uule' => '<string>',
'brd_mobile' => '<string>',
'tbs' => '<string>',
'nfpr' => '<string>',
'index' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.brightdata.com/datasets/v3/scrape"
payload := strings.NewReader("{\n \"input\": [\n {\n \"url\": \"<string>\",\n \"keyword\": \"<string>\",\n \"tbm\": \"<string>\",\n \"language\": \"<string>\",\n \"uule\": \"<string>\",\n \"brd_mobile\": \"<string>\",\n \"tbs\": \"<string>\",\n \"nfpr\": \"<string>\",\n \"index\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.brightdata.com/datasets/v3/scrape")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"input\": [\n {\n \"url\": \"<string>\",\n \"keyword\": \"<string>\",\n \"tbm\": \"<string>\",\n \"language\": \"<string>\",\n \"uule\": \"<string>\",\n \"brd_mobile\": \"<string>\",\n \"tbs\": \"<string>\",\n \"nfpr\": \"<string>\",\n \"index\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.brightdata.com/datasets/v3/scrape")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"input\": [\n {\n \"url\": \"<string>\",\n \"keyword\": \"<string>\",\n \"tbm\": \"<string>\",\n \"language\": \"<string>\",\n \"uule\": \"<string>\",\n \"brd_mobile\": \"<string>\",\n \"tbs\": \"<string>\",\n \"nfpr\": \"<string>\",\n \"index\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body[
{
"keyword": "best coffee nyc",
"results": [
{
"position": 1,
"title": "The 38 Best Coffee Shops in NYC",
"link": "https://example.com/best-coffee-nyc",
"display_link": "example.com",
"description": "Our picks for the top coffee shops in New York City."
}
],
"total_results": 100
}
]
Query Parameters
string
default:"gd_mfz5x93lmsjjjylob"
required
The dataset ID used for this request.
Must be set to
gd_mfz5x93lmsjjjylob to collect Google SERP 100 results by URL.boolean
default:false
Whether to send notifications when the request is completed.
boolean
default:true
Whether to include errors in the response.
Request Body
object[]
required
An array of input objects.
Show properties
Show properties
string
required
The Google Search URL to scrape.
string
The search keyword used in the query.
string
Google
tbm (to-be-matched) parameter. Leave empty for web results, or set to isch for images, nws for news, etc.string
Language code (e.g.,
en, es, de).string
UULE parameter for geographic targeting.
string
Device targeting. Leave empty for desktop, set to
1 for mobile.string
Google
tbs parameter for time-based filtering (e.g., qdr:d for past day).string
Set to
1 to disable Google’s auto-correct.string
Result index / starting position.
Example
{
"input": [
{
"url": "https://www.google.com/search?q=best+coffee+nyc",
"keyword": "best coffee nyc",
"tbm": "",
"language": "en",
"uule": "",
"brd_mobile": "",
"tbs": "",
"nfpr": "",
"index": ""
}
]
}
[
{
"keyword": "best coffee nyc",
"results": [
{
"position": 1,
"title": "The 38 Best Coffee Shops in NYC",
"link": "https://example.com/best-coffee-nyc",
"display_link": "example.com",
"description": "Our picks for the top coffee shops in New York City."
}
],
"total_results": 100
}
]
Was this page helpful?
⌘I