Discover/Dataforseo API
live

Dataforseo APIdataforseo.com

Monitor top-performing websites and trending keywords on Google while tracking SERP volatility to stay ahead of SEO trends. Get real-time insights into ranking keywords, search demand patterns, and search engine result page changes to inform your SEO strategy.

This API takes change requests — .
Endpoint health
monitored
get_serp_volatility
get_top_keywords
get_top_websites
Checks pendingself-healing
Endpoints
3
Updated
3h ago
This call costs1 credit / call— charged only on success
Try it
Location code for country filtering. '0' for worldwide. Examples: '2840' (United States), '2826' (United Kingdom), '2276' (Germany).
api.parse.bot/scraper/5eb0b5ae-f6b9-4865-ae5d-abf6c8de89cd/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/5eb0b5ae-f6b9-4865-ae5d-abf6c8de89cd/get_top_websites?location=2840' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace dataforseo-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: DataForSEO SDK — bounded, re-runnable; every call capped."""
from parse_apis.dataforseo_com_api import DataForSEO, DeviceType, SearchEngine, InvalidInput

client = DataForSEO()

# List top websites by ranking keywords for the United States
for site in client.websites.list(location="2840", limit=3):
    print(site.domain, site.rank, site.keywords_in_serps)

# List top searched keywords worldwide
for kw in client.keywords.list(location="0", limit=3):
    print(kw.keyword, kw.search_volume)

# Get SERP volatility for Google Desktop in the US
try:
    for day in client.volatility_days.list(
        location="2840", device_type=DeviceType.DESKTOP,
        search_engine=SearchEngine.GOOGLE, limit=3
    ):
        print(day.date, day.volatility, day.serps_count)
except InvalidInput as e:
    print("invalid input:", e)

print("exercised: websites.list / keywords.list / volatility_days.list")
All endpoints · 3 totalmissing one? ·

Retrieves the top 1000 websites ranked by number of keywords they appear for in Google SERPs. Each entry includes the domain, keyword count, and estimated organic traffic. Data is updated every 90 days and can be filtered by country.

Input
ParamTypeDescription
locationstringLocation code for country filtering. '0' for worldwide. Examples: '2840' (United States), '2826' (United Kingdom), '2276' (Germany).
Response
{
  "type": "object",
  "fields": {
    "total": "integer count of websites returned",
    "websites": "array of website ranking entries with rank, domain, keywords_in_serps, and estimated_organic_traffic"
  },
  "sample": {
    "data": {
      "total": 1000,
      "websites": [
        {
          "rank": 1,
          "domain": "youtube.com",
          "keywords_in_serps": 189990821,
          "estimated_organic_traffic": 7910193238.66
        }
      ]
    },
    "status": "success"
  }
}

About the Dataforseo API

The Dataforseo API on Parse exposes 3 endpoints for the publicly available data on dataforseo.com. Calls return JSON over HTTPS and are billed per successful response.

Pin a release with the API-Snapshot-Version header so canonical updates don't silently change your contract.