Demand for every combination
https://seolyticize.com /api/v1/tools/get_demand_matrix Search volume, difficulty and CPC for every combination of a pattern's slots — 'receive sms {service} {country}' with services and countries — up to 500, with the client's ranking page and position for each from Search Console and a verdict: write (demand, no page), improve (a page beyond the top ten), have (top ten) or skip (no demand). Answers 'which of these template pages deserve to exist'. Volumes any agency bought before are reused free; the rest is a paid keyword lookup on the client's account, in batches.
Parameters
Idempotency-KeystringheaderRequest body
application/json
clientIdstringrequiredpatternstringrequiredslotsobjectrequiredlocationCodeintegerlanguageCodestringminVolumeintegermaxCostMicrosintegerdryRunboolean{
"clientId": "string",
"pattern": "string",
"slots": {},
"locationCode": null,
"languageCode": null,
"minVolume": 10,
"maxCostMicros": 0,
"dryRun": true
}Code samples
cURL
curl -X POST "https://seolyticize.com/api/v1/tools/get_demand_matrix" \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"clientId":"string","pattern":"string","slots":{},"locationCode":null,"languageCode":null,"minVolume":10,"maxCostMicros":0,"dryRun":true}'TypeScript
Python
Go
PHP
Ruby
Java
Responses
data, and its meta.Example
{
"data": {},
"meta": {
"requestId": "string",
"costMicros": 0,
"cached": true,
"cachedFrom": "string",
"dataAsOf": "string",
"sources": [
"string"
],
"partial": true,
"next": [
{
"tool": "string",
"args": {},
"why": "string"
}
],
"nextCursor": "string",
"dryRun": true
}
}Schema
datarequiredmetaobjectrequiredShow child parameters
requestIdstringrequiredcostMicrosintegerrequiredcachedbooleanrequiredcachedFromstringdataAsOfstringsourcesstring[]partialbooleanrequirednextobject[]requiredShow child parameters
toolstringargsobjectwhystringnextCursorstringdryRunbooleanX-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerX-Request-IdstringExample
{
"error": "string",
"code": "string",
"next": "string",
"requestId": "string"
}Schema
errorstringrequiredcodestringnextstringrequestIdstringX-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_demand_matrix
WWW-AuthenticatestringSame as 400 · POST /api/v1/tools/get_demand_matrix
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_demand_matrix
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_demand_matrix
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_demand_matrix
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/get_demand_matrix
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerRetry-AfterintegerSame as 400 · POST /api/v1/tools/get_demand_matrix
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-Resetinteger