canonical: https://jentic.com/apis/internal.seomonitor.com/seomonitor

# Internal Seomonitor SEOmonitor API

Jentic publishes the only available OpenAPI specification for SEOmonitor API, keeping it validated and agent-ready. SEOmonitor's v1.2 API exposes 23 read endpoints for SEO performance data across the workspace's tracked sites, including keyword rankings, organic traffic, visibility scores, on-target keyword tracking, content groupings, SERP snapshots, keyword cannibalisation analysis, and competitor comparison. Authentication is an API key passed in the Authorization header. SEOmonitor has since released v3.0 with broader coverage, but v1.2 remains operational for existing integrations and is the version this spec describes.

## For AI agents

Pull keyword rankings, organic traffic, visibility scores, and competitor comparisons for SEOmonitor-tracked sites.

## Scope

Does not handle paid search bidding, backlink discovery, technical site auditing, or content publishing - use for SEOmonitor v1.2 keyword tracking, organic traffic, and competitor comparison reads only.

## Capabilities

- Read keyword rankings for a site over a date range, optionally filtered to a keyword group
- Pull organic traffic figures and the branded-versus-non-branded split for a tracked site
- Retrieve the visibility score and underlying data points for a keyword group
- Fetch on-target keyword performance to track whether rankings hit business goals
- Compare keyword positions against listed competitors over a date range
- Surface keyword cannibalisation cases where multiple URLs compete for the same query
- List tracked sites and the keyword groups defined under each

## Use cases

### Weekly Agency Reporting

SEO agencies generate weekly client reports by pulling rankings, organic traffic, and visibility scores from SEOmonitor for each tracked site, then templating the figures into a deck or PDF. The `/ranks/{site_id}/{date_start}/{date_end}` and `/organic_traffic/{site_id}/{date_start}/{date_end}` endpoints return the time-series data the report needs in one call. Reporting that took half a day per client becomes a scheduled job.

Example prompt: Pull ranks for site_id 12345 between 2026-06-02 and 2026-06-09 and emit a CSV with keyword, position_start, position_end, and delta

### Competitor Position Tracking

In-house SEO teams monitor how their tracked keywords perform against named competitors using `/compare/keywords/{site_id}/{start_date}/{end_date}/{competitors}.` The endpoint returns per-keyword position data for the user's site and each listed competitor, enabling gap analysis and content prioritisation. The structured response avoids screen-scraping competitor SERPs manually.

Example prompt: Compare keyword positions for site_id 12345 against competitors competitor1.com and competitor2.com between 2026-05-01 and 2026-06-01

### Keyword Cannibalisation Audit

Content and SEO leads identify cases where multiple pages on the same site rank for the same query through `/keyword_canibalization/{site_id}/{group_id}`, which returns the conflicting URL pairs. The data drives consolidation decisions - merging or canonicalising competing pages - without needing manual SERP inspection. A site-wide audit becomes a single API call per keyword group.

Example prompt: Retrieve cannibalisation cases for site_id 12345 group_id 88 and list URL pairs that compete for the same query

### Agent-Driven SEO Health Check

An AI agent runs a daily SEO health check across the workspace by listing sites with /sites, then for each site pulling `/on_target/{site_id}`, /ranks, and /keyword_canibalization to flag regressions. The agent surfaces a prioritised remediation list to the team's chat channel. Jentic stores the SEOmonitor API key in your Jentic One instance so the agent calls operations by name without ever seeing the raw key.

Example prompt: List all SEOmonitor sites, then for each site pull on-target data for the last 7 days and flag any keyword group whose on-target percentage dropped by more than 5 points

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/sites` | List tracked sites in the workspace |
| GET | `/groups_list/{site_id}` | List keyword groups for a site |
| GET | `/ranks/{site_id}/{date_start}/{date_end}` | Read keyword rankings over a date range |
| GET | `/organic_traffic/{site_id}/{date_start}/{date_end}` | Retrieve organic traffic figures |
| GET | `/visibility_score/{site_id}/{group_id}/{date_start}/{date_end}` | Read visibility score for a keyword group |
| GET | `/compare/keywords/{site_id}/{start_date}/{end_date}/{competitors}` | Compare keyword positions against competitors |
| GET | `/keyword_canibalization/{site_id}/{group_id}` | Detect keyword cannibalisation cases |
| GET | `/on_target/{site_id}` | Retrieve on-target keyword performance |

## Key resources

- **Sites** — List tracked sites and read keyword groups defined per site
- **Ranks** — Read keyword position data over date ranges, optionally scoped to a group
- **Organic Traffic** — Retrieve organic traffic figures and the branded-versus-non-branded split
- **Visibility Score** — Read visibility score and underlying data for a keyword group
- **On-Target** — Pull on-target keyword performance data
- **Compare** — Compare positions against listed competitors over a date range
- **Cannibalisation** — Surface keyword cannibalisation between competing pages

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 52 / 100
- **Maturity:** Foundational
- **Dimensions:**
  - Foundational Compliance: 46 / 100
  - Developer Experience & Jentic Compatibility: 62 / 100
  - AI-Readiness & Agent Experience: 33 / 100
  - Agent Usability: 94 / 100
  - Security: 50 / 100
  - AI Discoverability: 100 / 100
- **View full report:** https://jentic.com/apis/internal.seomonitor.com/seomonitor/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring the SEOmonitor v1.2 API by hand means setting up its header API key, tracking the `/api/v1.2` base path, and assembling the multi-segment date and site path parameters for each read. Through Jentic you install once, import the SEOmonitor API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** SEOmonitor puts the site id in the URL path (`/ranks/{site_id}/{date_start}/{date_end}`), so a rule can pin your agent to one site: it can read rankings, organic traffic, and competitor comparisons for that site and nothing else. Every operation here is a read, so no write path is available to add.
- **Credential handling:** Your SEOmonitor API key is stored once, encrypted, by your own Jentic One instance and injected into the Authorization header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'get SEOmonitor keyword ranks' or 'compare organic traffic', and Jentic returns the matching v1.2 operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Semrush API** — Broad SEO and competitive intelligence platform versus SEOmonitor's focused tracking
- **Ahrefs API** — Backlink-and-keyword research API versus SEOmonitor's daily rank tracking focus
- **Moz API** — Domain authority and link metrics versus SEOmonitor's site-tracking model
- **Google Search Console API** — Google's first-party search performance data that complements third-party rank tracking

## FAQ

### Why is there no official OpenAPI spec for SEOmonitor API?

SEOmonitor does not publish an OpenAPI specification for v1.2 in machine-readable form. Jentic generates and maintains this spec so that AI agents and developers can call SEOmonitor API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the SEOmonitor API use?

SEOmonitor uses API-key authentication. Pass the key in the Authorization header (the spec names the scheme 'Authorization' as an apiKey-in-header). Through Jentic, the key is stored in your Jentic One instance and the agent only ever receives a scoped reference; the raw key never enters the prompt.

### Can I pull competitor rankings with the SEOmonitor API?

Yes. GET `/compare/keywords/{site_id}/{start_date}/{end_date}/{competitors}` returns per-keyword position data for the user's site and each listed competitor across the given date range. The competitors parameter is a delimited list of competitor domain identifiers tracked in the workspace.

### What are the rate limits for the SEOmonitor API?

The OpenAPI spec does not declare numeric rate limits. SEOmonitor enforces per-workspace pacing under its standard fair-use policy; treat HTTP 429 as the canonical signal and back off. For batch reporting, prefer wider date ranges in fewer calls over many narrow-range requests.

### How do I list all tracked sites through Jentic?

Search Jentic for 'list SEOmonitor sites'. The SDK returns the GET /sites operation. Run pip install jentic, await client.search('list SEOmonitor sites'), then await client.execute(...) - no input parameters are required for that operation.

### Should I use this API or SEOmonitor v3.0?

SEOmonitor has released v3.0 with broader coverage and updated documentation at https://api-docs.seomonitor.com/. Use v1.2 (this spec) for existing integrations that already depend on it; new integrations should evaluate v3.0 first. Both versions remain functional and can be used side by side.

### Can I limit what my agent is allowed to do with the SEOmonitor API?

Yes. Because you run Jentic One yourself, your own rules decide which SEOmonitor operations and credentials the agent may use, and the site id lives in the URL path (for example `/ranks/{site_id}/{date_start}/{date_end}`), so a rule can pin the agent to a single tracked site. Scoped that way, it can read only that site's keyword rankings, organic traffic, visibility scores, and competitor comparisons, and nothing from other sites. Every SEOmonitor v1.2 operation is a read, so there is no write or delete path an agent could reach.
