> ## Documentation Index
> Fetch the complete documentation index at: https://docs.markifact.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Find Keyword Ideas

> Discover new keywords from seed keywords with DataForSEO Labs: ideas by topic, long-tail suggestions containing the seed, or related searches, each with search volume, CPC, competition, difficulty ...

Discover new keywords from seed keywords with DataForSEO Labs: ideas by topic, long-tail suggestions containing the seed, or related searches, each with search volume, CPC, competition, difficulty and intent. Use dataforseo\_get\_keyword\_overview for metrics on keywords you already have.

| | |
| - | - |
| **App** | DataForSEO |
| **Operation ID** | `dataforseo_find_keyword_ideas` |
| **Type** | Action |
| **Connection** | `dataforseo` (required) |
| **Credits per run** | Free |
| **Agent / MCP tool** | Yes |

## Inputs

| Field | Type | Required | Default | Description |
| - | - | - | - | - |
| `keywords` | array of string or string | Yes | - | Seed keywords, as a list or newline/comma-separated text. keyword\_ideas takes up to 200 seeds in one request; keyword\_suggestions and related\_keywords run one request per seed. |
| `idea_source` | string or SelectableOption | No | `keyword_ideas` | 'keyword\_ideas' (default): keywords relevant to the seeds by category and meaning. 'keyword\_suggestions': long-tail phrases containing the seed. 'related\_keywords': terms from the 'searches related to' block, expandable by depth. |
| `location` | string or SelectableOption | No | `2840` | Country or location: a two-letter country code (us, gb, de...), a DataForSEO location code (2840 = United States), or a full location name such as 'London,England,United Kingdom'. Defaults to the United States. |
| `language` | string or SelectableOption | No | `en` | Language code of the search results, e.g. en, de, es, fr, nl. Defaults to en. |
| `exact_match` | boolean | No | `False` | keyword\_suggestions only: return phrases containing the seed exactly as written. |
| `depth` | integer | No | `1` | related\_keywords only: how many levels of related searches to expand (1 to 4). Each level multiplies the number of keywords, up to 8 at depth 1 and 4680 at depth 4. |
| `ignore_synonyms` | boolean | No | `False` | Skip keywords that are near-duplicates of others in the result. |
| `include_serp_info` | boolean | No | `False` | Also return SERP facts per keyword: result types on the page, number of results and the check URL. |
| `filters` | array of FilterItem | No | - | Up to 8 filters on dotted result fields, e.g. keyword\_info.search\_volume GREATER\_THAN 500, keyword\_properties.keyword\_difficulty LESS\_THAN 40, keyword CONTAINS 'best', search\_intent\_info.main\_intent EQUALS commercial. |
| `orders` | array of OrderItem | No | - | Sort by up to 3 dotted result fields, e.g. keyword\_info.search\_volume DESC. |
| `limit` | integer | No | `100` | Maximum number of rows to return (1 to 1000). Defaults to 100. Each row is billed by DataForSEO, so keep this as small as the task needs. |
| `offset` | integer | No | - | Number of rows to skip, for paging. |
| `fields` | string or array of string | No | - | Dotted result fields to keep, e.g. keyword, keyword\_info.search\_volume, keyword\_info.cpc, keyword\_info.competition\_level, keyword\_info.monthly\_searches, keyword\_info.search\_volume\_trend.yearly, keyword\_properties.keyword\_difficulty, search\_intent\_info.main\_intent, serp\_info.serp\_item\_types, avg\_backlinks\_info.backlinks. Leave empty for the default set listed in the output description. Does not change the cost. |

### FilterItem

| Field | Type | Required | Default | Description |
| - | - | - | - | - |
| `field` | string or SelectableOption | Yes | - | The field to filter on, must be one of the current selected metrics or dimensions. |
| `operator` | string | Yes | - | The operator to use for filtering. Must be one of the supported values. Use REGEXP\_MATCH to search/filter by multiple OR values like '.*(summer\|holiday).*' |
| `value` | string | Yes | - | The value to filter by, always as a string: text, a number, or a regex. For IN\_LIST and NOT\_IN\_LIST, pass the values as one comma-separated string such as 'a,b,c', not as an array. For regex values, escape backslashes once in the JSON string: write \b for a word boundary, not \b. |

### OrderItem

| Field | Type | Required | Default | Description |
| - | - | - | - | - |
| `field` | string or SelectableOption | Yes | - | The field to sort by. must be one of the current selected metrics or dimensions. |
| `direction` | string | Yes | - | The order to sort by, must be one of 'ASC', 'DESC' |

### SelectableOption

| Field | Type | Required | Default | Description |
| - | - | - | - | - |
| `value` | string | Yes | - | |
| `label` | string | Yes | - | |

## Output

**Type**: `List[Dict]`

Returns one row per keyword idea with the same dotted columns as keyword overview (keyword, keyword\_info.*, keyword\_properties.*, search\_intent\_info.*, avg\_backlinks\_info.*) plus seed\_keyword, and for related\_keywords also depth and related\_keywords.

**Fields**: `seed_keyword`, `keyword`, `keyword_info.search_volume`, `keyword_info.cpc`, `keyword_info.competition_level`, `keyword_properties.keyword_difficulty`, `search_intent_info.main_intent`

**Example**:

```json theme={"dark"}
[
  {
    "keyword": "seo tools",
    "keyword_info.search_volume": 40500,
    "keyword_info.cpc": 6.2,
    "keyword_info.competition_level": "MEDIUM",
    "keyword_properties.keyword_difficulty": 72,
    "search_intent_info.main_intent": "commercial"
  }
]
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.