SFOLN

Catalogue / SEO & search

Related Keywords Finder

sfoln/related-keywords · SEO tools, Lead generation, Developer tools On request

Expand a seed keyword into Google's "searches related to" keywords, up to 3 levels deep, with search volume, CPC, competition, keyword difficulty and search intent from DataForSEO Labs. $0.70 per 1,000 keywords + $0.045 per seed keyword. For topic clusters and briefs.

About

What it does

Related Keywords Finder expands a seed keyword into the keywords Google shows as “searches related to”, up to three levels deep. Each keyword comes with Google search volume, CPC, paid competition, keyword difficulty and search intent (DataForSEO Labs data). Unlike phrase-match suggestions, related keywords don't have to contain the seed, so they surface synonyms, adjacent topics and questions. Use them for topic clusters, content briefs and PPC research, or give them to AI agents.

Price

Price per delivered record

EventPricePer 1,000Charged for
Seed keyword query
related-keywords-query
$0.045$45 / 1,000Charged once per seed keyword the upstream processed (covers the per-request fee).
Related keyword
related-keyword
$0.0007$0.70 / 1,000Charged once per related keyword record delivered.

Apify free plan: up to 5 items per run. Paid plans have no per-run cap; set maxTotalChargeUsd to cap spend.

Run

Call it from code, an agent or the Console

This API is private on Apify for now. Email us and we will publish it for you, usually within two working days. The calls below work once it is public. contact@sfoln.com

curl · synchronous run, rows in the response
curl -X POST "https://api.apify.com/v2/actors/sfoln~related-keywords/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"seedKeywords":["coffee grinder"]}'
mcp.json · hosted Apify MCP server
{
  "mcpServers": {
    "apify": {
      "type": "http",
      "url": "https://mcp.apify.com?tools=sfoln/related-keywords"
    }
  }
}
asynchronous run · for large batches
POST https://api.apify.com/v2/actors/sfoln~related-keywords/runs?maxTotalChargeUsd=1
GET  https://api.apify.com/v2/actor-runs/{runId}            # until status is SUCCEEDED
GET  https://api.apify.com/v2/datasets/{defaultDatasetId}/items?format=json

Authenticate with an Apify API token. MCP clients can instead sign in with OAuth when prompted. Example prompt for an agent: Find keywords related to "coffee grinder" two levels deep and list the 20 with the highest search volume, with their keyword difficulty and intent.

Input

Input fields

Enter seed keywords. Each seed expands into Google related searches, `depth` levels deep.

FieldTypeDefaultMeaning
seedKeywords *arrayrequiredSeed keywords
Seed keywords, one per line. Accounts on the Apify free plan can process up to 5 seed keywords per run.
depthinteger1Depth
Levels of “related searches” to follow: 1 = up to 8 keywords, 2 = up to 72, 3 = up to 584. Range 1–3.
limitPerSeedinteger100Keywords per seed
Maximum keywords returned per seed, in the order DataForSEO returns them. Each keyword is billed as related-keyword. Range 1–1000.
locationstring"2840"Location
DataForSEO location code (2840 = United States, 2826 = United Kingdom, 2276 = Germany) or full location name (e.g. "United Kingdom").
languageCodestring"en"Language code
Language code, e.g. en, de, fr, es.
maxSeedsinteger100Max seeds
Safety cap on how many seed keywords are processed in this run. Range 1–1000.
concurrencyinteger3Concurrency
How many seeds are processed in parallel. Range 1–6.
includeRawbooleanfalseInclude raw upstream response
Attach the unmodified DataForSEO item to each result record.
Example input
{
  "seedKeywords": [
    "coffee grinder"
  ]
}

Output

One record per input item

Records land in the run's dataset; a synchronous call returns them directly. Each has a status (ok is charged; everything else is free) and a charged flag. The run's OUTPUT record totals items and charges.

FieldTypeMeaning
recordTypestringRecord type
keyword = one related keyword; summary = one per seed. e.g. "keyword"
seedstringSeed
Seed keyword. e.g. "coffee grinder"
keywordstringKeyword
Related keyword. e.g. "best coffee grinder"
depthinteger | nullDepth
Level in the related-searches graph (1 = directly related to the seed). e.g. 1
searchVolumeinteger | nullSearch volume
Average monthly Google searches. e.g. 9900
cpcnumber | nullCPC (USD)
Average cost per click.
competitionnumber | nullCompetition
Paid competition 0–1.
competitionLevelstring | nullCompetition level
LOW | MEDIUM | HIGH.
keywordDifficultyinteger | nullKeyword difficulty
Organic ranking difficulty 0–100.
intentstring | nullSearch intent
informational | navigational | commercial | transactional.
relatedKeywordsarrayRelated to
Google related searches shown for this keyword.
locationCodeinteger | nullLocation code
DataForSEO location code.
languageCodestring | nullLanguage
Language code.
limitRequestedintegerLimit requested
limitPerSeed as requested (summary records only).
limitUsedintegerLimit used
Keywords requested upstream after the depth maximum, the free-plan cap and budget sizing (summary records only).
keywordsReturnedintegerKeywords returned
Summary records only.
totalAvailableinteger | nullTotal available
Summary records only.
queryChargedbooleanSeed fee charged
Whether related-keywords-query was charged (summary records only).
inputstring | object | nullInput
Seed keyword.
statusstringStatus
ok | not_found | error | skipped_invalid | skipped_budget | skipped_free_plan e.g. "ok"
chargedbooleanCharged
Whether this record incurred a pay-per-event charge.
chargedEventstringCharged event
related-keyword (keyword records).
warningsarrayWarnings
Non-fatal notes (limit reduced, budget reached...).
errorobjectError
{code, message, provider?} when status is not ok.
sourcestringSource
Upstream data source.
fetchedAtstringFetched at
ISO timestamp.
Example record
{
  "recordType": "keyword",
  "seed": "coffee grinder",
  "keyword": "best coffee grinder",
  "depth": 1,
  "searchVolume": 9900,
  "cpc": 0.8,
  "competition": 1,
  "competitionLevel": "HIGH",
  "keywordDifficulty": 22,
  "intent": "commercial",
  "relatedKeywords": [
    "best burr grinder",
    "coffee grinder electric"
  ],
  "locationCode": 2840,
  "languageCode": "en",
  "input": "coffee grinder",
  "status": "ok",
  "charged": true,
  "chargedEvent": "related-keyword",
  "source": "dataforseo",
  "fetchedAt": "2026-10-14T10:00:00.000Z"
}

Machine-readable

This page for agents