Appearance
SERP API Overview Fresh
The SERP API delivers search engine result page data for a given keyword, location, language, and device type. Results are emulated at the specified location with high accuracy — personalization signals like search history and user preferences are excluded.
Supported Search Engines
| Engine | Notes |
|---|---|
| Organic, Maps, Local Finder, News, Events, Images, Jobs, AI Mode, Autocomplete, Ads | |
| Bing | Organic, maps, news |
| YouTube | Video search results |
| Yahoo | Organic results |
| Baidu | Chinese search results |
| Naver | Korean search results |
| Seznam | Czech search results |
Device Types
You can specify both device type and operating system when setting a task:
| Device | Available OS |
|---|---|
| Desktop | Windows, macOS |
| Mobile | Android, iOS |
Note: Google News, Events, and Images are desktop-only.
Result Functions
SERP API returns data in three formats:
| Function | Description |
|---|---|
| Regular | Organic and paid results only (Google Organic only) |
| Advanced | Full SERP overview including featured snippets, rich elements, knowledge panels |
| HTML | Raw HTML of the SERP page |
Delivery Methods
Live Method
Results returned immediately in the same API call. One task per call. Highest cost, no separate GET needed.
Endpoint pattern:
POST https://api.dataforseo.com/v3/serp/{engine}/{type}/live/{function}Standard Method
Asynchronous. POST to set a task, then GET to retrieve results when ready. Lower cost. Supports normal and high execution priority.
Endpoint patterns:
POST https://api.dataforseo.com/v3/serp/{engine}/{type}/task_post
GET https://api.dataforseo.com/v3/serp/{engine}/{type}/task_get/{function}/{id}
GET https://api.dataforseo.com/v3/serp/{engine}/{type}/tasks_readyCallbacks (Pingback / Postback)
Include pingback_url in the task POST to receive a notification when results are ready. Include postback_url to have results pushed directly to your server. The postback_url method requires specifying the function (regular, advanced, or html) in the request.
Cost Structure
Cost is calculated as:
cost = base_price × priority_multiplier × paid_parameter_multipliers × (depth / default_depth)Paid parameters that increase cost:
calculate_rectangles— multiplied by 2load_async_ai_overview— +$0.002 per taskpeople_also_ask_click_depth— additional charge per depth level- Search operators in
keyword(site:,intitle:,filetype:, etc.) — multiplied by 5 depthabove the default value — billed per additional result increment
Standard method priorities:
- Normal priority — base price
- High priority — additional charge above base
Ranking Data
The SERP API tracks position using two complementary systems:
| System | Field | Description |
|---|---|---|
| Rank Group | rank_group | Position within its element group (organic results, ads, etc.) |
| Rank Absolute | rank_absolute | Position across all elements on the page |
| Pixel Ranking | rectangle object | Distance in pixels from the top of the SERP (requires calculate_rectangles: true) |
All SERP API Endpoints (162 total)
Google (130 endpoints across 17 sub-groups)
| Sub-Group | Endpoints | Description |
|---|---|---|
| General | 4 | ID list, errors, live screenshot, AI summary |
| Google Organic | 9 | Standard and AI-enhanced organic results |
| Google AI Mode | 7 | Google's AI-powered search mode (Gemini in Search) |
| Google Maps | 5 | Local business results from Maps |
| Google Local Finder | 7 | Local pack expanded view |
| Google News | 7 | News tab results |
| Google Events | 5 | Event listings from Google Search |
| Google Images | 7 | Image search results |
| Google Search By Image (Lens) | 5 | Reverse image search / Google Lens |
| Google Jobs | 5 | Job listings from Google Search |
| Google Autocomplete | 5 | Autocomplete suggestions |
| Google Dataset Search | 5 | Dataset discovery results |
| Google Dataset Info | 5 | Dataset detail pages |
| Google Ads Advertisers (Transparency) | 4 | Google Ads transparency data |
| Google Ads Search (Transparency) | 4 | Ad search transparency |
| Google Finance (Explore, Markets, Quote, Ticker) | 22 | Financial data — stocks, markets, quotes |
Bing (9 endpoints)
| Sub-Group | Endpoints |
|---|---|
| Bing Organic | 9 — task_post, tasks_ready, tasks_fixed, task_get/regular, task_get/advanced, task_get/html, live/regular, live/advanced, live/html |
YouTube (20 endpoints)
| Sub-Group | Endpoints |
|---|---|
| YouTube Video Info | 5 |
| YouTube Organic | 5 — video search results |
| YouTube Video Subtitles | 5 |
| YouTube Video Comments | 5 |
Other Engines (32 endpoints)
| Engine | Sub-Group | Endpoints |
|---|---|---|
| Baidu | Baidu Organic | 6 |
| Yahoo | Yahoo Organic | 9 |
| Seznam | Seznam Organic | 6 |
| Naver | Naver Organic | 6 |
Google-Specific Endpoint Quick Reference
The most commonly used endpoints in audit work:
| Endpoint | Method | Use |
|---|---|---|
/v3/serp/google/organic/live/advanced | POST | Live organic results with full SERP features |
/v3/serp/google/maps/live/advanced | POST | Local pack — 3-pack and extended map results |
/v3/serp/google/local_finder/live/advanced | POST | Local finder (expanded local results) |
/v3/serp/google/news/live/advanced | POST | News tab results |
/v3/serp/google/images/live/advanced | POST | Image search results |
/v3/serp/google/ai_overview/live | POST | AI Overview box detection |
/v3/serp/google/ai_mode/tasks_post | POST | AI Mode full results (async) |
/v3/serp/google/autocomplete/live/advanced | POST | Autocomplete suggestions |
/v3/serp/google/jobs/live/advanced | POST | Job listings in SERP |
Autocomplete Payload
python
import os, requests
from requests.auth import HTTPBasicAuth
auth = HTTPBasicAuth(os.environ["DATAFORSEO_LOGIN"], os.environ["DATAFORSEO_PASSWORD"])
r = requests.post(
"https://api.dataforseo.com/v3/serp/google/autocomplete/live/advanced",
auth=auth,
headers={"Content-Type": "application/json"},
json=[{
"keyword": "roofing contractor",
"location_code": 2840,
"language_code": "en",
"cursor_pointer": 17
}]
)
suggestions = r.json()["tasks"][0]["result"][0]["items"]
for s in suggestions:
print(s.get("suggestion", ""))Google Finance Example
python
r = requests.post(
"https://api.dataforseo.com/v3/serp/google/finance_explore/live/advanced",
auth=auth,
headers={"Content-Type": "application/json"},
json=[{"location_code": 2840, "language_code": "en"}]
)YouTube SERP Example
python
r = requests.post(
"https://api.dataforseo.com/v3/serp/youtube/organic/live/advanced",
auth=auth,
headers={"Content-Type": "application/json"},
json=[{
"keyword": "how to install roofing shingles",
"location_code": 2840,
"language_code": "en"
}]
)Bing Organic Example
python
r = requests.post(
"https://api.dataforseo.com/v3/serp/bing/organic/live/advanced",
auth=auth,
headers={"Content-Type": "application/json"},
json=[{
"keyword": "roofing contractor dallas",
"location_code": 2840,
"language_code": "en",
"depth": 10
}]
)
## Rate Limits
- Up to **2000 API calls per minute** (POST + GET combined)
- Each POST call supports up to **100 tasks**
- Live endpoints: **one task per call**
## Result Storage
| Method | Retention |
|--------|-----------|
| Standard (JSON) | 30 days |
| Live (JSON) | 30 days |
| HTML results | 7 days |