> ## 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 Top Pages

> List the pages or subdomains of a domain with the most Google visibility according to DataForSEO Labs: estimated organic and paid traffic, ranking keyword counts by position bucket, and keyword mov...

List the pages or subdomains of a domain with the most Google visibility according to DataForSEO Labs: estimated organic and paid traffic, ranking keyword counts by position bucket, and keyword movements per page.

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

## Inputs

| Field                  | Type                       | Required | Default | Description                                                                                                                                                                                                                                                                                                                                                                                          |
| ---------------------- | -------------------------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `target`               | string                     | Yes      | -       | Domain to list the best pages or subdomains for, without scheme or www (e.g. example.com).                                                                                                                                                                                                                                                                                                           |
| `report`               | string or SelectableOption | No       | `pages` | 'pages' (default): pages of the domain ranked by estimated organic traffic and keyword counts. 'subdomains': the same per subdomain.                                                                                                                                                                                                                                                                 |
| `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 count: organic, paid, featured\_snippet, local\_pack, ai\_overview\_reference. Defaults to organic and paid.                                                                                                                                                                                                                                                                   |
| `historical_serp_mode` | string or SelectableOption | No       | `live`  | 'live' (default): current rankings. 'lost': rankings the pages lost. 'all': both.                                                                                                                                                                                                                                                                                                                    |
| `filters`              | array of FilterItem        | No       | -       | Up to 8 filters on dotted result fields, e.g. metrics.organic.etv GREATER\_THAN 100, metrics.organic.count GREATER\_THAN 10, page\_address CONTAINS '/blog/'.                                                                                                                                                                                                                                        |
| `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. page\_address (or subdomain), metrics.organic.etv, metrics.organic.count, metrics.organic.pos\_1, metrics.organic.pos\_2\_3, metrics.organic.pos\_4\_10, metrics.organic.is\_new, metrics.organic.is\_up, metrics.organic.is\_down, metrics.organic.is\_lost, metrics.paid.etv, metrics.paid.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 page or subdomain with page\_address (or subdomain) plus dotted metric columns: metrics.organic.etv, metrics.organic.count, metrics.organic.pos\_1 ... pos\_91\_100, metrics.organic.is\_new, is\_up, is\_down, is\_lost, metrics.organic.estimated\_paid\_traffic\_cost, and the same under metrics.paid.

**Fields**: `page_address`, `metrics.organic.etv`, `metrics.organic.count`, `metrics.organic.pos_1`, `metrics.organic.pos_2_3`, `metrics.organic.pos_4_10`, `metrics.paid.etv`

**Example**:

```json theme={"dark"}
[
  {
    "page_address": "https://ahrefs.com/backlink-checker",
    "metrics.organic.etv": 812340.7,
    "metrics.organic.count": 1660,
    "metrics.organic.pos_1": 210,
    "metrics.organic.pos_2_3": 340,
    "metrics.organic.pos_4_10": 520
  }
]
```
