Skip to main content
POST
Generate keyword ideas
Enter a seed keyword or a page URL and get back a list of related keyword ideas complete with monthly search volume, competition level, and CPC estimates. Powered by Google Ads Keyword Planner data (with DataForSEO as an alternative provider). Send a JSON body with: teamId, keyword (one or more comma-separated seeds) or page_url (at least one is required, otherwise 400), location_ids (comma-separated location IDs; all means worldwide and can be mixed with IDs, e.g. all,2380; omitted means worldwide), and language_id (defaults to 1000, English). The response has a perCountry array with one entry per requested location (a single worldwide entry when location_ids is omitted) and defaultCountryId, the location with the most results (the first requested on a tie). Each entry has countryId (null for worldwide), count, and exact_keyword and related_keywords arrays. Each keyword item has keyword, monthlysearch, difficulty, competition_score, annotation, cpc, and historic_data (monthly volumes).
Each researched location uses 1 keyword research credit from your plan’s allowance on every call, including repeats of the same search. That’s why this is a POST: a GET could be repeated by caches or retries and charged again. Researching your own website’s URL is free. Returns 402 when the allowance is too low and 503 if no keyword data provider is configured. Limited to 250 requests per day.

Authorizations

Authorization
string
header
required

Your SnowSEO API key (sk_...).

Body

application/json
teamId
string

Team ID

keyword
string

Seed keyword; split on commas into several seeds. Required if page_url is omitted.

page_url

Seed URL. Required if keyword is omitted. Empty string allowed when using keyword.

location_ids
string

Comma-separated location IDs (e.g. "2840,2826"). Use "all" for worldwide; it can be combined with specific IDs (e.g. "all,2380"). Omitted = worldwide.

language_id
string
default:1000

Google Ads language resource ID (default: "1000" = English).

Response

Default Response

perCountry
object[]
required
defaultCountryId
string | null
required