# Keyword Search Volume, CPC, Keyword Ideas and Google Trends API (remote · keywords.duoleads.com)

Google keyword search volume, CPC, difficulty, keyword ideas and Google Trends. Pay per call (x402)

- Trust score: 70/100 (medium)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `keywords.duoleads.com`: 70/100 (this document), [markdown](https://verifymcp.io/servers/com-duoleads-keywords-keyword-search-volume-google-trends/keywords.md), [page](https://verifymcp.io/servers/com-duoleads-keywords-keyword-search-volume-google-trends/keywords)

## Channel facts

- Endpoint: `https://keywords.duoleads.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS enforcement could not be verified: the plaintext port answered with HTTP 405, which proves neither a plaintext path nor enforcement.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 61/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 12765 tokens (~290/item across 44 items; 44 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 40/100
  - Stability observed for 12 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 44 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 45 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Keyword Search Volume, CPC, Keyword Ideas and Google… MCP server?

Keyword Search Volume, CPC, Keyword Ideas and Google… is a hosted endpoint at https://keywords.duoleads.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http com-duoleads-keywords-keyword-search-volume-goog 'https://keywords.duoleads.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-duoleads-keywords-keyword-search-volume-goog": {
      "url": "https://keywords.duoleads.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-duoleads-keywords-keyword-search-volume-goog": {
      "type": "http",
      "url": "https://keywords.duoleads.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-duoleads-keywords-keyword-search-volume-goog]
url = "https://keywords.duoleads.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-duoleads-keywords-keyword-search-volume-goog": {
      "type": "remote",
      "url": "https://keywords.duoleads.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-duoleads-keywords-keyword-search-volume-goog --url 'https://keywords.duoleads.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-duoleads-keywords-keyword-search-volume-goog:
    url: "https://keywords.duoleads.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-duoleads-keywords-keyword-search-volume-goog": {
      "Transport": "http",
      "Url": "https://keywords.duoleads.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-duoleads-keywords-keyword-search-volume-goog -t streamable-http -u 'https://keywords.duoleads.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-duoleads-keywords-keyword-search-volume-goog": {
      "type": "http",
      "url": "https://keywords.duoleads.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 70, +1)

No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-04 (score 69, +1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] The server changed its declared name: Keyword Search Volume and CPC → SEO and Keyword Data API
- [functional regression] Schema quality: 1809 → 12765
- [functional] Schema quality: good → excellent
- [functional] New tool “amazon_keywords”
- [functional] New tool “amazon_search”
- [functional] New tool “backlink_anchors”
- [functional] New tool “backlinks_history”
- [functional] New tool “backlinks_list”
- [functional] New tool “backlinks_summary”
- [functional] New tool “bing_search”
- [functional] New tool “brand_mentions”
- [functional] New tool “business_listings”
- [functional] New tool “clickstream_search_volume”
- [functional] New tool “competitor_domains”
- [functional] New tool “domain_overview”
- [functional] New tool “google_ads_keywords”
- [functional] New tool “google_autocomplete”
- [functional] New tool “google_maps_search”
- [functional] New tool “google_search”
- [functional] New tool “google_trends_compare”
- [functional] New tool “historical_rank”
- [functional] New tool “keyword_difficulty”
- [functional] New tool “keyword_gap”
- [functional] New tool “keyword_variations”
- [functional] New tool “keyword_volume_history”
- [functional] New tool “keywords_for_site”
- [functional] New tool “llm_mentions”
- [functional] New tool “on_page_audit”
- [functional] New tool “page_intersection”
- [functional] New tool “pagespeed”
- [functional] New tool “ranked_keywords”
- [functional] New tool “referring_domains”
- [functional] New tool “related_keywords”
- [functional] New tool “relevant_pages”
- [functional] New tool “search_intent”
- [functional] New tool “serp_competitors”
- [functional] New tool “serp_history”
- [functional] New tool “tech_stack”
- [functional] New tool “traffic_estimate”
- [functional] New tool “whois_overview”
- [functional] New tool “youtube_search”

### 2026-11-02 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-01 (score 67, 0)

- [security] Tool “google_trends” rewrote its description, which is the text the model reads
- [security] Tool “google_trends_by_region” rewrote its description, which is the text the model reads
- [security] Tool “google_trends_related_queries” rewrote its description, which is the text the model reads

### 2026-10-30 (score 67, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-28 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-27 (score 65, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “keyword_ideas” rewrote its description, which is the text the model reads
- [security] Tool “keyword_overview” rewrote its description, which is the text the model reads
- [security] Tool “keyword_search_volume” rewrote its description, which is the text the model reads
- [cosmetic] “keyword_ideas” reworded the description of “locationCode”
- [cosmetic] “keyword_overview” reworded the description of “locationCode”

### 2026-10-26 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (44)

### `keyword_overview` (~386 tokens)

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"].

Input parameters:

- `country` (string): ISO 3166-1 alpha-2 code or country name, used when locationCode is absent (uk = gb).
- `includeMonthly` (boolean): Add each keyword's monthly search volumes.
- `keywords` (array, required): Keywords to look up (1-100; each at most 80 characters). Whitespace and control characters are normalised to single spaces and keywords to lower case; a keyword that is then empty, over 10 words or o…
- `languageCode` (string): Language code (2-letter). Default en. An unsupported location falls back to 2840 (United States) with en (or the requested language if the United States offers it); a supported location with a langua…
- `locationCode` (integer): Google Ads location code (geo target ID). Default 2840 (United States); an unsupported code falls back to 2840 (United States).

### `keyword_search_volume` (~312 tokens)

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"].

Input parameters:

- `country` (string): ISO 3166-1 alpha-2 country code of a supported location (us, gb, de, ...; uk = gb). Default us.
- `includeMonthly` (boolean): Add each keyword's monthly search volumes.
- `keywords` (array, required): 1-20 keywords (no commas inside a keyword; each at most 80 characters). Whitespace and control characters are normalised to single spaces and keywords to lower case; a keyword that is then empty, ove…
- `lang` (string): Language code offered for the country (en, es, de, ...). Default en when offered.

### `keyword_ideas` (~358 tokens)

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"].

Input parameters:

- `country` (string): ISO 3166-1 alpha-2 code or country name, used when locationCode is absent.
- `includeMonthly` (boolean): Add each idea's monthly search volumes.
- `keyword` (string, required): Seed keyword to expand (at most 80 characters; whitespace, control characters and case are normalised; a seed then empty, over 10 words or over 80 characters is a free 400).
- `languageCode` (string): Language code (2-letter). Default en. An unsupported location falls back to 2840 (United States) with en (or the requested language if the United States offers it); a supported location with a langua…
- `limit` (integer): Maximum ideas to return (1-100). Default 20.
- `locationCode` (integer): Google Ads location code (geo target ID). Default 2840 (United States); an unsupported code falls back to 2840 (United States).

### `google_trends` (~215 tokens)

Google Trends interest over time

Google Trends interest over time for one keyword: a dated 0-100 series for a country or worldwide, past 7 days to 5 years, in one $0.045 GET. Use when you need search-interest trends, seasonality or demand direction for a keyword. Daily points for short windows, weekly for 12 months. A live call takes up to about 30 s. Bad input is free; upstream errors are not charged. Too little Google data gives an empty answer, which is still charged. Price: $0.045 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

Input parameters:

- `country` (string): ISO 3166-1 alpha-2 country code (us, gb, de, ...; uk = gb). Omit for worldwide.
- `keyword` (string, required): One keyword or phrase (2-100 characters, no commas).
- `timeframe` (string): Time window. Default past_12_months.

### `google_trends_related_queries` (~212 tokens)

Google Trends related queries

Google Trends related queries for one keyword: the top related searches (0-100) and the rising ones (% growth), for a country or worldwide, past 7 days to 5 years, in one $0.03 GET. Use when you need query expansion, content ideas or emerging searches around a keyword. A live call takes up to about 30 s. Bad input is free; upstream errors are not charged. Too little Google data gives an empty answer, which is still charged. Price: $0.03 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

Input parameters:

- `country` (string): ISO 3166-1 alpha-2 country code (us, gb, de, ...; uk = gb). Omit for worldwide.
- `keyword` (string, required): One keyword or phrase (2-100 characters, no commas).
- `timeframe` (string): Time window. Default past_12_months.

### `google_trends_by_region` (~212 tokens)

Google Trends interest by region

Google Trends interest by region for one keyword: 0-100 interest per subregion of a country (or per country worldwide), past 7 days to 5 years, in one $0.03 GET. Use when you need where a keyword is searched most, for geo-targeting or local market research. A live call takes up to about 30 s. Bad input is free; upstream errors are not charged. Too little Google data gives an empty answer, which is still charged. Price: $0.03 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

Input parameters:

- `country` (string): ISO 3166-1 alpha-2 country code (us, gb, de, ...; uk = gb). Omit for worldwide.
- `keyword` (string, required): One keyword or phrase (2-100 characters, no commas).
- `timeframe` (string): Time window. Default past_12_months.

### `related_keywords` (~383 tokens)

Related keywords (up to 100, depth 0-4)

Related keywords for a seed from Google's 'searches related to' graph, to a depth of 0-4, 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 topic clusters around a keyword. Each row has its depth and the further related searches. 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"].

Input parameters:

- `country` (string): Optional ISO 3166-1 alpha-2 code or country name, used when locationCode is absent (uk = gb).
- `depth` (integer): How many levels of the related-searches graph to traverse (0-4). Defaults to 1.
- `keyword` (string, required): Seed keyword (at most 80 characters; whitespace, control characters and case are normalised; a seed then empty, over 10 words or over 80 characters is a free 400).
- `languageCode` (string): Language code (2-letter). Defaults to en. An unsupported location falls back to 2840 (United States) with en (or the requested language if the United States offers it); a supported location with a la…
- `limit` (integer): Maximum keywords to return (1-100). Defaults to 20.
- `locationCode` (integer): Google Ads location code (geo target ID). Defaults to 2840 (United States); an unsupported code falls back to 2840 (United States, market.fallback).

### `keyword_variations` (~322 tokens)

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"].

Input parameters:

- `country` (string): Optional ISO 3166-1 alpha-2 code or country name, used when locationCode is absent (uk = gb).
- `keyword` (string, required): Seed phrase; every result contains it (at most 80 characters; normalised like keyword-ideas).
- `languageCode` (string): Language code (2-letter). Defaults to en. An unsupported location falls back to 2840 (United States) with en (or the requested language if the United States offers it); a supported location with a la…
- `limit` (integer): Maximum variations to return (1-100). Defaults to 20.
- `locationCode` (integer): Google Ads location code (geo target ID). Defaults to 2840 (United States); an unsupported code falls back to 2840 (United States, market.fallback).

### `keyword_difficulty` (~329 tokens)

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"].

Input parameters:

- `country` (string): Optional ISO 3166-1 alpha-2 code or country name, used when locationCode is absent (uk = gb).
- `keywords` (array, required): Keywords to score (1-100; each at most 80 characters, normalised to lower case; one that is then empty, over 10 words or over 80 characters is listed in missing).
- `languageCode` (string): Language code (2-letter). Defaults to en. An unsupported location falls back to 2840 (United States) with en (or the requested language if the United States offers it); a supported location with a la…
- `locationCode` (integer): Google Ads location code (geo target ID). Defaults to 2840 (United States); an unsupported code falls back to 2840 (United States, market.fallback).

### `search_intent` (~199 tokens)

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"].

Input parameters:

- `keywords` (array, required): Keywords to classify (1-100; each at most 80 characters, normalised to lower case; one that is then empty, over 10 words or over 80 characters is listed in missing).
- `languageCode` (string): Accepted for compatibility and ignored: the classifier detects the language itself.

### `keyword_volume_history` (~332 tokens)

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"].

Input parameters:

- `country` (string): Optional ISO 3166-1 alpha-2 code or country name, used when locationCode is absent (uk = gb).
- `keywords` (array, required): Keywords to look up (1-20; each at most 80 characters, normalised to lower case; one that is then empty, over 10 words or over 80 characters is listed in missing).
- `languageCode` (string): Language code (2-letter). Defaults to en. An unsupported location falls back to 2840 (United States) with en (or the requested language if the United States offers it); a supported location with a la…
- `locationCode` (integer): Google Ads location code (geo target ID). Defaults to 2840 (United States); an unsupported code falls back to 2840 (United States, market.fallback).

### `keywords_for_site` (~369 tokens)

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"].

Input parameters:

- `country` (string): Optional ISO 3166-1 alpha-2 code or country name, used when locationCode is absent (uk = gb).
- `languageCode` (string): Language code (2-letter). Defaults to en. An unsupported location falls back to 2840 (United States) with en (or the requested language if the United States offers it); a supported location with a la…
- `limit` (integer): Maximum keywords to return (1-100). Defaults to 20.
- `locationCode` (integer): Google Ads location code (geo target ID). Defaults to 2840 (United States); an unsupported code falls back to 2840 (United States, market.fallback).
- `target` (string, required): targetType site: a bare domain like example.com (no scheme or path; a leading www. is dropped). targetType page: an absolute http(s) page URL.
- `targetType` (string): Suggest keywords for the whole site (default) or only the target page.

### `google_trends_compare` (~294 tokens)

Google Trends comparison (up to 5 keywords)

Google Trends comparison of up to 5 keywords: one relative 0-100 interest series for all of them (same scale), with each keyword's average and latest value; worldwide or one country, 7 days to 5 years, web, news or YouTube search, in one $0.045 call. Use when you need to compare demand or seasonality between terms. A live call takes up to about 30 s. Too little data gives found false (still charged). Bad input is free; upstream errors are not charged. Price: $0.045 per successful call, paid over x402 (USDC on Base); pass the payment in _meta["x402/payment"].

Input parameters:

- `keywords` (array, required): 1-5 terms to compare, e.g. ["running shoes", "trail running shoes"] (each 2-100 characters, no commas).
- `location` (string): Market: a country name ("United States") or ISO 3166-1 alpha-2 code (us, gb, de; uk = gb). Omit for worldwide.
- `timeframe` (string): Time window: 7d, 30d, 90d, 12m or 5y (default 12m); the past_* names of /v1/trend work too.
- `type` (string): Google property: web (default), news or youtube.

### `domain_overview` (~326 tokens)

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"].

Input parameters:

- `country` (string): Optional ISO 3166-1 alpha-2 code or country name, used when locationCode is absent (uk = gb).
- `languageCode` (string): Language code (2-letter). Defaults to en. An unsupported location falls back to 2840 (United States) with en (or the requested language if the United States offers it); a supported location with a la…
- `locationCode` (integer): Google Ads location code (geo target ID). Defaults to 2840 (United States); an unsupported code falls back to 2840 (United States, market.fallback).
- `target` (string, required): Bare domain like example.com (no scheme, path or port; a leading www. is dropped).

### `traffic_estimate` (~309 tokens)

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"].

Input parameters:

- `country` (string): Optional ISO 3166-1 alpha-2 code or country name, used when locationCode is absent (uk = gb).
- `languageCode` (string): Language code (2-letter). Defaults to en. An unsupported location falls back to 2840 (United States) with en (or the requested language if the United States offers it); a supported location with a la…
- `locationCode` (integer): Google Ads location code (geo target ID). Defaults to 2840 (United States); an unsupported code falls back to 2840 (United States, market.fallback).
- `targets` (array, required): Bare domains (1-100) like example.com; no scheme or path; a leading www. is dropped.

### `ranked_keywords` (~330 tokens)

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"].

Input parameters:

- `country` (string): Optional ISO 3166-1 alpha-2 code or country name, used when locationCode is absent (uk = gb).
- `languageCode` (string): Language code (2-letter). Defaults to en. An unsupported location falls back to 2840 (United States) with en (or the requested language if the United States offers it); a supported location with a la…
- `limit` (integer): Maximum keywords to return (1-100). Defaults to 20.
- `locationCode` (integer): Google Ads location code (geo target ID). Defaults to 2840 (United States); an unsupported code falls back to 2840 (United States, market.fallback).
- `target` (string, required): Bare domain like example.com (no scheme, path or port; a leading www. is dropped).

### `competitor_domains` (~333 tokens)

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"].

Input parameters:

- `country` (string): Optional ISO 3166-1 alpha-2 code or country name, used when locationCode is absent (uk = gb).
- `languageCode` (string): Language code (2-letter). Defaults to en. An unsupported location falls back to 2840 (United States) with en (or the requested language if the United States offers it); a supported location with a la…
- `limit` (integer): Maximum competitors to return (1-100). Defaults to 20.
- `locationCode` (integer): Google Ads location code (geo target ID). Defaults to 2840 (United States); an unsupported code falls back to 2840 (United States, market.fallback).
- `target` (string, required): Bare domain like example.com (no scheme, path or port; a leading www. is dropped).

### `keyword_gap` (~361 tokens)

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"].

Input parameters:

- `competitor` (string, required): The competitor domain to compare against, e.g. example.org.
- `country` (string): Optional ISO 3166-1 alpha-2 code or country name, used when locationCode is absent (uk = gb).
- `domain` (string, required): Your domain, e.g. example.com (no scheme or path; a leading www. is dropped).
- `languageCode` (string): Language code (2-letter). Defaults to en. An unsupported location falls back to 2840 (United States) with en (or the requested language if the United States offers it); a supported location with a la…
- `limit` (integer): Maximum gap keywords to return (1-200; above 100 is lowered to 100 with a warning). Defaults to 20.
- `locationCode` (integer): Google Ads location code (geo target ID). Defaults to 2840 (United States); an unsupported code falls back to 2840 (United States, market.fallback).

### `serp_competitors` (~354 tokens)

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"].

Input parameters:

- `country` (string): Optional ISO 3166-1 alpha-2 code or country name, used when locationCode is absent (uk = gb).
- `keywords` (array, required): Keywords whose Google results to analyse (1-100; each at most 80 characters, normalised to lower case; one that is then empty, over 10 words or over 80 characters is listed in missing).
- `languageCode` (string): Language code (2-letter). Defaults to en. An unsupported location falls back to 2840 (United States) with en (or the requested language if the United States offers it); a supported location with a la…
- `limit` (integer): Maximum domains to return (1-100). Defaults to 20.
- `locationCode` (integer): Google Ads location code (geo target ID). Defaults to 2840 (United States); an unsupported code falls back to 2840 (United States, market.fallback).

### `relevant_pages` (~335 tokens)

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"].

Input parameters:

- `country` (string): Optional ISO 3166-1 alpha-2 code or country name, used when locationCode is absent (uk = gb).
- `languageCode` (string): Language code (2-letter). Defaults to en. An unsupported location falls back to 2840 (United States) with en (or the requested language if the United States offers it); a supported location with a la…
- `limit` (integer): Maximum pages to return (1-100). Defaults to 20.
- `locationCode` (integer): Google Ads location code (geo target ID). Defaults to 2840 (United States); an unsupported code falls back to 2840 (United States, market.fallback).
- `target` (string, required): Bare domain like example.com (no scheme, path or port; a leading www. is dropped).

### `historical_rank` (~327 tokens)

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"].

Input parameters:

- `country` (string): Optional ISO 3166-1 alpha-2 code or country name, used when locationCode is absent (uk = gb).
- `languageCode` (string): Language code (2-letter). Defaults to en. An unsupported location falls back to 2840 (United States) with en (or the requested language if the United States offers it); a supported location with a la…
- `locationCode` (integer): Google Ads location code (geo target ID). Defaults to 2840 (United States); an unsupported code falls back to 2840 (United States, market.fallback).
- `target` (string, required): Bare domain like example.com (no scheme, path or port; a leading www. is dropped).

### `page_intersection` (~436 tokens)

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"].

Input parameters:

- `country` (string): Optional ISO 3166-1 alpha-2 code or country name, used when locationCode is absent (uk = gb).
- `excludePages` (array): Optional page URLs (1-10) to exclude: only keywords the pages rank for and these do not.
- `languageCode` (string): Language code (2-letter). Defaults to en. An unsupported location falls back to 2840 (United States) with en (or the requested language if the United States offers it); a supported location with a la…
- `limit` (integer): Maximum keywords to return (1-200; lowered with a warning to 100, and to 200 / pages for more than 2 pages: 4 pages 50, 10 pages 20, 20 pages 10). Defaults to 20.
- `locationCode` (integer): Google Ads location code (geo target ID). Defaults to 2840 (United States); an unsupported code falls back to 2840 (United States, market.fallback).
- `pages` (array, required): Page URLs whose shared ranking keywords to find (1-20), e.g. ["https://example.com/guide", "https://example.org/guide"].

### `backlinks_summary` (~178 tokens)

Backlink profile summary

Backlink profile of a domain: domain rank (0-1000), backlinks, referring domains, main domains, IPs and subnets, nofollow and broken links, spam score, first seen, and breakdowns by link type, TLD and country, from a web link index, in one $0.048 call. Use when you need a site's link authority at a glance. A domain with no links is an answer with zeros or no counts, 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"].

Input parameters:

- `target` (string, required): A bare domain like example.com (no scheme, path or port; subdomains allowed).

### `backlinks_list` (~217 tokens)

Backlinks list (up to 100)

Backlinks of a domain, strongest first: linking page URL and domain, target URL, anchor text, link type, dofollow, first and last seen, and the rank (0-1000) of the linking domain and page, up to 100 rows per $0.048 call, optionally dofollow only, from a web link index. Use when auditing who links to a site. Anchors are the linking pages' own text. 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"].

Input parameters:

- `dofollowOnly` (boolean): Only dofollow links. Default false.
- `limit` (integer): Rows to return, 1-100. Default 20.
- `target` (string, required): A bare domain like example.com (no scheme, path or port; subdomains allowed).

### `referring_domains` (~179 tokens)

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"].

Input parameters:

- `limit` (integer): Rows to return, 1-100. Default 20.
- `target` (string, required): A bare domain like example.com (no scheme, path or port; subdomains allowed).

### `backlink_anchors` (~183 tokens)

Backlink anchor texts (up to 100)

Anchor texts of the links to a domain, most used first: each anchor's backlinks, referring domains and main domains, nofollow domains and first seen, up to 100 rows per $0.048 call, from a web link index. Use when checking anchor-text distribution or over-optimisation. Anchors are the linking pages' own text. 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"].

Input parameters:

- `limit` (integer): Rows to return, 1-100. Default 20.
- `target` (string, required): A bare domain like example.com (no scheme, path or port; subdomains allowed).

### `backlinks_history` (~244 tokens)

Backlink profile history (up to 24 months)

Monthly history of a domain's backlink profile: rank (0-1000), backlinks, new and lost backlinks, referring domains, new and lost referring domains and main domains per month, for up to 24 months (from 2019 on; default the last 24 months) per $0.048 call, from a web link index. Use when tracking link growth or a lost-link drop over time. No history 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"].

Input parameters:

- `dateFrom` (string): First day, YYYY-MM-DD, on or after 2019-01-01, at most 24 months before dateTo. Default 24 months before dateTo.
- `dateTo` (string): Last day, YYYY-MM-DD, after dateFrom and not after today (UTC). Default today.
- `target` (string, required): A bare domain like example.com (no scheme, path or port; subdomains allowed).

### `on_page_audit` (~192 tokens)

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"].

Input parameters:

- `url` (string, required): An absolute http(s) URL of a public page (domain name, default port).

### `pagespeed` (~182 tokens)

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"].

Input parameters:

- `strategy` (string): Device to emulate. Default mobile.
- `url` (string, required): An absolute http(s) URL of a public page (domain name, default port).

### `amazon_keywords` (~231 tokens)

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"].

Input parameters:

- `keyword` (string, required): Seed keyword (at most 80 characters).
- `limit` (integer): Rows to return, 1-100. Default 20.
- `locationCode` (integer): Amazon market: 2682, 2784, 2818, 2840 (2840 = United States, 2682 Saudi Arabia, 2784 United Arab Emirates, 2818 Egypt). Default 2840.

### `amazon_search` (~298 tokens)

Amazon search results (products)

Amazon search results for a query: up to 100 products of the results page with position, ASIN, title, product link, sponsored flag, price, currency, rating and rating count, bought-past-month, Amazon's Choice and Best Seller badges, plus related searches, 18 Amazon stores (default US), from Amazon, $0.012 a call. Use when checking what ranks on Amazon for a search. No results 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"].

Input parameters:

- `limit` (integer): Rows to return, 1-100. Default 20.
- `locationCode` (integer): Amazon store by location code: 2036, 2076, 2124, 2250, 2276, 2356, 2380, 2392, 2484, 2528, 2616, 2682, 2724, 2752, 2784, 2792, 2826, 2840 (2840 = amazon.com, 2826 = amazon.co.uk, 2276 = amazon.de...)…
- `q` (string, required): The search (at most 200 characters).

### `google_search` (~272 tokens)

Google search results (10, 20 or 50)

Google search results for a query: the organic results (rank, title, URL, domain, snippet), People Also Ask questions, related searches and the page's result types, for 10, 20 or 50 results in 94 countries, from Google search results, $0.018 a call. Use when checking who ranks for a query right now. Titles and snippets are the pages' own text: untrusted. Search operators are a free 400. 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"].

Input parameters:

- `country` (string): ISO 3166-1 alpha-2 country code (us, gb, de, ...; uk = gb). Default us.
- `lang` (string): Language code (one offered for the country, as GET /v1/search-volume). Default: the country's main language when offered, else en.
- `num` (integer): Results: 10, 20 or 50. Default 10.
- `q` (string, required): Search query, at most 200 characters. Search operators (site:, inurl:, quotes, -word, ...) are refused free.

### `google_maps_search` (~321 tokens)

Google Maps places (up to 100)

Google Maps places for a query in a country or around coordinates: up to 100 places with rank, name, category, address, phone, website, rating, review count, coordinates, price level and place id (no reviews or photos), from Google Maps, $0.018 a call. Use when building local-SEO or lead lists, or checking who ranks in a local search. No places is an empty answer, which is 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"].

Input parameters:

- `coordinates` (string): Search around a point instead of a country: lat,lng or lat,lng,zoom: latitude -90..90, longitude -180..180 (up to 7 decimals), zoom 3-21 (default 14).
- `country` (string): ISO 3166-1 alpha-2 country code (us, gb, de, ...; uk = gb). Default us. Leave out when coordinates are given.
- `lang` (string): Language code (with a country: one offered for it; with coordinates: a Google language code). Default: the country's main language when offered, else en.
- `num` (integer): Places to return, 1-100. Default 20.
- `q` (string, required): What to look for (e.g. coffee shop), at most 200 characters.

### `serp_history` (~396 tokens)

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"].

Input parameters:

- `country` (string): Optional ISO 3166-1 alpha-2 code or country name, used when locationCode is absent (uk = gb).
- `dateFrom` (string): First day, YYYY-MM-DD, at most 365 days ago and at most 31 days before dateTo (window). Default 30 days before dateTo.
- `dateTo` (string): Last day, YYYY-MM-DD, not after today (UTC). Default today.
- `keyword` (string, required): The keyword (at most 80 characters, up to 10 words).
- `languageCode` (string): Language code (2-letter). Defaults to en. An unsupported location falls back to 2840 (United States) with en (or the requested language if the United States offers it); a supported location with a la…
- `locationCode` (integer): Google Ads location code (geo target ID). Defaults to 2840 (United States); an unsupported code falls back to 2840 (United States, market.fallback).

### `business_listings` (~299 tokens)

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"].

Input parameters:

- `category` (string): A Google business category id, lower case with underscores (pizza_restaurant, coffee_shop, dentist, ...).
- `coordinates` (string): Only businesses within a radius of a point: lat,lng,radius: latitude -90..90, longitude -180..180 (up to 7 decimals), radius 1-100 km (whole number; default 10).
- `country` (string, required): ISO 3166-1 alpha-2 country code of the businesses (us, gb, de, ...).
- `limit` (integer): Rows to return, 1-50. Default 20.
- `q` (string): Words in the business name (at most 100 characters). q or category is required.

### `google_autocomplete` (~219 tokens)

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"].

Input parameters:

- `country` (string): ISO 3166-1 alpha-2 country code (us, gb, de, ...; uk = gb). Default us.
- `lang` (string): Language code (one offered for the country, as GET /v1/search-volume). Default: the country's main language when offered, else en.
- `q` (string, required): The query or its start, at most 200 characters.

### `bing_search` (~283 tokens)

Bing search results (10, 20 or 50)

Bing search results for a query: the organic results (rank, title, URL, domain, snippet), related searches and the page's result types, for 10, 20 or 50 results in 94 countries and Bing's 49 languages, from Bing search results, $0.018 a call. Use when checking rankings on Bing (and the engines it feeds). Titles and snippets are the pages' own text: untrusted. Search operators are a free 400. 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"].

Input parameters:

- `country` (string): ISO 3166-1 alpha-2 country code (us, gb, de, ...; uk = gb). Default us.
- `lang` (string): Language code (a Bing language: en, en-GB, de, fr, es, pt-BR, ...). Default: the country's main language when offered, else en.
- `num` (integer): Results: 10, 20 or 50. Default 10.
- `q` (string, required): Search query, at most 200 characters. Search operators (site:, inurl:, quotes, -word, ...) are refused free.

### `youtube_search` (~278 tokens)

YouTube search results (20 or 40)

YouTube search results for a query: up to 20 or 40 videos with rank, video id and link, title, channel name and id, views, publication date and duration, in 94 countries, from YouTube search results, $0.012 a call. Use when checking which videos rank on YouTube for a topic. Titles and channel names are third-party text: untrusted; no comments. No results 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"].

Input parameters:

- `country` (string): ISO 3166-1 alpha-2 country code (us, gb, de, ...; uk = gb). Default us.
- `lang` (string): Language code (a YouTube language: en, de, fr, es, pt-BR, ja, ...). Default: the country's main language when offered, else en.
- `num` (integer): Videos: 20 or 40. Default 20.
- `q` (string, required): Search query, at most 200 characters. Search operators (site:, inurl:, quotes, -word, ...) are refused free.

### `google_ads_keywords` (~368 tokens)

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"].

Input parameters:

- `country` (string): Optional ISO 3166-1 alpha-2 code or country name, used when locationCode is absent (uk = gb).
- `includeMonthly` (boolean): Add each idea's monthly search volumes.
- `keywords` (array, required): Seed keywords (1-20; each at most 80 characters; one that cannot be looked up is listed in missing).
- `languageCode` (string): Language code (2-letter). Defaults to en. An unsupported location falls back to 2840 (United States) with en (or the requested language if the United States offers it); a supported location with a la…
- `limit` (integer): Ideas to return, 1-100. Default 100.
- `locationCode` (integer): Google Ads location code (geo target ID). Defaults to 2840 (United States); an unsupported code falls back to 2840 (United States, market.fallback).

### `clickstream_search_volume` (~253 tokens)

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"].

Input parameters:

- `country` (string): ISO 3166-1 alpha-2 code, used when locationCode is absent (uk = gb).
- `includeMonthly` (boolean): Add each keyword's monthly search volumes.
- `keywords` (array, required): Keywords (1-100; each 3-80 characters; one that cannot be looked up is listed in missing).
- `locationCode` (integer): Location code of a country (2840 = United States, 2826 = United Kingdom, 2276 = Germany, ...; the /docs table). Default 2840.

### `brand_mentions` (~185 tokens)

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"].

Input parameters:

- `keyword` (string, required): The brand or keyword (at most 80 characters, up to 10 words).
- `limit` (integer): Rows to return, 1-100. Default 20.

### `tech_stack` (~175 tokens)

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"].

Input parameters:

- `target` (string, required): A registrable domain like example.com (no scheme or path; www. is dropped; no other subdomain).

### `whois_overview` (~180 tokens)

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"].

Input parameters:

- `target` (string, required): A registrable domain like example.com (no scheme or path; www. is dropped; no other subdomain).

### `llm_mentions` (~369 tokens)

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"].

Input parameters:

- `country` (string): Optional ISO 3166-1 alpha-2 code or country name, used when locationCode is absent (uk = gb).
- `keyword` (string, required): The brand or keyword (at most 80 characters, up to 10 words).
- `languageCode` (string): Language code (2-letter). Defaults to en. An unsupported location falls back to 2840 (United States) with en (or the requested language if the United States offers it); a supported location with a la…
- `limit` (integer): Answers to return, 1-20. Default 10.
- `locationCode` (integer): Google Ads location code (geo target ID). Defaults to 2840 (United States); an unsupported code falls back to 2840 (United States, market.fallback).
- `platform` (string): google (AI Overviews, default) or chat_gpt (United States, en only).

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-duoleads-keywords-keyword-search-volume-google-trends/keywords#diagnostics

## Score history

- 2026-11-05: 70
- 2026-11-04: 69
- 2026-11-03: 68
- 2026-11-02: 68
- 2026-11-01: 67
- 2026-10-31: 67
- 2026-10-30: 67
- 2026-10-29: 66
- 2026-10-28: 66
- 2026-10-27: 65
- 2026-10-26: 65
- 2026-10-25: 64
- 2026-10-24: 64

## Common questions

### What is the Keyword Search Volume, CPC, Keyword Ideas and Google… MCP server?

Keyword Search Volume, CPC, Keyword Ideas and Google… is an MCP server listed in the public MCP registry as com.duoleads.keywords/keyword-search-volume-google-trends. Google keyword search volume, CPC, difficulty, keyword ideas and Google Trends. Pay per call (x402). This page covers its hosted endpoint (https://keywords.duoleads.com/mcp).

### Is the Keyword Search Volume, CPC, Keyword Ideas and Google… MCP server safe to use?

Keyword Search Volume, CPC, Keyword Ideas and Google… scores 70 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Keyword Search Volume, CPC, Keyword Ideas and Google… MCP server expose?

Keyword Search Volume, CPC, Keyword Ideas and Google… exposes 44 tools: keyword_overview, keyword_search_volume, keyword_ideas, google_trends, google_trends_related_queries, and 39 more. Their descriptions and schemas cost roughly 12,536 tokens of context every time the server is loaded.

### Does the Keyword Search Volume, CPC, Keyword Ideas and Google… MCP server require authentication?

No. We connected to Keyword Search Volume, CPC, Keyword Ideas and Google… without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Keyword Search Volume, CPC, Keyword Ideas and Google… MCP server still maintained?

Keyword Search Volume, CPC, Keyword Ideas and Google… is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://keywords.duoleads.com/mcp
- Website: https://keywords.duoleads.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-duoleads-keywords-keyword-search-volume-google-trends/keywords.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-duoleads-keywords-keyword-search-volume-google-trends/keywords.json
- HTML version of this page: https://verifymcp.io/servers/com-duoleads-keywords-keyword-search-volume-google-trends/keywords
