gaelasao/keyword-research-api
gaelasao--keyword-research-apiThis tool calls the Actor "gaelasao/keyword-research-api" and retrieves its output results. Actor description: Keyword research tool and API: bulk search volume, AI search volume, CPC, keyword difficulty, search intent and SERP features, plus keyword ideas, related keywords, long tail keywords and competitor keywords. Bing volume on 300+ keywords. Keyword Planner and Semrush alternative. $3 per 1,000.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "gaelasao--keyword-research-api"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Metrics returns one row per keyword you provide. Ideas returns related keywords for your seed keywords. Domain returns the keywords a website ranks for on Google, with its position, ranking URL and estimated traffic. Example values: "metrics" | metrics |
| domain | No | Domain mode only: a website such as "example.com", or one page URL. Returns the keywords it ranks for in the chosen country, best traffic first. | |
| sortBy | No | Order in which ideas and domain rows are fetched. Default: search volume for ideas, estimated traffic for domain mode. Easiest first sorts by keyword difficulty, lowest first. Traffic and position work in domain mode only. | |
| domains | No | Domain mode only: up to 10 websites in total with "domain", to compare competitors in one run. Maximum rows applies to each website. | |
| keywords | No | Metrics mode: 1 to 10,000 keywords, one per line. Duplicates and extra spaces are removed and keywords are lowercased. Each keyword can have up to 80 characters and 10 words. Ideas mode: 1 to 20 seed keywords. Domain mode: not used. Example values: ["keyword research","seo tools","running shoes","project management software","coffee grinder"] | |
| language | No | Leave empty to use the main language of the country (for example English for the US, German for Switzerland). A language the country does not support in DataForSEO Labs returns Google Ads metrics only. | |
| location | No | Pick a country, or type an ISO code (US), a country name (United Kingdom) or a DataForSEO location_code (2840). The 94 listed countries have every metric. Other location codes, such as cities, return Google Ads metrics only (no difficulty, intent or trend) and do not support ideas mode. Example values: "US" | US |
| maxIdeas | No | Ideas mode: rows to return, up to 5,000 (per seed with the suggestions and related methods). Domain mode: rows per website. You pay only for the rows delivered. Example values: 100 | |
| waitSecs | No | Max seconds (0–45, default 30) to cap the wait for the Actor run to reach terminal state. For long-running Actors the response returns at the cap with the current run status; follow `nextStep` to poll via get-actor-run. Set to 0 to fire-and-forget. | |
| ideasMethod | No | Ideas: broad keyword ideas from the same topics. Suggestions: long-tail phrases that contain your seed. Related: Google's related searches, up to 4 levels deep. Suggestions and related run once per seed. Example values: "ideas" | ideas |
| includeBing | No | On runs of 300 keywords or more, adds bing_search_volume, bing_cpc and bing_competition from Bing Ads to each row with data, at no extra cost. English, French and German, in the countries Bing covers. Smaller runs skip it. Example values: true | |
| maxKeywords | No | Optional cap on billed rows. Metrics mode looks up only the first N unique keywords; the rest are listed in SUMMARY. Your maximum cost per run still applies. | |
| maxPosition | No | Domain mode: only keywords where the website ranks at this position or better, for example 10 for its page-1 keywords. | |
| minPosition | No | Domain mode: only keywords where the website ranks at this position or lower. Use 4 with a maximum of 20 for striking-distance keywords. | |
| excludeTerms | No | Up to 3 words or phrases, such as brand names or "free". Keywords that contain any of them are left out and not charged. | |
| includeTerms | No | Up to 3 words or phrases. Only keywords that contain at least one of them are returned, for example "best" or "near me". | |
| includeTrend | No | Adds monthly search volumes for the last 12 months and the monthly, quarterly and yearly trend (%) to each row. Turn off for smaller exports. The price is the same. Example values: true | |
| includeAiVolume | No | Adds ai_search_volume to each row with data: an estimate of how often the keyword comes up in AI assistants such as ChatGPT (DataForSEO AI keyword data), with its 12-month history when the history option is on. Included at no extra cost. Null where DataForSEO has no AI data. Example values: true | |
| includeSerpInfo | No | Adds serp_features (AI Overview, featured snippet, People Also Ask, local pack, video, shopping and more) and serp_url to each row with full metrics. Included at no extra cost. Example values: true | |
| minSearchVolume | No | Only return keywords with at least this average monthly search volume. Keywords below it, or without volume data, are left out and not charged. 0 keeps everything. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tip | No | Advisory guidance RAG Web Browser wrote to its key-value store under the reserved "TIP" key | |
| runId | Yes | Actor run ID | |
| stats | No | Run statistics | |
| status | Yes | Run status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED | |
| actorId | Yes | Stable Apify Actor ID from the run record | |
| summary | Yes | Past-tense summary of the run state | |
| exitCode | No | Actor process exit code; populated for terminal states (especially FAILED) | |
| nextStep | Yes | One primary follow-up action with identifiers interpolated | |
| storages | Yes | Dataset and key-value store metadata, keyed by alias. "default" is always the primary entry. | |
| actorName | No | "username/actor-name" | |
| startedAt | No | ISO timestamp when the run started | |
| finishedAt | No | ISO timestamp when the run finished (terminal states only) | |
| statusMessage | No | Pass-through from Apify run.statusMessage | |
| apifyConsoleUrl | No | Personalized Apify Console link to the run; present only for Console sessions |