---
title: "Add one or more tracked keywords"
method: POST
path: "/v3/rank-tracking/keywords"
tags: ["Rank Tracking"]
---

# Add one or more tracked keywords

`POST /v3/rank-tracking/keywords`

Track one keyword or a batch of keywords for rank monitoring. Tracking works at country level AND at local level (city, county, state, region, neighbourhood). For country level, set `countryId` to an ISO2 code. For anywhere more specific, call `search_locations` first and pass the result's `criteriaId` as `locationCriteriaId` and its `canonicalName` as `locationCanonicalName` - do not invent either value.

## Request body

- object
  - `teamId` string — Team ID
  - `keyword` string — Keyword to track
  - `countryId` string, nullable — Country ID (ISO2) or null for worldwide. Set this alongside a location when targeting a place inside a country.
  - `languageId` string, nullable — Language ID or null for default
  - `locationCriteriaId` number, nullable — Google Ads location criteria ID for local (sub-country) tracking - city, county, state, region or neighbourhood. Get it from `search_locations`; never guess it. Omit/null for country-only tracking.
  - `locationCanonicalName` string, nullable — Canonical location name from the same `search_locations` row (e.g. "Palm Beach County,Florida,United States"). Send it whenever locationCriteriaId is set; if omitted the stored canonical name is null.
  - `items` object[] — Batch of keywords to track
    - `keyword` string, required
    - `countryId` string, nullable
    - `languageId` string, nullable
    - `locationCriteriaId` number, nullable
    - `locationCanonicalName` string, nullable
  - `active` boolean — Defaults to true. Set false to add the keywords to the team's list WITHOUT tracking them: no SERP allowance is consumed and no crawl is scheduled, and they can be tracked later. Batch (`items`) only.

## Response `200`

Default Response

- object
  - `success` boolean
  - `requested` number
  - `alreadyTracked` number
  - `reactivated` number
  - `created` number

## Other responses

- `400` — Default Response
- `402` — Default Response
- `500` — Default Response

---

[API](https://skmtc.net/snowseo/apis/snowseo-api.md) · [All operations](https://skmtc.net/snowseo/apis/snowseo-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/snowseo/snowseo-api/revisions/4532e367c679/schema)
