v1Resources/SEO/postAdd tracked keywords to a location
Add tracked keywords to a location
Starts tracking one or more keywords on a location's local-search ranking grid, configuring the grid size and radius the first time the location is set up. Keywords are deduped case-insensitively and capped at 25 per location. Triggers a background ranking scan for each newly added keyword — poll GET /api/v1/seo/keywords afterward to see results land.
post
seo:write/api/v1/seo/keywordsRequest body
locationIdstringrequired
The location to track keywords for.
clientIdstringoptional
The location's client.
keywordsarray of stringrequired
Keywords to start tracking, up to 25 (deduped case-insensitively; the first spelling submitted wins).
gridSizeinteger (3 | 5 | 7)optional
Grid size (3, 5, or 7 points per side). Only applied the first time this location's grid is configured — later calls that omit it, or that target an already-configured location, leave the stored grid size unchanged.
distanceKmnumberoptional
Distance in kilometers between adjacent grid points. Same first-time-only rule as gridSize; defaults to 1.5 km when the location has no grid configured yet.
excludedarray of objectoptional
Grid points to exclude from measurement — e.g. a lake, a rival's territory. Points are still scraped either way; this only controls whether they count toward stats.
rowintegeroptional
Grid row index, 0-indexed.
colintegeroptional
Grid column index, 0-indexed.
Response
dataobjectoptional
keywordsarray of objectoptional
The keywords that were added or reactivated by this call.
idstringoptional
Unique identifier for the tracked keyword.
keywordstringoptional
The keyword text as stored (using the first spelling submitted).
Errors
400The request is missing a required parameter or is otherwise malformed.
401Missing, invalid, expired, or revoked API key.
403The key lacks the required scope, or isn't authorized for this client/location.
422The request is missing a required parameter or is otherwise malformed.
429Too many requests. Retry after the number of seconds in the Retry-After header.
post/api/v1/seo/keywords
Your API key
Request body*
{
"data": {
"keywords": [
{
"id": "cm_kw_abc123",
"keyword": "dentist near me"
}
]
}
}