keyword_volume
Monthly search volume for up to 1,000 keywords.
POST https://geondex.com/api/v1/volume- Cost: 1 / 10 keywords, min 20
- MCP tool:
keyword_volume - Auth:
Authorization: Bearer gx_…(see Authentication) - Try it: Open keyword_volume in the playground
How many people actually search each phrase every month — an agent can guess demand but cannot measure it. Monthly Google search volume, CPC and competition for up to 1,000 keywords (US) in one call. 1 credit per 10 distinct keywords, minimum 20 credits per call: up to 200 keywords cost 20 credits, 1,000 cost 100. Send every keyword you care about in one call rather than one at a time. Use it to decide which prompts from suggest_prompts are worth a check.
Not available on every deployment: returns 404 not_found when this server is not configured for it. GET /me lists what is configured.
Request
Request body (JSON)
keywords·string[]· required — Up to 1,000 phrases in ONE call. Duplicates are collapsed. 1 credit per 10 distinct keywords, minimum 20 credits per call — anything up to 200 keywords costs the same 20 credits, so batch. 1–1,000 items
Example request
curl -s https://geondex.com/api/v1/volume -H "Authorization: Bearer gx_YOUR_KEY" -H "content-type: application/json" -d '{"keywords":["table tennis blade","best table tennis blade for beginners","ttsensei blade finder"]}'Response
200 with the envelope every tool returns: a one-line summary, the full data, and credits: { charged, remaining }. On a free call charged is 0 and remaining is null.
Fields of data
rows·object[]rows[].keyword·stringrows[].searchVolume·number | null— Average monthly Google searches; null when the API has no datarows[].cpc·number | nullrows[].competition·string | null— Google Ads competition: LOW, MEDIUM or HIGHrows[].competitionIndex·number | null— Google Ads competition index, 0-100
Example response
Real-shaped, checked against the output schema by a test. Long lists are shortened.
{
"summary": "3 keywords; highest volume \"table tennis blade\" at 6600/mo.",
"data": {
"rows": [
{
"keyword": "table tennis blade",
"searchVolume": 6600,
"cpc": 0.84,
"competition": "HIGH",
"competitionIndex": 100
},
{
"keyword": "best table tennis blade for beginners",
"searchVolume": 390,
"cpc": 0.62,
"competition": "HIGH",
"competitionIndex": 88
},
{
"keyword": "ttsensei blade finder",
"searchVolume": null,
"cpc": null,
"competition": null,
"competitionIndex": null
}
]
},
"credits": {
"charged": 20,
"remaining": 165
}
}Errors
Every error has the body {"error":{"code":"…","message":"…"}} and is not charged.
| HTTP | When |
|---|---|
400 | Bad input |
401 | Missing or invalid key |
402 | Out of credits |
404 | Tool not available on this server |
429 | Rate limited |
502 | Upstream failure |
Every error.code and what to do about it: Errors & rate limits.