Documentation

Google API

Select a language:

Overview

Here is the list of the different parameters you can use with ScrapingBee's Google API.

You can also discover this API using our Postman collection covering every ScrapingBee's features.

name [type] (default)
Description
api_key [string] required
Your api key
search [string] required
The text you would put in the Google search bar
add_html [boolean] (false)
Adding the full html of the page in the results
country_code [string] ("us")
Country code from which you would like the request to come from
date_range ["past_hour" | "past_day" | "past_week" | "past_month" | "past_year"] ("")
Filter results by recency.
device ["desktop" | "mobile"] ("desktop")
Control the device the request will be sent from
extra_params [string] ("")
Extra Google URL parameters
language [string] ("en")
Language the search results will be displayed in
latitude [float] ("")
Latitude of the geographic location to search from, in decimal degrees.
light_request [boolean] (true)
Light requests are faster and cheaper (10 credits instead of 15), but some content may be missing.
longitude [float] ("")
Longitude of the geographic location to search from, in decimal degrees.
max_price [float] ("")
Only return Google Shopping results priced at or below this value, in the marketplace's native currency.
min_price [float] ("")
Only return Google Shopping results priced at or above this value, in the marketplace's native currency.
nfpr [boolean] (false)
Exclude results from auto-corrected queries that were spelt wrong.
page [integer] (1)
The page number you want to extract results from
pages [integer] (1)
The number of Google result pages to fetch and aggregate in a single response
radius [integer] ("")
Radius around the latitude/longitude point to search within, in meters.
search_type ["classic" | "news" | "maps" | "images" | "lens" | "shopping" | "ai_mode" | "ads"] ("classic")
The type of search you want to perform
sort_by ["relevance" | "reviews" | "price_asc" | "price_desc"] ("")
Order Google Shopping results.
tag [string] ("")
A custom identifier to label requests, returned with the response headers.

Getting Started

Our Google Search API allows you to scrape search results pages in realtime.

To scrape the results, you only need two things:

Request Example

Once you have those two settings, simply do this.

Copy
curl "https://app.scrapingbee.com/api/v1/store/google?search=YOUR-SEARCH" \
     -H 'Authorization: Bearer YOUR-API-KEY'
#  Install the Python Requests library:
# `pip install requests`
import requests

def send_request():
    response = requests.get(
        url="https://app.scrapingbee.com/api/v1/store/google",
        params={
            "search": "pizza new-york",
        },
        headers={
            "Authorization": "Bearer YOUR-API-KEY",
        },

    )
    print('Response HTTP Status Code: ', response.status_code)
    print('Response HTTP Response Body: ', response.content)
send_request()
// request Axios
const axios = require('axios');

axios.get('https://app.scrapingbee.com/api/v1/store/google', {
    params: {
        'search': 'pizza new york',
    },
    headers: {
        'Authorization': 'Bearer YOUR-API-KEY',
    }
}).then(function (response) {
    // handle success
    console.log(response);
})
import java.io.IOException;
import org.apache.http.client.fluent.*;

public class SendRequest
{
  public static void main(String[] args) {
    sendRequest();
  }

  private static void sendRequest() {

    // Classic (GET )

    try {

      // Create request
      Content content = Request.Get("https://app.scrapingbee.com/api/v1/store/google?search=pizza%20new%20york")
      .addHeader("Authorization", "Bearer YOUR-API-KEY")



      // Fetch request and return content
      .execute().returnContent();

      // Print content
      System.out.println(content);
    }
    catch (IOException e) { System.out.println(e); }
  }
}
require 'net/http'
require 'net/https'

# Classic (GET )
def send_request
    uri = URI('https://app.scrapingbee.com/api/v1/store/google?search=pizza%20new%20york')

    # Create client
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER

    # Create Request
    req =  Net::HTTP::Get.new(uri)
    req['Authorization'] = 'Bearer YOUR-API-KEY'

    # Fetch Request
    res = http.request(req)
    puts "Response HTTP Status Code: #{ res.code }"
    puts "Response HTTP Response Body: #{ res.body }"
rescue StandardError => e
    puts "HTTP Request failed (#{ e.message })"
end

send_request()
<?php

// get cURL resource
$ch = curl_init();

// set url
curl_setopt($ch, CURLOPT_URL, 'https://app.scrapingbee.com/api/v1/store/google?search=pizza%20new%20york');

// set headers
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR-API-KEY']);

// set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);



// send the request and save response to $response
$response = curl_exec($ch);

// stop if fails
if (!$response) {
  die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
}

echo 'HTTP Status Code: ' . curl_getinfo($ch, CURLINFO_HTTP_CODE) . PHP_EOL;
echo 'Response Body: ' . $response . PHP_EOL;

// close curl resource to free up system resources
curl_close($ch);

?>
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func sendClassic() {
	// Create client
	client := &http.Client{}

	// Create request
	req, err := http.NewRequest("GET", "https://app.scrapingbee.com/api/v1/store/google?search=pizza%20new%20york", nil)
	req.Header.Set("Authorization", "Bearer YOUR-API-KEY")


	parseFormErr := req.ParseForm()
	if parseFormErr != nil {
		fmt.Println(parseFormErr)
	}

	// Fetch Request
	resp, err := client.Do(req)

	if err != nil {
		fmt.Println("Failure : ", err)
	}

	// Read Response Body
	respBody, _ := ioutil.ReadAll(resp.Body)

	// Display Results
	fmt.Println("response Status : ", resp.Status)
	fmt.Println("response Headers : ", resp.Header)
	fmt.Println("response Body : ", string(respBody))
}

func main() {
    sendClassic()
}
# Install the ScrapingBee CLI:
# pip install scrapingbee-cli

scrapingbee google "YOUR-SEARCH"

Response Example

The API will then respond with formatted JSON data:

{
  "ai_overviews": [
    {
      "answer_text": [
        {
          "pos": 1,
          "fragments": [
            {
              "text": "New York-style pizza is characterized by its large, hand-tossed thin crust...",
              "references": [
                {
                  "source": "Wikipedia",
                  "url": "https://en.wikipedia.org/wiki/New_York-style_pizza"
                }
              ]
            }
          ]
        },
        ...
      ],
      "bullet_list": [...],
      "pos_overall": 1,
      "source_panel": {
        "items": [...]
      }
    }
  ],
  "bottom_ads": [],
  "knowledge_graph": {},
  "local_results": [
    {
      "position": 1,
      "review": 4.6,
      "review_count": 62,
      "title": "NY Pizza Suprema"
    },
    ...
  ],
  "meta_data": {
    "location": null,
    "zero_results_for_original_query": false,
    "number_of_ads": 0,
    "number_of_organic_results": 20,
    "number_of_page": 363000000,
    "number_of_results": 363000000,
    "url": "https://www.google.com/search?q=pizza+new+york&hl=en&num=20"
  },
  "organic_results": [
    {
      "date": null,
      "date_utc": null,
      "description": null,
      "displayed_url": "https://www.tripadvisor.com › ... › New York City",
      "domain": "www.tripadvisor.com",
      "position": 1,
      "rich_snippet": {},
      "sitelinks": [],
      "title": "THE 10 BEST Pizza Places in New York City (Updated 2023)",
      "url": "https://www.tripadvisor.com/Restaurants-g60763-c31-New_York_City_New_York.html"
    },
    {
      "date": null,
      "date_utc": null,
      "description": "New York–style pizza is pizza made with a characteristically large hand-tossed thin crust, often sold in wide slices to go. The crust is thick and crisp ...",
      "displayed_url": "https://en.wikipedia.org › wiki › New_York–style_pizza",
      "domain": "en.wikipedia.org",
      "position": 2,
      "rich_snippet": {
        "top": {
          "attributes": [
            {
              "name": "Main ingredients",
              "value": "Pizza dough, tomato sauce‎, ...‎"
            },
            {
              "name": "Region or state",
              "value": "New York City, ‎New York‎"
            }
          ],
          "attributes_flat": "Main ingredients: Pizza dough, tomato sauce‎, ...‎, Region or state: New York City, ‎New York‎",
          "detected_extensions": {}
        }
      },
      "sitelinks": [],
      "title": "New York–style pizza",
      "url": "https://en.wikipedia.org/wiki/New_York%E2%80%93style_pizza"
    },
    ...
  ],
  "questions": [
    {
      "answer": "New York-style pizza has slices that are large and wide with a thin crust that is foldable yet crispy. It is traditionally topped with tomato sauce and mozzarella cheese, with any extra toppings placed on top of the cheese. Pizza without additional toppings is called “plain,” “regular,” or “cheese.”",
      "position": null,
      "text": "What pizza is New York famous for?"
    },
    ...
  ],
  "images": [
    {
      "url": "https://en.wikipedia.org/wiki/Pizza", 
      "image": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxMSEhUSExIWFhUXFhcWFxgXFR0YGhgYGBcXFhkeGhcYHSggGBslGxYXITEhJSkrLi4uFx8zODMsNygtLysBCgoKDg0OGxAQGi0lICYyLS0wLy0tMi02Ky0tLy01LS8tKy0tLS01LS8rLS0rLy0tLS0tLTAtLSstLTItLS0vLf/AABEIALcBEwMBIgACEQEDEQH/xAAcAAACAgMBAQAAAAAAAAAAAAAFBgMEAAECBwj/xAA/EAACAQMDAgUCAwYEBQQDAQABAhEAAyEEEjEFQQYTIXJrdZUSZya5NZWV06arVZWVE6f//Z...", 
      "title": "Pizza - Wikipedia", 
      "domain": "en.wikipedia.org", 
      "position": 1
    },
    ...
  ],
  "related_queries": [
    {
      "position": 0,
      "title": "best pizza in new york manhattan",
      "url": "https://www.google.com/search?num=20&hl=en&q=Best+pizza+in+New+York+Manhattan&sa=X&ved=2ahUKEwjctLPoq4uAAxWUmWoFHRs4DmgQ1QJ6BAgxEAE"
    },
    ...
  ],
  "related_searches": [
    {
      "link": "https://www.google.com/search?num=20&hl=en&q=Best+pizza+in+New+York+Manhattan&sa=X&ved=2ahUKEwjctLPoq4uAAxWUmWoFHRs4DmgQ1QJ6BAgxEAE",
      "position": 0,
      "query": "best pizza in new york manhattan",
      "type": "standard"
    },
    ...
  ],
  "top_ads": [
    {
      "description": "Cheap UK Pizza: Compare pizza in the UK",
      "domain": "uk-go-pizza.com",
      "position": 1,
      "sitelinks": [],
      "snippet": null,
      "title": "Compare UK Pizza - Pizza - UK Pizza",
      "tracking_url": "https://www.google.com/aclk?sa=l&ai=DChcSEwjU1qrRrYuAAxUVn1oFHdLZBI8YABAAGgJ2dQ&ae=2&sig=AOD64_3CFgH0bQFdqiC1kwZfEpVChxRd4g&q&adurl",
      "url": "https://uk-go.com/home-insurance/",
      "visual_url": "uk-go.com"
    }
  ],
  "bottom_ads": [
    {
      "description": "Cheap UK Pizza: Compare pizza in the UK",
      "domain": "uk-go-pizza.com",
      "position": 1,
      "sitelinks": [],
      "snippet": null,
      "title": "Compare UK Pizza - Pizza - UK Pizza",
      "tracking_url": "https://www.google.com/aclk?sa=l&ai=DChcSEwjU1qrRrYuAAxUVn1oFHdLZBI8YABAAGgJ2dQ&ae=2&sig=AOD64_3CFgH0bQFdqiC1kwZfEpVChxRd4g&q&adurl",
      "url": "https://uk-go.com/home-insurance/",
      "visual_url": "uk-go.com"
    }
  ],
  "top_stories": [
    {
      "date": "2023-07-12T13:25:12.298Z",
      "link": "https://www.grubstreet.com/2023/07/the-best-of-the-year-i-ate-ny-so-far.html",
      "position": 2,
      "source": "Grub Street",
      "title": "The Best of NYC Eating in 2023 (So Far)"
    }
   ],
   "news_results": [
    {
      "date": "2023-07-11T09:23:18.283Z",
      "domain": "www.cnbc.com",
      "link": "https://www.cnbc.com/2023/07/10/pizza-delivery-driver-why-tipping-is-crucial.html",
      "position": 1,
      "snippet": "No week of pay is the same for pizza delivery driver Brendan Madden of Lincroft, New Jersey, because \"not everyone tips fairly.\"",
      "source": "CNBC",
      "title": "Tipping is 'not a sustainable system,' says 25-year-old pizza delivery driver: My income 'relies on the goodwill of others'"
    }
  ],
   "map_results": [
     {
      "address": "New York, NY",
      "category": "pizza",
      "link": "https://www.google.com/aclk?sa=l&ai=DChcSEwiH9968tNmBAxWrNa0GHQPvDw4YABAAGgJwdg&gclid=EAIaIQobChMIh_fevLTZgQMVqzWtBh0D7w8OEBAYAiAAEgJekvD_BwE&sig=AOD64_32J9Tmh5PKoq6WWVAXNhjXb9jvqA&q=&ctype=99&ved=2ahUKEwjgzNe8tNmBAxVxHDQIHUznDkAQhKwBegQIGxAZ&adurl=",
      "phone": "(212) 831-0300",
      "position": 2,
      "price": "$",
      "rating": "4.7",
      "reviews": 2301,
      "title": "Domino's Pizza"
    }
   ],
   "hotel_results": [
     {
      "name": "Hampton Inn by Hilton Los Angeles Airport",
      "review": 4.3,
      "position": 1
     }
   ]
}

Keep in mind that each successful API call will cost you 15 api credits.

Every search that failed will be tried as many times as possible for 30 seconds.

So please be aware of this maximum timeout when writing your own code.



API key

api_key
[
string
]
(
""
)
required

All requests are authenticated by using your private API key.

To get access to your API key, just create an account here and confirm your email.



Light Request

light_request
[
boolean
]
(
true
)

Light requests are a way to get a quick response from the API. They are also cheaper than regular requests, costing only 10 credits per request instead of 15.

However, since those requests do not use a web browser, they might not return all the data that a regular request would return.

Disable light requests, you can add the light_request=false parameter to your request.



search
[
string
]
(
""
)
required

The search parameter is the text you would put in the Google search bar. You can use anything that you would use in a regular Google search. (e.g., inurl:, site:, intitle:, etc.)

Never forget to correctly encode this parameter before calling the API, especially if you are using special characters such as + or :.

If you need help encoding your parameter you can find more information below:

Copy
sudo apt-get install gridsite-clients
urlencode "YOUR SEARCH"
import urllib.parse
encoded_url = urllib.parse.quote("YOUR SEARCH")
encoded_url = encodeURIComponent("YOUR SEARCH")
String encoded_url = URLEncoder.encode("YOUR SEARCH", "UTF-8");
require 'uri'
encoded_url = URI::encode("YOUR SEARCH")
<?php

$url_encoded = urlencode("YOUR SEARCH");

?>
package main

import (
"net/url"
)

func main() {
encoded_url := url.QueryEscape("YOUR SEARCH")
}


Search Type

search_type
[
"classic" | "news" | "maps" | "images" | "lens" | "shopping" | "ai_mode" | "ads"
]
(
"classic"
)

With the ScrapingBee Google API you can scrape different types of Google searches. By default, the API will scrape regular Google searches: search_type=classic.

You can also scrape

  • Google News searches: search_type=news
  • Google Maps searches: search_type=maps
  • Google Lens searches: search_type=lens
  • Google Shopping searches: search_type=shopping
  • Google Images searches: search_type=images
  • Google AI mode: search_type=ai_mode
  • Google Ads searches: search_type=ads

search_type=news is not available with device=mobile.

search_type=lens only works with image URLs as the search parameter.

search_type=ai_mode parameter allows a maximum input length of 400 characters.

search_type=ads similar to classic in terms of response structure, but optimized for maximum paid ad visibility.



Sort By

sort_by
[
"relevance" | "reviews" | "price_asc" | "price_desc"
]
(
""
)

When scraping Google Shopping (search_type=shopping), you can control the order of the results with the sort_by parameter.

sort_by valueOrders results by
relevanceGoogle's default relevance ranking (default)
reviewsCustomer review rating
price_ascPrice: low to high
price_descPrice: high to low

Example: sort_by=price_asc returns the cheapest products first.

sort_by only works with search_type=shopping.



Minimum Price

min_price
[
float
]
(
""
)

When scraping Google Shopping (search_type=shopping), you can filter out products below a given price using the min_price parameter.

Example: min_price=50 returns only products priced at 50 or higher.

Prices are expressed in the native currency of the marketplace, which is determined by country_code. For example, min_price=50 with country_code=de means €50 and above, while country_code=us means $50 and above.

min_price only works with search_type=shopping.



Maximum Price

max_price
[
float
]
(
""
)

When scraping Google Shopping (search_type=shopping), you can filter out products above a given price using the max_price parameter.

Example: max_price=200 returns only products priced at 200 or lower.

You can combine min_price and max_price to target a price range, e.g. min_price=50&max_price=200.

Prices are expressed in the native currency of the marketplace, which is determined by country_code. For example, max_price=200 with country_code=de means €200 and below, while country_code=us means $200 and below.

max_price only works with search_type=shopping.



Geolocation

country_code
[
string
]
(
"us"
)

country_code is the ISO 3166 country code from which you would like the request to come from, here are the most popular supported country codes.

You can find the full list of supported country codes here.

country_codeCountry Name
brBrazil
inIndia
mxMexico
......
ruRussia
usUnitedStates
gbUnitedKingdom


Latitude

latitude
[
float
]
(
""
)

Use latitude together with longitude to define the geographic point the search should be performed from, expressed in decimal degrees.

Example: latitude=40.7128 targets the latitude of New York City.

latitude should be combined with longitude (and optionally radius) to take effect.



Longitude

longitude
[
float
]
(
""
)

Use longitude together with latitude to define the precise geographic point the search should be performed from, expressed in decimal degrees.

Example: longitude=-74.0060 targets the longitude of New York City.

longitude should be combined with latitude (and optionally radius) to take effect.



Radius

radius
[
integer
]
(
""
)

Use radius to define how far around the latitude/longitude point the search should extend, expressed in meters.

Example: latitude=40.7128&longitude=-74.0060&radius=5000 searches within 5 km of the given point.

radius only takes effect when latitude and longitude are also provided.



Device

device
[
"desktop" | "mobile"
]
(
"desktop"
)

device is the device you would like to use to make the request. You can use desktop or mobile.

search_type=news is not available with device=mobile.



Page Number

page
[
integer
]
(
1
)

The page number you want to extract results from.

By default this number is 1, you can change it by using the page parameter.

If you want to get search information from the second page of results, juste use page=2.



Pages

pages
[
integer
]
(
1
)

Use pages to control how many Google result pages are fetched and aggregated in a single response.

By default, pages is 1.

For example, page=2&pages=3 fetches pages 2, 3, and 4, and returns the combined results in one response.

The maximum supported value is 10.

For best reliability, we recommend fetching no more than 3 pages at once.



Autocorrection

nfpr
[
boolean
]
(
false
)

If you want to disable Google's autocorrection feature, you can use nfpr=true.

Using this parameter will prevent Google from including autocorrected results in the response.



Date Range

date_range
[
"past_hour" | "past_day" | "past_week" | "past_month" | "past_year"
]
(
""
)

Use date_range to filter results by recency.

date_range valueFilters results to
past_hourLast hour
past_dayLast 24 hours
past_weekLast 7 days
past_monthLast month
past_yearLast year

Example: date_range=past_day returns only results published in the last 24 hours.

date_range parameter only works for search_type=classic, search_type=news, and search_type=images.



Extra params

extra_params
[
string
]
(
""
)

If you want to forward URL parameters not yet supported by the API you can do it using extra_params.

For example, if you want to use UULE, you can pass one to the API using extra_params=uule%3DYOUR-UULE.

Important: youd need to URL encode this parameter correctly.

You can also pass multiple parameters, separated by & (%26 when encoded).

For example, using extra_params=uule%26YOUR-UULE%26hl%3Dgb with the Google API will add uule=YOUR-UULE&hl=gb to the URL we will fetch.



Full HTML

add_html
[
boolean
]
(
false
)

Adding the full html of the page available in the results. Useful if you want to get some information we don't return in the JSON response.

By default this parameter's value is false, use add_html=true if you want to enable it.

Our API will return you a JSON object that will look like this

{
    "statusCode": 200,
    "body": {
        "meta_data": {
            "url": "https://www.google.com/search?q=pizza%20new%20york&hl=en&gl=us&num=20&start=0",
            "number_of_results": 615000000,
            "location": "",
            "number_of_organic_results": 22,
            "number_of_ads": 0,
            "number_of_page": 7
        },
        "local_results": [{
            "title": "Joe's Pizza",
            "review": 4.5,
            "position": 0,
            "review_count": 5422
        },
        ...
        ],
        "organic_results": [{
            "url": "https://ny.eater.com/maps/nyc-best-iconic-pizza-pizzeria",
            "displayed_url": "ny.eater.com › maps › nyc-best-iconic-pizza-pizzeria",
            "description": "Jan 17, 2020 - Roberto Paciullo's Bronx trattoria serves wood-fired pizzas that have puffy brown crusts and floppy centers. Some pizza geeks think that Zero Otto ...",
            "position": 0,
            "title": "New York City's 27 Most Iconic Pizzerias - Eater NY"
        },
        ...
        {
            "url": "https://www.timeout.com/newyork/restaurants/best-new-york-pizza",
            "displayed_url": "www.timeout.com › restaurants › best-new-york-pizza",
            "description": "Aug 2, 2019 - There's nothing that says “I love NY” more than eating a classic slice of New York pizza in view of the Brooklyn Bridge. And who better to provide ...",
            "position": 17,
            "title": "29 Best Pizzas in NYC for Life-Changing Slices To Eat Today"
        }],
        "top_ads": [],
        "bottom_ads": [],
        "related_queries": [{
            "title": "best pizza new york",
            "position": 0
        },
        ...
        {
            "title": "joe's pizza new york",
            "position": 7
        }],
        "questions": [{
            "text": "What is the best pizza in NY?",
            "position": 0
        },
        ...
        {
            "text": "How much is a slice of pizza in New York City?",
            "position": 3
        }]
        "full_html": # HTML of the page since full_html=true
    }
}


Tag

tag
[
string
]
(
""
)

Attach a custom string identifier to any request using the tag parameter. The value will be returned with the response headers. This parameter is optional and has no effect on the scraping behavior.

AI Overviews

Google AI Overviews are AI-generated summaries that appear at the top of search results for certain queries. When Google returns an AI Overview for your search, it will be available in the ai_overviews field of the response.

AI Overviews require JavaScript rendering, so they are only returned when using regular requests (light_request=false). They will not appear in light requests.

AI-generated answers may vary between requests even with identical parameters, since Google dynamically generates or caches this content.

This is different from search_type=ai_mode, which uses Google's dedicated AI search mode. ai_overviews are the summarization boxes that appear alongside regular search results.

When present, the ai_overviews field will look like this:

{
  "ai_overviews": [
    {
      "answer_text": [
        {
          "pos": 1,
          "fragments": [
            {
              "text": "Making homemade pizza comes down to three essentials: a well-fermented dough, a simple sauce, and a ripping-hot oven...",
              "references": [
                {
                  "source": "The Kitchn",
                  "url": "https://www.thekitchn.com/beginners-guide-to-making-pizza-at-home-23076648"
                },
                ...
              ]
            },
            ...
          ]
        },
        ...
      ],
      "bullet_list": [
        {
          "list_title": "Steps to Make Homemade Pizza:",
          "points": [
            {
              "text": "Prepare the Dough: Combine warm water, yeast, and sugar...",
              "references": [
                {
                  "source": "Hangry District",
                  "url": "https://www.hangrydistrict.com/blog/making-pizza-at-home"
                }
              ]
            },
            ...
          ],
          "pos": 1
        },
        ...
      ],
      "pos_overall": 1,
      "source_panel": {
        "items": [
          {
            "pos": 1,
            "source": "youtube.com",
            "url": "https://www.youtube.com/watch?v=S382FeuCimE"
          },
          ...
        ]
      }
    }
  ],
  "organic_results": [
    ...
  ]
}

Each AI Overview contains the following fields:

  • answer_text — array of answer blocks. Each block has a pos (position) and a fragments array.
  • answer_text[].fragments[].text — the answer text for that fragment (string).
  • answer_text[].fragments[].references — optional array of sources backing the fragment. Each reference has a url (mandatory) and an optional source (the publisher/site name).
  • bullet_list — array of bulleted sections. Each has a list_title, a pos, and a points array.
  • bullet_list[].points[].text — the bullet point text (string).
  • bullet_list[].points[].references — optional array of references, same shape as above.
  • source_panel.items — the list of sources cited by the overview, each with pos, source, and url.

The references arrays let you trace each statement back to its source. A reference always includes a url; the source (site name) may be absent.

Credit cost for your requests

Each ScrapingBee plan provides a certain amount of API credits per month.

It cost 10 or 15 credits per Google Search API request, depending on the type of request you make.

Here is a breakdown of ScrapingBee API credit costs:

Feature usedAPI credit cost
Light Requests learn more (default)10
Regular requests15