Competitive researchGET$0.04
/v1/domain-keywords
The keywords a domain actually ranks for — volume, CPC, position and the ranking URL, loudest first.
Point it at a competitor and you have their playbook; point it at yourself and you know what to defend. Rows come back ordered by search volume with the exact URL that ranks. totalKeywords is the index's full count for the domain, so you can see how deep the iceberg goes below your limit.
Parameters#
| Name | Description | |
|---|---|---|
domain | required | hostname to inventory, e.g. example.com — a competitor's works too |
limit | optional | keywords to return, 1–100 (default 25) |
country | optional | 2-letter country code, default us |
lang | optional | 2-letter language code, default en |
Request#
Plain GET. Without a payment header the response is a 402 carrying the price; an x402 client pays and retries on its own — see the quickstart.
GET https://citable.run/v1/domain-keywords?domain=ahrefs.com&limit=25
Response#
200 with the JSON below (trimmed) and the settlement signature in the PAYMENT-RESPONSE header. Every paid response also carries price and cluster.
{
"domain": "ahrefs.com",
"country": "us",
"lang": "en",
"keywords": [
{ "keyword": "backlink checker", "volume": 74000, "cpc": 6.2, "position": 1, "url": "https://ahrefs.com/backlink-checker", "previousPosition": 1, "change": 0, "status": "same" },
{ "keyword": "keyword generator", "volume": 27100, "cpc": 4.1, "position": 2, "url": "https://ahrefs.com/keyword-generator", "previousPosition": 4, "change": 2, "status": "up" }
],
"totalKeywords": 120400,
"source": "dataforseo_labs",
"price": "$0.04",
"cluster": "mainnet"
}Errors#
Any non-200 cancels the payment — errors are free.
| Status | Code | When |
|---|---|---|
| 400 | invalid_domain | domain is not a hostname |
| 400 | invalid_locale | country or lang is not a 2-letter code |
| 502 | upstream_failed | the data source did not answer — nothing is charged |
| 503 | not_configured | this deployment has no credentials for the source — nothing is charged |
MCP tool#
The same call from Claude, Codex or Cursor once citable-mcp is installed. Arguments mirror the parameters above.
citable_domain_keywords(domain, limit?, country?, lang?) $0.04Source & latency#
| Data source | Typical latency |
|---|---|
| DataForSEO Labs ranking index | ~2–5 s |
Note