SEO Keyword Overview and Volume
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.
The wallet the 402 directs payment to. Its whole payment record — every payer, every chain — is on the merchant page.
Asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
The payTo wallet does not resolve to a registered ERC-8004 agent. That is not a verdict on the service — most of the catalog is unregistered.
Live 402 challenge
Captured by the enrichment pass, not read just now. Prices can change — always read the 402 the endpoint answers with.
{
"docs": "https://keywords.duoleads.com/docs",
"hint": "Pay with x402 v2 (scheme exact, USDC on Base): sign accepts[0] of the PAYMENT-REQUIRED header and resend the same request with a PAYMENT-SIGNATURE header. Bad input is answered free with a 400.",
"error": "payment_required",
"price": "0.04 per call",
"terms": "https://keywords.duoleads.com/terms",
"method": "POST",
"resource": "https://keywords.duoleads.com/v1/keyword-overview",
"disclaimer": "Third-party estimates: Google Ads and Google Trends data obtained through DataForSEO. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal or any other professional advice. Terms: https://keywords.duoleads.com/terms"
}Accepts
The payment requirements as published to the catalog. Read the live 402 before paying — a price here is a claim, not a quote.
Pay 0.04 USDC on Base to 0xCD67…b3A39. The signed payment is good for 2 minutes.
- Paid to
- 0xCD67…b3A39
- USD Coin contract
- 0x8335…02913
- Payment window
- 2 minutes
- As published
- 40000 smallest units
The catalog’s raw entry
[
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0xCD673f7e1daD254347AEab6be0DEFe8b9C6b3A39",
"amount": "40000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 120
}
]Extensions
{
"bazaar": {
"info": {
"input": {
"body": {
"keywords": [
"phone",
"watch"
],
"languageCode": "en",
"locationCode": 2840
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"example": {
"total": 2,
"units": "volume: average monthly Google searches; cpc: US dollars; competition: 0-1 (Google Ads); competitionLevel: LOW|MEDIUM|HIGH; difficulty: 0-100; intent: informational|navigational|commercial|transactional; trendYoyPct: % change vs a year ago",
"market": {
"country": "US",
"fallback": false,
"languageCode": "en",
"locationCode": 2840,
"locationName": "United States"
},
"source": "Google Ads data",
"missing": [],
"results": [
{
"cpc": 4.63,
"intent": "informational",
"volume": 673000,
"keyword": "phone",
"difficulty": 54,
"competition": 0.76,
"trendYoyPct": 50,
"competitionLevel": "HIGH"
},
{
"cpc": 1.39,
"intent": "transactional",
"volume": 550000,
"keyword": "watch",
"difficulty": 54,
"competition": 0.95,
"trendYoyPct": 22,
"competitionLevel": "HIGH"
}
],
"dataAsOf": "2026-09-16T03:19:59Z",
"see_also": {
"params": [
"keywords",
"country",
"lang"
],
"reason": "Prefer a GET? search-volume returns the same fields for up to 20 comma-separated keywords.",
"endpoint": "https://keywords.duoleads.com/v1/search-volume"
},
"request_id": "01KEXAMPLE0000000000000000"
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"bodyType",
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"keywords"
],
"properties": {
"country": {
"type": "string",
"description": "Optional ISO 3166-1 alpha-2 code or country name, used when locationCode is absent (uk = gb)."
},
"keywords": {
"type": "array",
"items": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"maxItems": 100,
"minItems": 1,
"description": "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 over 80 characters is not looked up and is listed in missing, and a request with no keyword left to look up is a free 400 (the one exception to openverbs schema compatibility)."
},
"languageCode": {
"type": "string",
"description": "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 language it does not offer uses that location's default language (en if offered). Either way market.fallback is true and market.warnings says what was used."
},
"locationCode": {
"type": "integer",
"description": "Google Ads location code (geo target ID). Defaults to 2840 (United States); an unsupported code falls back to 2840 (United States, market.fallback)."
},
"includeMonthly": {
"type": "boolean",
"description": "Add each keyword's monthly search volumes (monthly[])."
}
}
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
}
},
"additionalProperties": false
},
"output": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string"
},
"example": {
"type": "object"
}
}
}
}
}
}
}Provenance
- Seen in the source catalog
- 2026-10-26 21:50Z
- Last indexed by Roundhouse
- 2026-10-26 22:20Z
- Last enriched (probe, favicon, geo)
- 2026-10-14 04:46Z
- x402 version
- 2
- Max timeout
- 120s
- Liveness probe
- HTTP 402
Hand this page to an agent
Copy the prompt and paste it into Claude, an MCP client or your own agent — it will vet this service and call it over the free read API. No key, no account.
GET api.roundhouseai.io/v0/endpoints
This endpoint's own trailing-30-day call count, as published by the upstream catalog and snapshotted daily. 17 snapshots so far. Verified volume counts only settlements with an on-chain EIP-3009 marker.
Show the promptHide the prompt
Using Roundhouse, look up the x402 service SEO Keyword Overview and Volume and tell me whether it is worth paying: what a call costs, whether the endpoint answered when last probed, and what its payment record actually shows. curl -s 'https://api.roundhouseai.io/v0/endpoints?q=SEO%20Keyword%20Overview%20and%20Volume' curl -s 'https://api.roundhouseai.io/v0/merchants/<the payTo wallet returned above>' Then call it: read the price from the live 402 at https://keywords.duoleads.com/v1/keyword-overview, never from a cached figure, and pay with an x402 client. The /v0 API needs an API key (`authorization: Bearer rh_live_…`) on everything except /v0/unified* and /v0/endpoints. Either pay over x402 (mint a personal key for $0.01 at GET https://api.roundhouseai.io/v0/test/x402), or ask me for an organization key, which I create at https://roundhouseai.io/dashboard/connections. If you have neither, ask before going further. If you do not have Roundhouse tools or skills installed, read https://roundhouseai.io/skill.md first — it is the whole procedure.