> ## 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 Keyword Rankings

> Get Google's top organic results (SERP) for keywords — which domains and URLs rank at which position

Get Google's top organic results (SERP) for keywords — which domains and URLs rank at which position. Use to check rankings/positions for any keyword, including a specific domain's position.

| | |
| - | - |
| **App** | SEMrush |
| **Operation ID** | `semrush_get_keyword_rankings` |
| **Type** | Action |
| **Connection** | `semrush` (required) |
| **Credits per run** | Free |
| **Agent / MCP tool** | Yes |

## Inputs

| Field | Type | Required | Default | Description |
| - | - | - | - | - |
| `keywords` | array of string or string | Yes | - | Keywords to fetch Google top-100 organic results for. Accepts a list or a newline/comma-separated string. One SERP is fetched per keyword. |
| `database` | string | No | `us` | Regional database (country code). E.g. us, uk, ca, au, de, fr, es, it, br. Defaults to 'us'. |
| `export_columns` | array of string or SelectableOption | No | - | List of columns to return. Available: Po (position), Pt (position type), Dn (domain), Ur (URL), Fk (keyword SERP features), Fp (SERP features the result appears in). |
| `positions_type` | string or SelectItem | No | `organic` | 'organic' returns traditional organic positions only; 'all' also includes SERP features as positions. |
| `display_date` | string | No | - | Historical SERP date in YYYYMM15 format (e.g. 20240115). Leave empty for current data. Historical requests cost 5x more API units. |
| `limit` | integer | No | - | Maximum number of results per keyword (top N positions). |

### SelectItem

| Field | Type | Required | Default | Description |
| - | - | - | - | - |
| `value` | string | Yes | - | The value of the selectable item. |
| `label` | string | Yes | - | The label of the selectable item, used for display purposes. If not provided, defaults to the value. |

### SelectableOption

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

## Output

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

Returns one row per ranking result per keyword with: date, keyword, position, domain, url.

**Fields**: `date`, `keyword`, `position`, `domain`, `url`

**Example**:

```json theme={"dark"}
[
  {
    "date": "2026-06-09",
    "keyword": "seo tools",
    "position": 1,
    "domain": "semrush.com",
    "url": "https://www.semrush.com/"
  }
]
```


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