Skip to content

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

EngineNotes
GoogleOrganic, Maps, Local Finder, News, Events, Images, Jobs, AI Mode, Autocomplete, Ads
BingOrganic, maps, news
YouTubeVideo search results
YahooOrganic results
BaiduChinese search results
NaverKorean search results
SeznamCzech search results

Device Types

You can specify both device type and operating system when setting a task:

DeviceAvailable OS
DesktopWindows, macOS
MobileAndroid, iOS

Note: Google News, Events, and Images are desktop-only.

Result Functions

SERP API returns data in three formats:

FunctionDescription
RegularOrganic and paid results only (Google Organic only)
AdvancedFull SERP overview including featured snippets, rich elements, knowledge panels
HTMLRaw 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_ready

Callbacks (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 2
  • load_async_ai_overview — +$0.002 per task
  • people_also_ask_click_depth — additional charge per depth level
  • Search operators in keyword (site:, intitle:, filetype:, etc.) — multiplied by 5
  • depth above 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:

SystemFieldDescription
Rank Grouprank_groupPosition within its element group (organic results, ads, etc.)
Rank Absoluterank_absolutePosition across all elements on the page
Pixel Rankingrectangle objectDistance 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-GroupEndpointsDescription
General4ID list, errors, live screenshot, AI summary
Google Organic9Standard and AI-enhanced organic results
Google AI Mode7Google's AI-powered search mode (Gemini in Search)
Google Maps5Local business results from Maps
Google Local Finder7Local pack expanded view
Google News7News tab results
Google Events5Event listings from Google Search
Google Images7Image search results
Google Search By Image (Lens)5Reverse image search / Google Lens
Google Jobs5Job listings from Google Search
Google Autocomplete5Autocomplete suggestions
Google Dataset Search5Dataset discovery results
Google Dataset Info5Dataset detail pages
Google Ads Advertisers (Transparency)4Google Ads transparency data
Google Ads Search (Transparency)4Ad search transparency
Google Finance (Explore, Markets, Quote, Ticker)22Financial data — stocks, markets, quotes

Bing (9 endpoints)

Sub-GroupEndpoints
Bing Organic9 — 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-GroupEndpoints
YouTube Video Info5
YouTube Organic5 — video search results
YouTube Video Subtitles5
YouTube Video Comments5

Other Engines (32 endpoints)

EngineSub-GroupEndpoints
BaiduBaidu Organic6
YahooYahoo Organic9
SeznamSeznam Organic6
NaverNaver Organic6

Google-Specific Endpoint Quick Reference

The most commonly used endpoints in audit work:

EndpointMethodUse
/v3/serp/google/organic/live/advancedPOSTLive organic results with full SERP features
/v3/serp/google/maps/live/advancedPOSTLocal pack — 3-pack and extended map results
/v3/serp/google/local_finder/live/advancedPOSTLocal finder (expanded local results)
/v3/serp/google/news/live/advancedPOSTNews tab results
/v3/serp/google/images/live/advancedPOSTImage search results
/v3/serp/google/ai_overview/livePOSTAI Overview box detection
/v3/serp/google/ai_mode/tasks_postPOSTAI Mode full results (async)
/v3/serp/google/autocomplete/live/advancedPOSTAutocomplete suggestions
/v3/serp/google/jobs/live/advancedPOSTJob 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 |

Internal SOP reference — not affiliated with DataForSEO.