Discover/DataForSEO API
live

DataForSEO APIdataforseo.com

Access DataForSEO's top websites by ranking keywords, top 1000 Google searches with history back to 2018, and 30-day SERP volatility index via 3 REST endpoints.

This API takes change requests — .
Endpoint health
verified 3d ago
get_serp_volatility
get_top_keywords
get_top_websites
3/3 passing latest checkself-healing
Endpoints
3
Updated
17d ago

What is the DataForSEO API?

The DataForSEO API exposes three endpoints covering top-ranking websites, high-volume keywords, and SERP volatility data from Google. The get_top_keywords endpoint returns up to 1000 keywords with monthly search volume history going back to 2018, while get_serp_volatility provides a daily volatility score (0–10) for the past 30 days including a breakdown of SERP feature probabilities such as AI Overviews, People Also Ask, and video results. All endpoints support country-level filtering via location codes.

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

Endpoints and Data Coverage

The get_top_websites endpoint returns the 1000 domains that appear in the most Google SERP positions for a given country. Each entry in the websites array includes the rank, domain, keywords_in_serps (count of ranking keywords), and estimated_organic_traffic. The dataset refreshes every 90 days. Filter by country using standard location codes — 2840 for the United States, 2826 for the United Kingdom, or 0 for worldwide aggregate data.

Keyword Search Volume with Historical Trends

get_top_keywords returns up to 1000 of the most searched keywords on Google for a location. Each entry carries the keyword string, current search_volume, and a monthly history array spanning back to 2018. This makes it suitable for identifying long-term seasonal patterns rather than just a point-in-time snapshot. The dataset updates monthly. Location filtering works identically to get_top_websites using the same numeric location codes.

SERP Volatility Index

get_serp_volatility returns 30 daily entries, each with a date, a volatility score from 0 to 10, a serps_count indicating how many SERPs were measured, and a serp_features probability map. The feature map breaks down the likelihood of encountering result types like AI Overview, People Also Ask boxes, video carousels, and others on that day. This endpoint accepts optional category, location, device_type, and search_engine parameters, allowing you to scope volatility readings to a specific industry vertical, country, and device combination.

Reliability & maintenanceVerified

The DataForSEO API is a managed, monitored endpoint for dataforseo.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when dataforseo.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official dataforseo.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
3d ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Track domain-level organic reach by pulling estimated_organic_traffic and keywords_in_serps from get_top_websites for competitive benchmarking
  • Identify multi-year search trend shifts using the monthly search_volume history back to 2018 from get_top_keywords
  • Alert SEO teams when the daily volatility score from get_serp_volatility exceeds a threshold indicating a potential Google algorithm update
  • Compare SERP volatility across device types by toggling the device_type parameter to separate mobile and desktop signals
  • Segment keyword demand by country using location codes to compare search volume in the US vs UK vs Germany
  • Monitor industry-specific SERP instability by filtering get_serp_volatility with a category code for verticals like finance or health
  • Map the probability of AI Overview appearances in SERPs over time using the serp_features field in the volatility response
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does DataForSEO have an official developer API?+
Yes. DataForSEO offers an official API at https://dataforseo.com/apis covering keyword data, SERP results, backlinks, and more. This Parse API surfaces a subset of their publicly available statistics data specifically.
How fresh is the data from each endpoint?+
get_top_websites refreshes every 90 days. get_top_keywords updates monthly. get_serp_volatility covers a rolling 30-day window of daily readings and reflects recent SERP activity.
Does the API return more than the top 1000 websites or keywords?+
Not currently. Both get_top_websites and get_top_keywords are capped at 1000 entries per response, and neither endpoint exposes pagination parameters. You can fork this API on Parse and revise it to add pagination or extend the result cap if you need broader coverage.
Can I retrieve SERP volatility for a specific keyword or URL, not just by category?+
Not currently. get_serp_volatility filters by category code, location, device type, and search engine, but does not accept a specific keyword or domain as an input. You can fork this API on Parse and revise it to add a keyword-level or domain-level volatility endpoint.
What location codes does the API accept?+
Location codes follow DataForSEO's standard numeric format. Common examples are 2840 (United States), 2826 (United Kingdom), 2276 (Germany), and 2356 (India). Pass 0 in get_top_websites or get_top_keywords to retrieve worldwide aggregates. The get_serp_volatility endpoint uses the same format but does not document a worldwide aggregate option.
Page content last updated . Spec covers 3 endpoints from dataforseo.com.
Related APIs in Developer ToolsSee all →
dotdb.com API
Search domains and uncover keyword insights to research competitor strategies and domain market intelligence. Get detailed domain metadata, keyword reports, and pricing information to inform your SEO and business decisions.
trends.google.com API
Discover what's trending right now in any country by accessing the top search topics with real-time search volume, growth rates, and related queries. Stay informed on trending categories and see which searches are gaining the most momentum in your target markets.
similarweb.com API
Analyze any website's performance by retrieving detailed traffic statistics, visitor demographics, geographic distribution, competitor benchmarks, and search source data. Monitor engagement metrics and rankings to understand how websites compare in your industry and discover new competitive opportunities.
explodingtopics.com API
Discover rapidly growing trends, emerging startups, and top-performing websites by filtering through trending topics by category and volatility. Programmatically access detailed trend analysis, related topics, blog coverage, and curated highlights to stay ahead of market movements.
worlddata.info API
Explore global statistics and compare countries across population, economy, demographics, quality of life, education, and health metrics. Search worldwide data on everything from life expectancy and languages to religions and regional breakdowns to gain comprehensive insights into how nations rank against each other.
domains-monitor.com API
Search and monitor domain information across multiple zones, access free domain lists, and retrieve detailed zone metadata and account information. Aggregate domain data and track availability across supported TLDs.
thecompaniesapi.com API
Enrich your company database with 80+ data points per company, search by industry or company details, and discover email patterns to drive your business intelligence. Find verified company information, get pricing data, and ask contextual questions about any organization to fuel your sales, marketing, or research efforts.
app.appfigures.com API
Track top-performing iOS apps across categories with detailed insights on rankings, monetization models, ratings, revenue estimates, and user demographics. Monitor app performance metrics and discover trending applications by category to stay informed about the competitive app market landscape.