VX Agents

API directory · Marketing & Analytics

DataForSEO Keyword Research & Rankings

v1.0.0 · 14 endpoints · 0 connections · shared by vx.ai

Which keywords are worth targeting, and who already ranks for them? Pull Google search volume and CPC, expand a seed into keyword ideas, score difficulty and search intent, list the keywords any domain ranks for, find its organic competitors, and check today's live Google results for a query in a chosen city or country.

Connect this API to an AI agent Browse all specs

What you can do with DataForSEO Keyword Research & Rankings via MCP

Every endpoint below becomes a governed tool your AI agent (Claude, ChatGPT, or a customer-facing VX agent) can call — with scoped permissions, sandbox testing, and audit logs.

MethodPathOperationDescription
GET /v3/appendix/user_data getUserData Check the account balance, limits and price list
GET /v3/dataforseo_labs/locations_and_languages listLocationsAndLanguages List the locations and languages keyword research supports
POST /v3/keywords_data/google_ads/search_volume/live getSearchVolume Get Google Ads search volume, CPC and competition for up to 1000 keywords
POST /v3/dataforseo_labs/google/keyword_ideas/live getKeywordIdeas Find keyword ideas in the same category as seed keywords
POST /v3/dataforseo_labs/google/keyword_suggestions/live getKeywordSuggestions Find longer search queries that contain a seed keyword
POST /v3/dataforseo_labs/google/related_keywords/live getRelatedKeywords Find keywords from Google's 'searches related to' for a seed keyword
POST /v3/dataforseo_labs/google/bulk_keyword_difficulty/live getKeywordDifficulty Score how hard it is to rank in Google's top 10 for each keyword
POST /v3/dataforseo_labs/google/search_intent/live getSearchIntent Classify keywords as informational, navigational, commercial or transactional
POST /v3/dataforseo_labs/google/keyword_overview/live getKeywordOverview Get volume, CPC, difficulty, intent and SERP features for keywords
POST /v3/dataforseo_labs/google/ranked_keywords/live getRankedKeywords List the keywords a domain or page ranks for, with positions
POST /v3/dataforseo_labs/google/competitors_domain/live getCompetitorDomains Find the domains that compete with a domain in organic search
POST /v3/dataforseo_labs/google/domain_rank_overview/live getDomainRankOverview Get a domain's ranking keyword counts and estimated traffic
POST /v3/dataforseo_labs/google/keywords_for_site/live getKeywordsForSite Find keywords relevant to a website
POST /v3/serp/google/organic/live/advanced getGoogleSerp Get today's live Google results for a keyword in a location

Authentication

basicAuth

HTTP Basic

HTTP basic auth with your DataForSEO API login (username) and API password (password). The API password is not your dashboard password.

How to get a credential

  1. Sign up at app.dataforseo.com (new accounts get trial credits).
  2. Open API Access in the dashboard.
  3. Copy the API login and the API password shown there.
  4. Add funds or use the trial balance; every call is billed per task.

Permissions used

DataForSEO credentials have no scopes; one login can call every API on the account.

Credential Operations
API login + API password all operations: getUserData, listLocationsAndLanguages, getSearchVolume, getKeywordIdeas, getKeywordSuggestions, getRelatedKeywords, getKeywordDifficulty, getSearchIntent, getKeywordOverview, getRankedKeywords, getCompetitorDomains, getDomainRankOverview, getKeywordsForSite, getGoogleSerp

Common errors

DataForSEO usually answers HTTP 200 and puts the real result in status_code (20000 = ok) of the response and of each task.

Code Meaning Fix
401 / 40100 Not authorized: wrong API login or password Copy both again from API Access (not the dashboard password).
40200 Payment required: balance too low Add funds, then retry.
40501 / 40503 Invalid field (e.g. an unknown location_name) or a body that is not an array of tasks Check names with listLocationsAndLanguages; send [{...}].
40202 / 40209 Over 10,000 requests per minute, or over 30 at the same time Slow down and retry.

Store the login and password as a basic-auth credential in VX Agents; never paste them into chat.

Usage guide

Setup

  • Credential: DataForSEO API login and API password (app.dataforseo.com > API Access), stored as a basic-auth credential. The API password differs from the dashboard password.
  • Worth pinning: the market you research, as location_name + language_name (e.g. United States + English) or location_code + language_code (2840 + en). listLocationsAndLanguages lists valid values.
  • Every call except getUserData and listLocationsAndLanguages is billed. Before a batch, tell the user roughly how many calls you will make; getUserData shows the balance and prices.

Research keywords for a topic

Every POST body is an array holding one task object: [{"keywords": ["yoga mat"], "location_name": "United States", "language_name": "English"}].

  1. Seed ideas: getKeywordSuggestions (keyword, queries containing it), getRelatedKeywords (keyword, depth 0-4), getKeywordIdeas (keywords, same category), or getKeywordsForSite (target = a domain).
  2. Size them: getSearchVolume (Google Ads volume, CPC, competition; up to 1000 keywords) or getKeywordOverview (volume, CPC, difficulty, intent in one call).
  3. Rank-ability: getKeywordDifficulty (0-100) and getSearchIntent (keywords only).
  4. Check the live page one: getGoogleSerp with keyword, location, language and optional device (desktop/mobile) and depth (results, default 10, max 200; each 10 results is billed).

Analyse a domain

  1. getDomainRankOverview with target (example.com, without https:// or www.) for ranking keyword counts and estimated traffic.
  2. getRankedKeywords with target for the keywords and positions; use limit, order_by (e.g. ["keyword_data.keyword_info.search_volume,desc"]) and filters.
  3. getCompetitorDomains with target for the domains competing on the same keywords.

Good to know

  • Check status_code in the response and in tasks[0]: 20000 means ok, even when HTTP is 200. Results are in tasks[0].result.
  • Lists page with limit (up to 1000) and offset; some use offset_token.
  • filters look like [["keyword_info.search_volume", ">", 1000], "and", ["keyword_info.cpc", ">", 1]] (max 8); on getRankedKeywords the fields start with keyword_data..
  • Limits: 10,000 requests per minute and 30 at the same time.
  • Read-only: nothing here changes data, but each task costs money.

Source: DataForSEO API v3 documentation (https://docs.dataforseo.com/v3/), checked 2026-10-22.

How to use this spec

  1. Create a free VX Agents account (sandbox tools included).
  2. Open the marketplace and connect “DataForSEO Keyword Research & Rankings” to an agent.
  3. Expose it as an MCP server for Claude/ChatGPT, or chat with it directly.

Related APIs