This guide uses the Web Scraper API (Datasets) to return Google SERP positions 1-100 in one request. You control language, geo-targeting, pagination depth, and device type.
Prerequisites
Before you begin, ensure you have:- An active Bright Data account
- Your API key (found in your dashboard under API Tokens)
- Dataset ID:
gd_mfz5x93lmsjjjylob
Pricing: One successful API call = one billable request, regardless of page depth. Retries are included; no bandwidth fees apply. See SERP Pricing & Billing for details.
Quick start
Try these examples to fetch the top 100 results in one request. Replace${API_KEY} with your actual API key.
Basic example
This example returns approximately 100 results (10 pages × ~10 results per page):Key parameters
| Parameter | Type | Description | Example |
|---|---|---|---|
keyword | string | Search term to query | "pizza" |
language | string | UI language (ISO 639-1) | "en", "de" |
country | string | Geographic location (ISO 3166-1) | "US", "DE" |
start_page | integer | First page to scrape | 1 |
end_page | integer | Last page to scrape | 10 (≈ top 100) |
AI Overview extraction
The API automatically captures Google’s AI Overview when available for your search query.What is AI Overview?
AI Overview is Google’s AI-generated summary that appears at the top of search results. It provides quick answers synthesized from multiple sources.Response field
The AI Overview text is returned in theaio_text field:
AI Overview availability: The
aio_text field will be null or empty if no AI Overview is shown for your search.Example processing
Understanding the async workflow
Web Scraper API is asynchronous. Here’s how it works:- Trigger your request → receive a
snapshot_id - Monitor progress using the
snapshot_id - Download results when complete
API endpoints
| Action | Method | Endpoint |
|---|---|---|
| Trigger request | POST | /datasets/v3/trigger?dataset_id=gd_mfz5x93lmsjjjylob |
| Check progress | GET | /datasets/v3/progress/{snapshot_id} |
| Download results | GET | /datasets/v3/snapshot/{snapshot_id} |
Learn more about the async workflow in Asynchronous Requests.
Complete workflow example
Advanced configuration
Batch multiple queries
Process multiple search queries in one request:Mobile search results
Add"brd_mobile": true to get mobile SERP data:
cURL
Include HTML snapshots
Capture raw HTML alongside parsed data for auditing or custom parsing:pagination[].page_html for each page.
Localization examples
Target specific markets with language and country combinations:Frequently asked questions
How do I select specific output fields?
How do I select specific output fields?
You can choose which parsed fields to return for all pages. To also include raw HTML for each page, add
"include_paginated_html": true to your request. This returns pagination[].page_html alongside parsed fields.Can I control AI Overview (AIO) visibility?
Can I control AI Overview (AIO) visibility?
AI Overview is returned when Google displays it and your output fields include it. A toggle to explicitly include or exclude AIO is coming soon.
What changed with the browser worker implementation?
What changed with the browser worker implementation?
We now use a browser worker for SERP scraping. This reduces duplicate results, improves session continuity across pagination, and enables richer outputs (such as AI Overview). All existing requests remain backward-compatible.
How does pricing work for top 100 results?
How does pricing work for top 100 results?
One successful API call = one billable request, even when it returns 100+ results across 10 pages. Retries are included automatically, and there are no additional bandwidth fees. See SERP Pricing & Billing for full details.
What is the difference between language and country parameters?
What is the difference between language and country parameters?
language: Controls the UI language Google uses (e.g.,"en","de","es")country: Controls the geographic location for results (e.g.,"US","DE","MX")
How long does it take to get results?
How long does it take to get results?
Time varies based on query complexity and page depth. Smaller page ranges (e.g.,
1..2) complete faster than larger ranges (e.g., 1..10). Use the Progress API to monitor your request status.