DataForSEO logo

Keyword ideas

by DataForSEO

dataforseo/labs_google_keyword_ideas_live

Generate related keyword ideas for a set of seed keywords.

Billed per
call
Price
Price: —
Provider
DataForSEO
Timeout
3 min

Overview

Takes a set of seed keywords and returns keywords in the same product and service categories, rather than only those literally containing the seeds. That makes it the broader of the two expansion reports: use it to find adjacent topics and vocabulary a seed phrase would never surface on its own. Each idea comes back with monthly volume, a twelve-month history, competition, cost per click, and bid ranges. A market must be given here; the language falls back to whichever dominates that market.

The seed list and one row per idea with its volume, competition, cost per click, and bid range.

Input

These go in the input object of the run request.

FieldTypeRequiredDescription
keywordsarrayYesKeywords.
location_namestringNoFull name of the location. Required if you don't specify location_code.
location_codeintegerNoUnique location identifier. Required if you don't specify location_name.
language_codestringNoLanguage code. Optional.
limitintegerNoHow many rows to return.
Default: 700
Maximum: 1000
closely_variantsbooleanNoMatch seeds as phrases rather than broadly.
Default: false
include_serp_infobooleanNoAttach a summary of each keyword's results page.
Default: false

Requests up to 1 MB.

Example

Use your own API key and a saved idempotency key for each new job. Replace image or media placeholders with your own publicly reachable HTTPS URLs. Keep the same key and request body when recovering a timeout.

# Set once per job; reuse this key and the identical body after a timeout.
: "${AGENTSKY_IDEMPOTENCY_KEY:?Set a unique, saved key for this job}"
curl --fail-with-body https://gateway.agentsky.dev/v1/run \
  -H "authorization: Bearer $AGENTSKY_API_KEY" \
  -H "content-type: application/json" \
  -H "Idempotency-Key: $AGENTSKY_IDEMPOTENCY_KEY" \
  -d '{"provider":"dataforseo","endpoint":"labs_google_keyword_ideas_live","input":{"keywords":["phone","watch"],"location_code":2840,"language_code":"en"}}'
# If status is READY/RUNNING, poll GET /v1/runs/{runId} with the same API key.

Pricing

— per call using your plan when signed in. Reported usage is billed under your account plan. Read the final customer charge from price.amount.value after the run finishes. A RUNNING response is not the final bill.

Questions