Say which page owns a keyword
https://seolyticize.com /api/v1/tools/set_keyword_owners Registers the page that owns each keyword (or cluster: the keyword plus its cluster members) for the client, replacing an earlier claim on the same keyword. build_content_brief and draft_article then warn when a piece would compete with the owner, and get_cannibalization says which page should win. Accept propose_keyword_owners' proposals with source search_console. dryRun: true saves nothing and lists wouldSet, each claim as it would be saved with the claim it would replace. Answers 'make /pricing the page for "crm pricing"'. Free.
Parameters
Idempotency-KeystringheaderRequest body
application/json
clientIdstringrequiredownersobject[]requiredShow child parameters
keywordstringrequiredclusterstring[]urlstringrequirednotestringsourcestringdryRunboolean{
"clientId": "string",
"owners": [
{
"keyword": "string",
"cluster": [],
"url": "string",
"note": null
}
],
"source": "manual",
"dryRun": false
}Code samples
cURL
curl -X POST "https://seolyticize.com/api/v1/tools/set_keyword_owners" \
-H "Authorization: Bearer $SEOLYTICIZE_API_KEY" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"clientId":"string","owners":[{"keyword":"string","cluster":[],"url":"string","note":null}],"source":"manual","dryRun":false}'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/set_keyword_owners
WWW-AuthenticatestringSame as 400 · POST /api/v1/tools/set_keyword_owners
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/set_keyword_owners
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/set_keyword_owners
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/set_keyword_owners
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerSame as 400 · POST /api/v1/tools/set_keyword_owners
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-ResetintegerRetry-AfterintegerSame as 400 · POST /api/v1/tools/set_keyword_owners
X-RateLimit-LimitintegerX-RateLimit-RemainingintegerX-RateLimit-Resetinteger