Google Search Advanced
Fetch a modern Google SERP through the browser orchestrator and return richer structured modules including organic results, ads, People Also Ask, knowledge panels, local packs, news, videos, images, shopping blocks, answer boxes, related searches, spelling corrections, filters, and pagination when present.
Run this endpoint
Endpoint
https://scrappa.co/api/search-advanced?query=best+restaurants+in+Berlin&hl=en&gl=de
https://scrappa.co/api/search-advanced?query=best+restaurants+in+Berlin&hl=en&gl=de
x-api-key
query
= best restaurants in Berlin
{
"search_information": {
"query_displayed": "best restaurants in Berlin",
"total_results": 428000000
},
"organic_results": [
{
"position": 1,
"title": "The 38 Best Restaurants in Berlin",
"link": "https://www.example.com/berlin/best-restaurants",
"displayed_link": "www.example.com > berlin > best-restaurants",
"snippet": "A curated guide to Berlin restaurants, from modern German dining rooms to casual neighborhood favorites.",
"source": "example.com"
}
...
Parameters
Start with the required fields, then add optional filters only when your use case needs them.
Runnable path
1 required parameter needed before sending a request.
16 optional filters available.
string
Required
Search query
best restaurants in Berlin
string
Optional
Location for results (currently ignored by backend)
Austin, Texas
string
Optional
Encoded location (deprecated; supported)
example
string
Optional
Google domain (e.g., google.de)
example
string
Optional
Country code (e.g., us, de, fr)
de
string
Optional
Restrict results to countries (e.g., countryUS|countryDE)
countryUS
string
Optional
Interface language code
en
string
Optional
Restrict results to language (e.g., lang_en)
lang_en
string
Optional
Advanced search filters (dates, patents, etc.)
example
string
Optional
Simple time range filter (e.g., d, w, m, y)
example
string
Optional
Safe search mode (active, off)
off
integer
Optional
Exclude auto-corrected results (0 or 1)
10
integer
Optional
Enable/disable similar/omitted filters (0 or 1)
1
string
Optional
Search type (isch, vid, nws, lcl, shop, pts)
example
integer
Optional
Result offset for pagination (0-indexed)
0
integer
Optional
Page number for pagination (0-indexed)
1
integer
Optional
Results per page (1-10, may return fewer)
10
Request Examples
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://scrappa.co/api/search-advanced?query=best+restaurants+in+Berlin&hl=en&gl=de",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: YOUR_API_KEY_HERE"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
<?php
use Illuminate\Support\Facades\Http;
$response = Http::timeout(30)
->withHeaders(['x-api-key' => 'YOUR_API_KEY_HERE'])
->get('https://scrappa.co/api/search-advanced?query=best+restaurants+in+Berlin&hl=en&gl=de');
if ($response->successful()) {
echo $response->body();
} else {
echo "Error: " . $response->status();
}
const options = {
method: 'GET',
headers: {
'x-api-key': 'YOUR_API_KEY_HERE'
}
};
fetch('https://scrappa.co/api/search-advanced?query=best+restaurants+in+Berlin&hl=en&gl=de', options)
.then(response => {
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return response.text();
})
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
const axios = require('axios');
const options = {
method: 'GET',
url: 'https://scrappa.co/api/search-advanced?query=best+restaurants+in+Berlin&hl=en&gl=de',
headers: {
x-api-key: 'YOUR_API_KEY_HERE',
}
};
try {
const response = await axios(options);
console.log(response.data);
} catch (error) {
console.error('Error:', error.message);
}
require 'net/http'
require 'uri'
uri = URI.parse("https://scrappa.co/api/search-advanced?query=best+restaurants+in+Berlin&hl=en&gl=de")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == 'https'
request = Net::HTTP::Get.new(uri.request_uri)
request['x-api-key'] = 'YOUR_API_KEY_HERE'
begin
response = http.request(request)
puts response.body
rescue => e
puts "Error: #{e.message}"
end
import http.client
import json
conn = http.client.HTTPSConnection("scrappa.co")
headers = {
'x-api-key': 'YOUR_API_KEY_HERE',
}
try:
conn.request("GET", "/api/search-advanced?query=best+restaurants+in+Berlin&hl=en&gl=de", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
except Exception as e:
print(f"Error: {e}")
finally:
conn.close()
import requests
headers = {
'x-api-key': 'YOUR_API_KEY_HERE',
}
try:
response = requests.get('https://scrappa.co/api/search-advanced?query=best+restaurants+in+Berlin&hl=en&gl=de', headers=headers)
response.raise_for_status()
print(response.text)
except requests.exceptions.RequestException as e:
print(f"Error: {e}")
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;
public class ApiExample {
public static void main(String[] args) {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://scrappa.co/api/search-advanced?query=best+restaurants+in+Berlin&hl=en&gl=de")
.addHeader("x-api-key", "YOUR_API_KEY_HERE")
.build();
try (Response response = client.newCall(request).execute()) {
if (response.isSuccessful()) {
System.out.println(response.body().string());
} else {
System.out.println("Error: " + response.code());
}
} catch (IOException e) {
System.out.println("Error: " + e.getMessage());
}
}
}
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
client := &http.Client{}
req, err := http.NewRequest("GET", "https://scrappa.co/api/search-advanced?query=best+restaurants+in+Berlin&hl=en&gl=de", nil)
if err != nil {
fmt.Println("Error creating request:", err)
return
}
req.Header.Set("x-api-key", "YOUR_API_KEY_HERE")
resp, err := client.Do(req)
if err != nil {
fmt.Println("Error making request:", err)
return
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println("Error reading response:", err)
return
}
fmt.Println(string(body))
}
#!/bin/bash
curl -X GET \
-H "x-api-key: YOUR_API_KEY_HERE" \
"https://scrappa.co/api/search-advanced?query=best+restaurants+in+Berlin&hl=en&gl=de"
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", "YOUR_API_KEY_HERE");
try
{
var response = await client.SendAsync(new HttpRequestMessage(HttpMethod.Get, "https://scrappa.co/api/search-advanced?query=best+restaurants+in+Berlin&hl=en&gl=de"));
var content = await response.Content.ReadAsStringAsync();
Console.WriteLine(content);
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
}
import axios from 'axios';
async function run(): Promise<void> {
try {
const response = await axios({
method: 'GET',
url: 'https://scrappa.co/api/search-advanced?query=best+restaurants+in+Berlin&hl=en&gl=de',
headers: {
'x-api-key': 'YOUR_API_KEY_HERE',
},
});
console.log(response.data);
} catch (error) {
console.error('Error:', error);
}
}
void run();
use reqwest::Client;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = Client::new();
let response = client
.get("https://scrappa.co/api/search-advanced?query=best+restaurants+in+Berlin&hl=en&gl=de")
.header("x-api-key", "YOUR_API_KEY_HERE")
.send()
.await?;
println!("{}", response.text().await?);
Ok(())
}
Response Schema
{
"search_information": {
"query_displayed": "best restaurants in Berlin",
"total_results": 428000000
},
"organic_results": [
{
"position": 1,
"title": "The 38 Best Restaurants in Berlin",
"link": "https://www.example.com/berlin/best-restaurants",
"displayed_link": "www.example.com > berlin > best-restaurants",
"snippet": "A curated guide to Berlin restaurants, from modern German dining rooms to casual neighborhood favorites.",
"source": "example.com"
}
],
"people_also_ask": [
{
"question": "What food is Berlin best known for?"
}
],
"knowledge_graph": null,
"local_results": {
"places": []
},
"top_stories": [],
"videos": [],
"images": [],
"shopping_results": [],
"related_searches": [],
"pagination": {
"next": null
},
"service_used": "google"
}
Generate Code with AI
Copy a ready-made prompt with all the endpoint details, parameters, and example responses. Paste it into ChatGPT, Claude, or any AI assistant to instantly generate working code.