# SEOmonitor API API

> SEOmonitor API API on Apizie: 21 endpoints (Keyword Canibalization, Sites, Forecast, Objective/Forecast, …) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://www.apizie.tech/v1/business:seomonitor/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `business:seomonitor`
- Category: Business
- Status: byok
- Source: https://seomonitor.com
- Page: https://www.apizie.tech/api/business/seomonitor
- OpenAPI: https://www.apizie.tech/api/business/seomonitor/openapi.json

` We have now released the new ` API 3.0 `! It comes with enhanced data coverage and organization, and easy-to-use documentation. This version will continue to be functional, and you can use it alongside the new…

## Endpoints

### Keyword Canibalization
`GET https://www.apizie.tech/v1/business:seomonitor/keyword-data-list-canibalization-keywords` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | string | yes | The unique site identifier |
| group_id | string | yes | The unique group identifier. 0 for 'All keywords' |
| start_date | string | yes | Start Date |
| end_date | string | yes | End Date |

### Sites
`GET https://www.apizie.tech/v1/business:seomonitor/sites-get-list` (byok)

### Forecast
`GET https://www.apizie.tech/v1/business:seomonitor/forecast-traffic-forecast-status` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | string | yes | The unique site identifier |

### Objective/Forecast
`GET https://www.apizie.tech/v1/business:seomonitor/forecast-objective-data` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | string | yes | The unique site identifier |

### Groups List
`GET https://www.apizie.tech/v1/business:seomonitor/groups-get-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | string | yes | The unique site identifier |

### Group Performance
`GET https://www.apizie.tech/v1/business:seomonitor/groups-get-performance-data` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | string | yes | The unique site identifier |
| group_id | string | yes | The group identifier |
| date_start | string | yes | The start of the period. (Accepts date format as YYYY-mm-dd or relative like "1 week ago", "3 months ago", etc.) |
| date_end | string | yes | The end of the period. (Accepts date format as YYYY-mm-dd or relative like "now", "today", etc.) |

### Group performance
`GET https://www.apizie.tech/v1/business:seomonitor/groups-get-keywords-details` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | string | yes | The unique site identifier |
| date_start | string | yes | The start of the period. (Accepts date format as YYYY-mm-dd or relative like "1 week ago", "3 months ago", etc.) |
| date_end | string | yes | The end of the period. (Accepts date format as YYYY-mm-dd or relative like "now", "today", etc.) |

### Keyword Data
`GET https://www.apizie.tech/v1/business:seomonitor/keyword-data-get-details` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | string | yes | The unique site identifier |
| date_start | string | yes | The start of the period. (Accepts date format as YYYY-mm-dd or relative like "1 week ago", "3 months ago", etc.) |
| date_end | string | yes | The end of the period. (Accepts date format as YYYY-mm-dd or relative like "now", "today", etc.) |
| offset | string | no | By default a request is limited to 1000 rows, if you want more you can set the offset |
| keyword_name | string | no | The keyword name you wish to retrieve data for |

### Keyword Performance
`GET https://www.apizie.tech/v1/business:seomonitor/keyword-data-get-performance` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | string | yes | The unique site identifier |
| group_id | string | yes | Group id. For Brand folder you can use `brand` as value for group id |
| date_start | string | yes | The start of the period. (Accepts date format as YYYY-mm-dd or relative like "1 week ago", "3 months ago", etc.) |
| date_end | string | yes | The end of the period. (Accepts date format as YYYY-mm-dd or relative like "now", "today", etc.) |
| offset | string | no | By default, a request is limited to 1000 rows. If you need to get more, you can set an offset, accordingly (an offset of 1000 will provide… |
| keyword_name | string | no | The keyword (name, not ID) you need data for. |

### Ranks
`GET https://www.apizie.tech/v1/business:seomonitor/ranks-get-desktop-mobile-ranks` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | string | yes | The unique site identifier |
| date_start | string | yes | The start of the period. (Accepts date format as YYYY-mm-dd or relative like "1 week ago", "3 months ago", etc.) |
| date_end | string | yes | The end of the period. (Accepts date format as YYYY-mm-dd or relative like "now", "today", etc.) |
| offset | string | no | By default a rank request is limited to 100 keywords, if you want the next 100 keywords you can set the offset |
| limit | string | no | If this field is not set, default value is 100.If this field is set, allowed values are between 100 and 1000 |

### Keywords Ranks
`GET https://www.apizie.tech/v1/business:seomonitor/ranks-get-group-ranks` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | string | yes | The unique site identifier |
| group_id | string | yes | The unique group identifier |
| date_start | string | yes | The start of the period. (Accepts date format as YYYY-mm-dd or relative like "1 week ago", "3 months ago", etc.) |
| date_end | string | yes | The end of the period. (Accepts date format as YYYY-mm-dd or relative like "now", "today", etc.) |
| offset | string | no | By default, a rank request is limited to 100 keywords. If you need to get more, you can set an offset, accordingly (an offset of 100 will… |
| limit | string | no | If this field is not set, default value is 100.If this field is set, allowed values are between 100 and 1000 |

### Organic Traffic Performance
`GET https://www.apizie.tech/v1/business:seomonitor/organic-traffic-get-performance-data` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | string | yes | The unique site identifier |
| date_start | string | yes | The start of the period. (Accepts date format as YYYY-mm-dd or relative like "1 week ago", "3 months ago", etc.) |
| date_end | string | yes | The end of the period. (Accepts date format as YYYY-mm-dd or relative like "now", "today", etc.) |

### Organic Traffic
`GET https://www.apizie.tech/v1/business:seomonitor/organic-traffic-split-by-dates` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | string | yes | The unique site identifier |
| date_start | string | yes | The start of the period. (Accepts date format as YYYY-mm-dd or relative like "1 week ago", "3 months ago", etc.) |
| date_end | string | yes | The end of the period. (Accepts date format as YYYY-mm-dd or relative like "now", "today", etc.) |
| type | string | no | Possible values: brand / non-brand. |

### Content Performance
`GET https://www.apizie.tech/v1/business:seomonitor/content-performance-get-performance-data` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | string | yes | The unique site identifier |
| date_start | string | yes | The start of the period. (Accepts date format as YYYY-mm-dd or relative like "1 week ago", "3 months ago", etc.) |
| date_end | string | yes | The end of the period. (Accepts date format as YYYY-mm-dd or relative like "now", "today", etc.) |
| offset | string | no | By default, a request is limited to 1000 rows. If you need to get more, you can set an offset, accordingly (an offset of 1000 will provide… |

### Keyword Competitors
`GET https://www.apizie.tech/v1/business:seomonitor/keyword-serp-get-competitors` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | string | yes | The unique site identifier |
| keyword_name | string | yes | The keyword name |
| query_end_date | string | yes | The end of the period. (Accepts date format as YYYY-mm-dd or relative like "now", "today", etc.) |
| mobile | string | no | Check to retrieve mobile landing pages. |

### Daily Visibility
`GET https://www.apizie.tech/v1/business:seomonitor/visibility-score-daily-visibility-data` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | string | yes | The unique site identifier |
| group_id | string | yes | The unique group identifier |
| date_start | string | yes | The start of the period. (Accepts date format as YYYY-mm-dd or relative like "1 week ago", "3 months ago", etc.) |
| date_end | string | yes | The end of the period. (Accepts date format as YYYY-mm-dd or relative like "now", "today", etc.) |
| device | string | no | Device value. If it's not provided, default value is 1 (desktop). Get all devices from &quot;/devices&quot; endpoint. Possible values: 1… |

### Get competitors keywords
`GET https://www.apizie.tech/v1/business:seomonitor/compare-competitor-keywords` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | string | yes | The unique site identifier |
| start_date | string | yes | The start of the period. (Relative date) |
| end_date | string | yes | The end of the period. (Relative date) |
| competitors | string | yes | Maximum 10 competitors, separated by comma. |
| offset | string | no | By default a request is limited to 1000 rows, if you want more you can set the offset |

### Competitors' Rankings
`GET https://www.apizie.tech/v1/business:seomonitor/compare-competitor-rankings` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | string | yes | The unique site identifier |
| start_date | string | yes | The start of the period. (Relative date) |
| end_date | string | yes | The end of the period. (Relative date) |
| competitors | string | yes | Maximum 10 competitors, separated by comma. |
| group_id | string | yes | Group id from /groups_list/{site_id}. If it's not provided, default group is 'All keywords' |
| device | string | no | Check to retrieve mobile data. |
| offset | string | no | By default, a request is limited to 1000 rows. If you need to get more, you can set an offset, accordingly (an offset of 1000 will provide… |

### Get competitors visibility score
`GET https://www.apizie.tech/v1/business:seomonitor/compare-competitors-visibility-score` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | string | yes | The unique site identifier |
| start_date | string | yes | The start of the period. (Relative date) |
| end_date | string | yes | The end of the period. (Relative date) |
| group_id | string | no | Group id from /groups_list/{site_id}. If it's not provided, default group is &quotAll keywords&quot. Use comma for multiple groups (Eg:… |
| competitors | string | no | Maximum 10 competitors, separated by comma. |
| device | string | no | Device value. If it's not provided, default value is 1 (desktop). Get all devices from &quot;/devices&quot; endpoint. Possible values: 1… |

### Competitors' Daily visibility
`GET https://www.apizie.tech/v1/business:seomonitor/compare-daily-visibility` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| site_id | string | yes | The unique site identifier |
| start_date | string | yes | The start of the period. (Relative date) |
| end_date | string | yes | The end of the period. (Relative date) |
| competitors | string | yes | Maximum 10 competitors, separated by comma. |
| group_id | string | yes | Group id from /groups_list/{site_id}. If it's not provided, default group is &quotAll keywords&quot |
| device | string | no | Device value. If it's not provided, default value is 1 (desktop). Get all devices from &quot;/devices&quot; endpoint. Possible values: 1… |

### Get all devices
`GET https://www.apizie.tech/v1/business:seomonitor/devices-get-all` (byok)

## Example
```
curl "https://www.apizie.tech/v1/business:seomonitor/keyword-data-list-canibalization-keywords" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the SEOmonitor API API?
Create a free Apizie key, then send GET https://www.apizie.tech/v1/business:seomonitor/keyword-data-list-canibalization-keywords with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the SEOmonitor API API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. SEOmonitor API itself also needs your own key from api.internal.seomonitor.com.

### Can AI agents use the SEOmonitor API API?
Yes. Add the Apizie MCP server (https://www.apizie.tech/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key business:seomonitor.

### What is the status of the SEOmonitor API API?
Needs your own provider key (bring your own key)
