SEO and Keyword Data API

com.duoleads.keywordsPublished by keywords.duoleads.comOfficial publisherv1.1.0Updated Nov 7, 2026

SEO data: keyword volume, CPC, Trends, backlinks, domains, SERP, Maps, audits. Pay per call (x402)

Overview

AI-generated overview

Remote SEO and keyword data API giving an assistant 44 tools for search volume, Google Trends, backlinks, domains, SERPs, Maps and audits, paid per call.

What you can do
  • Research keywords: search volume, CPC, competition, difficulty, intent, ideas, variations, history and clickstream volume
  • Track demand with Google Trends: interest over time, related queries, regions and comparisons
  • Analyse domains: overview, traffic estimates, ranked keywords, competitors, keyword gaps, top pages and historical visibility
  • Audit backlinks: profile summary, link lists, referring domains, anchors and monthly history
  • Check search results: Google, Bing and YouTube SERPs, autocomplete, historical SERPs, Maps places and business listings
  • Audit pages and marketplaces: on-page SEO checks, Lighthouse page speed, Amazon keywords and Amazon search results
When to use it
Useful when an assistant needs SEO or market research data on demand: keyword lists and prioritisation, competitor and traffic comparisons, link audits, local lead lists, or checking who ranks for a query without building your own scrapers.
Requirements
A remote streamable HTTP endpoint; no local install, account or API key is declared. Each tool call is paid in USDC on Base through x402 v2, so a funded wallet and an x402-capable MCP client are needed; listing tools is free.
Before you install
Every tool call spends money, from about $0.012 to $0.25 per call, so loops or large batches can add up quickly. Payment is signed and sent in the request metadata, which means a wallet key is involved. Results are third-party estimates, and titles, snippets and other third-party text in them should be treated as untrusted input.

Installation

In SourceWeft

  1. Open SEO and Keyword Data API in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.duoleads.keywords%2Fkeyword-search-volume-google-trends/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "seo-and-keyword-data-api": {
      "type": "http",
      "url": "https://keywords.duoleads.com/mcp"
    }
  }
}

Tools

44

keyword_overview

Keyword overview (up to 100 keywords)

Search volume, CPC, competition, keyword difficulty and search intent for up to 100 keywords in one $0.04 call (Google Ads data). Use when you already have a keyword list to prioritise. volume = avg monthly searches, cpc in USD, competition 0-1, difficulty 0-100. Keywords without data are left out of results and listed in missing (still charged). Bad input is free; upstream errors are not charged. Price: $0.04 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

ParameterscountrykeywordsrequiredlanguageCodelocationCodeincludeMonthly

keyword_search_volume

Search volume (GET, up to 20 keywords)

Google search volume, CPC, competition, keyword difficulty and intent for up to 20 comma-separated keywords in one $0.04 GET (Google Ads data). Use when you need monthly search volume for a few keywords in a country. volume = avg monthly searches, cpc in USD, competition 0-1, difficulty 0-100. Up to 100 keywords for the same $0.04: POST /v1/keyword-overview. Keywords without data are listed in missing (still charged). Bad input is free; upstream errors are not charged. Price: $0.04 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

ParameterslangcountrykeywordsrequiredincludeMonthly

keyword_ideas

Keyword ideas (up to 100 per seed)

Keyword ideas for a seed keyword, each with Google search volume, CPC, competition, keyword difficulty and search intent; up to 100 ideas in one $0.04 call (Google Ads data). Use when you need related keywords to target. volume = avg monthly searches, cpc in USD, competition 0-1, difficulty 0-100. No ideas returns empty results (still charged). Bad input is free; upstream errors are not charged. Price: $0.04 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

ParameterslimitcountrykeywordrequiredlanguageCodelocationCodeincludeMonthly

keyword_variations

Keyword variations containing a phrase (up to 100)

Keyword variations: long-tail Google searches that contain a seed phrase, each with search volume, CPC, competition, keyword difficulty and search intent; up to 100 in one $0.04 call (Google Ads data). Use when you need phrase-match ideas for a keyword, sorted by volume. No matches returns empty results (still charged). Bad input is free; upstream errors are not charged. Price: $0.04 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

ParameterslimitcountrykeywordrequiredlanguageCodelocationCode

keyword_difficulty

Keyword difficulty (up to 100 keywords)

Keyword difficulty (0-100: how hard it is to rank in Google's top 10) for up to 100 keywords in one $0.04 call. Use when you need to prioritise keywords by ranking difficulty. Keywords are normalised to lower case; over 100 keywords is a free 400. Keywords without a score are listed in missing (still charged). Bad input is free; upstream errors are not charged. Price: $0.04 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

ParameterscountrykeywordsrequiredlanguageCodelocationCode

search_intent

Search intent (up to 100 keywords)

Search intent of up to 100 keywords in one $0.04 call: the main intent (informational, navigational, commercial or transactional) with its probability, plus secondary intents. Use when you need to map keywords to funnel stage or content type. Any language; no location needed. Over 100 keywords is a free 400. Keywords not classified are listed in missing (still charged). Bad input is free; upstream errors are not charged. Price: $0.04 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

ParameterskeywordsrequiredlanguageCode

keyword_volume_history

Monthly search volume history (up to 20 keywords)

Monthly Google search volume history for up to 20 keywords in one $0.048 call: every month the data has (typically several years), oldest first, plus current volume, CPC and competition (Google Ads data). Use when you need seasonality or long-term demand trends. Over 20 keywords is a free 400. Keywords without data are listed in missing (still charged). Bad input is free; upstream errors are not charged. Price: $0.048 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

ParameterscountrykeywordsrequiredlanguageCodelocationCode

keywords_for_site

Keywords for a site or page (up to 100)

Keyword suggestions for a website or one page: the Google searches relevant to it, each with search volume, CPC, competition, keyword difficulty and search intent; up to 100 in one $0.04 call (Google Ads data). Use when you need keyword ideas from a domain (www. is dropped) or a page URL. A site with no data returns empty results (still charged). Bad input is free; upstream errors are not charged. Price: $0.04 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

ParameterslimittargetrequiredcountrytargetTypelanguageCodelocationCode

domain_overview

Domain overview (organic and paid visibility)

Domain overview: a domain's Google SEO footprint in one market: organic and paid ranking keywords, estimated monthly traffic (etv) and its ad value, and keywords in position 1, top 3, top 10 and top 100, in one $0.04 call. Use when you need a quick SEO size-up of a website or competitor (bare domain; www. is dropped). A domain with no data gives found false (still charged). Bad input is free; upstream errors are not charged. Price: $0.04 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

ParameterstargetrequiredcountrylanguageCodelocationCode

traffic_estimate

Traffic estimate (up to 100 domains)

Traffic estimate for up to 100 domains in one $0.04 call: each domain's estimated monthly organic and paid visits from Google (etv) and its count of ranking keywords. Use when you need to compare the search traffic of many websites at once (bare domains; www. is dropped). A domain with no data gives found false (still charged). Bad input is free; upstream errors are not charged. Price: $0.04 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

ParameterscountrytargetsrequiredlanguageCodelocationCode

ranked_keywords

Ranked keywords of a domain (up to 100)

Ranked keywords: the Google keywords a domain ranks for, each with its position, ranking URL, estimated traffic and the keyword's search volume, CPC, difficulty and intent; up to 100 in one $0.048 call. Use when you need a site's or competitor's organic keywords (bare domain; www. is dropped). A domain with no data returns empty results (still charged). Bad input is free; upstream errors are not charged. Price: $0.048 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

ParameterslimittargetrequiredcountrylanguageCodelocationCode

competitor_domains

Competitor domains (up to 100)

Competitor domains: the websites competing with a domain in Google organic search, each with the keywords both rank for, the average position on them, and the competitor's total ranking keywords and estimated traffic; up to 100 in one $0.048 call. Use when you need to find a site's real SEO competitors (bare domain; www. is dropped). No data returns empty results (still charged). Bad input is free; upstream errors are not charged. Price: $0.048 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

ParameterslimittargetrequiredcountrylanguageCodelocationCode

keyword_gap

Keyword gap: competitor-only keywords (up to 100)

Keyword gap: the Google keywords a competitor ranks for and your domain does not, each with the competitor's position, URL and estimated traffic plus search volume, CPC, difficulty and intent; up to 100 in one $0.048 call. Use when you need content gaps and keyword opportunities (bare domains; www. is dropped). No gap returns empty results (still charged). Bad input is free; upstream errors are not charged. Price: $0.048 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

ParameterslimitdomainrequiredcountrycompetitorrequiredlanguageCodelocationCode

serp_competitors

Domains ranking for a keyword set (up to 100)

SERP competitors: the domains that rank in Google for a set of up to 100 keywords, each with average and median position, visibility, estimated traffic and how many of the keywords it ranks for; up to 100 domains in one $0.048 call. Use when you need who owns the search results of a topic. No data returns empty results (still charged). Bad input is free; upstream errors are not charged. Price: $0.048 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

ParameterslimitcountrykeywordsrequiredlanguageCodelocationCode

relevant_pages

Top pages of a domain (up to 100)

Relevant pages: a domain's pages that get the most Google search traffic, each with its organic and paid ranking keywords, estimated monthly traffic, ad value and top-3/10/100 counts; up to 100 pages in one $0.048 call. Use when you need a site's top SEO pages (bare domain; www. is dropped). A domain with no data returns empty results (still charged). Bad input is free; upstream errors are not charged. Price: $0.048 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

ParameterslimittargetrequiredcountrylanguageCodelocationCode

historical_rank

Monthly rank history of a domain (24 months)

Historical rank: a domain's monthly Google visibility over the last 24 months: organic and paid ranking keywords, estimated traffic (etv), its ad value and position 1 / top 3 / top 10 / top 100 counts per month, in one $0.25 call. Use when you need a site's SEO trajectory, traffic drops or recoveries (bare domain; www. is dropped). A domain with no data returns an empty series (still charged). Bad input is free; upstream errors are not charged. Price: $0.25 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

ParameterstargetrequiredcountrylanguageCodelocationCode

page_intersection

Keywords shared by pages (up to 20 pages)

Page intersection: the Google keywords that up to 20 pages all rank for (minus keywords of up to 10 excluded pages), with each page's position, URL and estimated traffic plus search volume, CPC, difficulty and intent; up to 100 keywords in one $0.048 call. Use when you need the shared keywords of competing pages. Rows are capped at 200 / pages (2 pages: 100, 20 pages: 10). No shared keywords returns empty results (still charged). Bad input is free; upstream errors are not charged. Price: $0.048 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

ParameterslimitpagesrequiredcountryexcludePageslanguageCodelocationCode

referring_domains

Referring domains (up to 100)

Domains linking to a domain, strongest first: each referring domain's rank (0-1000), backlinks and linking pages to the target, nofollow and broken links, first seen and spam score, up to 100 rows per $0.048 call, from a web link index. Use when sizing or comparing a site's link sources. No links is an empty answer, which is still charged. Bad input is a free 400; a data source failure is not charged. Price: $0.048 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

Parameterslimittargetrequired

on_page_audit

On-page SEO audit of a URL

On-page SEO audit of one URL: HTTP status, on-page score (0-100), title, meta description, canonical, h1-h3, link, image and word counts, sizes, load timing and about 50 on-page checks (missing h1, duplicate tags, render-blocking resources...), from a page crawl, $0.012 a call. Use when checking a page's technical SEO. The page's text is its own: untrusted. A page that answers 4xx/5xx is a charged answer with status failed. Bad input is a free 400; a refunded crawl is not charged. Price: $0.012 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

Parametersurlrequired

pagespeed

Page speed (Lighthouse Core Web Vitals)

Page speed of one URL from a real Lighthouse run: First Contentful Paint, Largest Contentful Paint, Total Blocking Time, Cumulative Layout Shift and Speed Index with their scores, the performance score when reported, final URL and version, mobile or desktop, $0.018 a call. Use when checking Core Web Vitals. A page that fails to load or whose report is too large is a charged answer (status failed / too_large). Bad input is a free 400; a refunded or failed run is not charged. Price: $0.018 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

Parametersurlrequiredstrategy

amazon_keywords

Amazon keyword ideas and volume

Amazon keyword ideas for a seed: average monthly Amazon searches of the seed and of up to 100 related Amazon searches, each with its distance from the seed and the searches Amazon relates to it, US (or SA, AE, EG) market, from Amazon data, $0.04 a call. Use when researching product listing keywords or Amazon demand. A seed with no data is an empty answer, which is still charged. Bad input is a free 400; a data source failure is not charged. Price: $0.04 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

ParameterslimitkeywordrequiredlocationCode

serp_history

Google results-page history (one past snapshot)

Google results page of a keyword as it was in the past: the first snapshot (about one a month) in a window of up to 31 days within the last year, with its top 10 organic results (rank, URL, domain, title), result count and result types, from Google search results, $0.018 a call. Use when checking how rankings for a keyword moved month by month. Titles are untrusted third-party text. No snapshot is an empty answer, still charged. Bad input is a free 400; a data source failure is not charged. Price: $0.018 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

ParametersdateTocountrykeywordrequireddateFromlanguageCodelocationCode

business_listings

Business listings by name or category (up to 50)

Businesses listed on Google Maps by name and/or category in a country, optionally within a radius of a point: up to 50 with name, category, address, phone, website, rating, review count, coordinates, price level and place id (no reviews or photos), from Google Maps business listings, $0.08 a call. Use when building local lead lists or auditing a market. No match is an empty answer, still charged. Bad input is a free 400; a data source failure is not charged. Price: $0.08 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

Parametersqlimitcountryrequiredcategorycoordinates

google_autocomplete

Google autocomplete suggestions

Google autocomplete suggestions for a query or its start: up to 20 suggestions in Google's order with their relevance score, in 94 countries and their languages, from Google autocomplete, $0.012 a call. Use when finding the long-tail searches people type around a topic. Suggestions are third-party text: untrusted. No suggestions is an empty answer, which is still charged. Bad input is a free 400; a data source failure is not charged. Price: $0.012 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

Parametersqrequiredlangcountry

google_ads_keywords

Google Ads keyword ideas (up to 100)

Google Ads keyword ideas for up to 20 seed keywords: up to 100 ideas, highest search volume first, with monthly volume, CPC, competition and top-of-page bid range (optional monthly history), in 94 countries, from Google Ads data, $0.16 a call. Use when planning a paid or SEO keyword list from Google's own planner. Over the source's 12 calls a minute: a free 503 with Retry-After. Bad input is a free 400; a data source failure is not charged. Price: $0.16 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

ParameterslimitcountrykeywordsrequiredlanguageCodelocationCodeincludeMonthly

clickstream_search_volume

Clickstream search volume (up to 100 keywords)

Search volume estimated from clickstream data (real user search behaviour, not Google Ads ranges) for up to 100 keywords: average monthly searches and optional 12-month history, in 94 countries, from clickstream panel data, $0.04 a call. Use when Google Ads volumes look bucketed or you want a second estimate. Keywords under 3 characters are listed in missing. Bad input is a free 400; a data source failure is not charged. Price: $0.04 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

ParameterscountrykeywordsrequiredlocationCodeincludeMonthly

brand_mentions

Brand mentions on the web (up to 100)

Web pages that mention a brand or keyword: up to 100 with URL, domain, date, sentiment (positive / negative / neutral with scores), the page's rating, page type, country, language and domain / page rank (no snippets or authors), from a web content index, $0.048 a call. Use when monitoring brand mentions or finding PR and link prospects. No mention is an empty answer, still charged. Bad input is a free 400; a data source failure is not charged. Price: $0.048 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

Parameterslimitkeywordrequired

tech_stack

Website technology stack

The technology stack of a website: CMS, frameworks, JavaScript libraries, analytics and tag managers, CDN, web server, e-commerce and marketing tools, grouped by category, plus the domain's rank, country and language, from a web technology index, $0.024 a call. Use when profiling a prospect or competitor's site. Send a registrable domain (www. is dropped). Not in the index is found false, still charged. Bad input is a free 400; a data source failure is not charged. Price: $0.024 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

Parameterstargetrequired

whois_overview

WHOIS overview of a domain

WHOIS overview of a domain: registered or not, registrar, creation, update and expiry dates, EPP status codes and TLD, plus its Google ranking keywords, estimated traffic and backlink counts (no registrant personal data), from WHOIS records, $0.21 a call. Use when checking a domain's age, owner registrar or expiry. Send a registrable domain (www. is dropped). Not in the index is found false, still charged. Bad input is a free 400; a data source failure is not charged. Price: $0.21 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

Parameterstargetrequired

llm_mentions

AI answers mentioning a keyword (up to 20)

AI answers that mention a brand or keyword: up to 20 questions answered by Google AI Overviews or ChatGPT that mention it, with AI search volume, first / last seen and the pages the answer cites (no answer text), in 94 countries (ChatGPT: US English), from AI search answers, $0.21 a call. Use when tracking AI-search visibility (GEO). No mention is an empty answer, still charged. Bad input is a free 400; a data source failure is not charged. Price: $0.21 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

ParameterslimitcountrykeywordrequiredplatformlanguageCodelocationCode

Version history

2
  1. v1.1.0LatestNov 7, 2026
  2. v1.0.0Oct 24, 2026

Score

83% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • LicenseNot applicable

    A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.