> ## 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.

# Get Organic Competitors

> Find the domains competing with a domain in Google organic and paid search according to DataForSEO Labs, with shared keyword counts, average position and each competitor's traffic

Find the domains competing with a domain in Google organic and paid search according to DataForSEO Labs, with shared keyword counts, average position and each competitor's traffic. Use dataforseo\_get\_keyword\_gap for the exact keywords they share or miss.

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

## Inputs

| Field                 | Type                       | Required | Default | Description                                                                                                                                                                                                                                                                                                                                   |
| --------------------- | -------------------------- | -------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `target`              | string                     | Yes      | -       | Domain to find competitors for, without scheme or www (e.g. example.com).                                                                                                                                                                                                                                                                     |
| `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.                                                                                                                                                                                                                                                                 |
| `item_types`          | string or array of string  | No       | -       | SERP element types to compare on: organic, paid, featured\_snippet, local\_pack, ai\_overview\_reference. Defaults to organic and paid.                                                                                                                                                                                                       |
| `max_rank_group`      | integer                    | No       | -       | Only count keywords where the target ranks within this position (e.g. 10 for page one). Leave empty for the top 100.                                                                                                                                                                                                                          |
| `exclude_top_domains` | boolean                    | No       | `False` | Leave out very large sites such as Wikipedia, Amazon and YouTube that rank for almost everything.                                                                                                                                                                                                                                             |
| `filters`             | array of FilterItem        | No       | -       | Up to 8 filters on dotted result fields, e.g. intersections GREATER\_THAN 50, full\_domain\_metrics.organic.etv GREATER\_THAN 1000, domain CONTAINS '.co.uk'.                                                                                                                                                                                 |
| `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. domain, avg\_position, sum\_position, intersections, full\_domain\_metrics.organic.etv, full\_domain\_metrics.organic.count, metrics.organic.etv, metrics.organic.count, competitor\_metrics.organic.etv, competitor\_metrics.organic.count. Leave empty for the default set (see the output description). |

### 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 competitor with dotted columns: domain, avg\_position, sum\_position, intersections, full\_domain\_metrics.organic.etv, full\_domain\_metrics.organic.count, metrics.organic.etv, metrics.organic.count (on shared keywords), competitor\_metrics.organic.etv, competitor\_metrics.organic.count, and the same under paid.

**Fields**: `domain`, `avg_position`, `intersections`, `full_domain_metrics.organic.etv`, `full_domain_metrics.organic.count`, `metrics.organic.etv`

**Example**:

```json theme={"dark"}
[
  {
    "domain": "semrush.com",
    "avg_position": 14.2,
    "sum_position": 48213,
    "intersections": 3394,
    "full_domain_metrics.organic.etv": 3624906.0,
    "full_domain_metrics.organic.count": 93436,
    "metrics.organic.etv": 512300.2
  }
]
```
