canonical: https://jentic.com/apis/agentseo.dev/agentseo

# AgentSEO API

The AgentSEO API returns search, SERP, keyword, backlink, and content-planning data shaped for AI agents working on search optimisation. It runs web searches and page extraction, analyses a keyword's SERP and AI overview, and reports a domain's ranked keywords, competitors, traffic estimate, and backlink profile including anchors and referring domains. Content endpoints produce briefs, SERP outlines, draft QA, title and meta suggestions, internal link plans, and cannibalisation checks from a keyword and a URL or markdown. Rank tracking runs as a queued job with status polling, and webhook endpoints notify a client when jobs finish.

## For AI agents

Research keywords, analyse SERPs, audit backlinks, and generate content briefs and on-page QA for a target domain, with queued rank tracking and webhook job notifications.

## Scope

Does not publish content, edit websites, or manage paid search campaigns. Use for SEO research, content planning, backlink analysis, and rank tracking only.

## Capabilities

- Analyze the SERP for a keyword by location and device, and extract the AI overview shown for it
- Research keywords with idea suggestions, search-volume metrics, and keyword clustering
- Audit a domain's backlink profile: summary, link list, anchors, referring domains, and new or lost links over time
- Compare a domain against competitors with ranked keywords, keyword intersection, and traffic estimates
- Generate content briefs, SERP outlines, and title and meta suggestions for a target keyword
- Check a draft or live page with content draft QA, technical publish QA, and CRO and CTA review
- Queue rank tracking for a keyword and URL, then read the rank history once the job completes

## Use cases

### AI SEO research agent through Jentic

An AI agent asked to plan content for a site needs keyword and SERP data without a hand-built client. Through Jentic the agent searches for 'analyze the SERP for a keyword', receives the AgentSEO operation with its input schema, and calls POST `/analyze/serp` with the keyword, location, and device. It then calls POST `/keyword-ideas/suggest` to widen the list and returns a ranked set of target keywords with the SERP features that compete for each.

Example prompt: Call POST `/analyze/serp` with keyword 'project management software', location 'United States', and device 'desktop', then call POST `/keyword-ideas/suggest` with the same keyword and limit 50, and summarise the top opportunities

### Competitor keyword gap analysis

A marketer wants the keywords a competitor ranks for that their own domain misses. AgentSEO's POST `/domain/intersection` takes target1 and target2 domains and returns shared and exclusive ranking keywords, while POST `/domain/ranked-keywords` lists each domain's rankings with search volume and rank filters. Combined with POST `/domain/traffic-estimate`, the agent can prioritise gaps by the traffic they carry.

Example prompt: Call POST `/domain/intersection` with target1 'example.com' and target2 'competitor.com', then POST `/domain/traffic-estimate` with both domains in targets, and list the ten highest-volume keywords only the competitor ranks for

### Backlink profile audit

An SEO lead reviewing link health needs counts, sources, and anchor text for a domain. POST `/backlinks/summary` returns the headline profile, POST `/backlinks/referring-domains` and POST `/backlinks/anchors` break it down by source and anchor, and POST `/backlinks/new-lost-timeseries` shows gained and lost links between date_from and date_to. The dofollow_only and broken_only filters on POST `/backlinks/list` isolate the links worth acting on.

Example prompt: Call POST `/backlinks/summary` for target 'example.com', then POST `/backlinks/list` with target 'example.com' and broken_only true, and report the broken links with their referring pages

### Content brief and pre-publish QA

A content team drafts against what the SERP rewards and checks the page before it goes live. POST `/content/brief` builds a brief for a keyword with audience, brand_voice, and page_type inputs, POST `/content/draft-qa` scores a draft_url or draft_markdown against the keyword, and POST `/content/title-meta` proposes a title and meta description. POST `/content/technical-qa` then checks canonical and on-page issues before publishing.

Example prompt: Call POST `/content/brief` with keyword 'best CRM for startups' and page_type 'article', then POST `/content/draft-qa` with the same keyword and the draft_markdown text, and list the gaps the QA reports

### Rank tracking with job webhooks

A site owner wants to know where a page ranks for a keyword over time. POST `/rank/track` queues a tracking job for a keyword and URL, GET `/jobs/{id}` reports the job's status, and GET `/rank/track` returns the rank history for the keyword and url pair. Registering a webhook with POST `/webhooks/endpoints` lets a client receive job events instead of polling, and failed deliveries can be retried with POST `/webhooks/deliveries/{id}/retry.`

Example prompt: Call POST `/rank/track` with keyword 'crm for startups' and url 'https://example.com/crm', poll GET `/jobs/{id}` until it completes, then call GET `/rank/track` with the same keyword and url to read the history

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/analyze/serp` | Analyze the SERP for a keyword |
| POST | `/keyword-ideas/suggest` | Suggest keyword ideas from a seed keyword |
| POST | `/domain/ranked-keywords` | List keywords a domain ranks for |
| POST | `/backlinks/summary` | Summarise a domain's backlink profile |
| POST | `/content/brief` | Generate a content brief for a keyword |
| POST | `/rank/track` | Queue rank tracking for a keyword and URL |
| GET | `/jobs/{id}` | Get job status |
| POST | `/webhooks/endpoints` | Create a webhook endpoint |

## Key resources

- **SERP and keywords** — SERP analysis, AI overview extraction, keyword ideas, keyword metrics, and keyword clusters
- **Domains and backlinks** — Ranked keywords, competitors, intersections, traffic estimates, and backlink summaries, lists, anchors, and referring domains
- **Content planning** — Briefs, SERP outlines, draft QA, title and meta, internal links, keyword maps, and cannibalisation checks
- **Jobs and webhooks** — Queued rank-tracking jobs with status polling and webhook endpoints with delivery history and retry

## 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:** 37 / 100
- **Maturity:** Non-Ready
- **Dimensions:**
  - Foundational Compliance: 44 / 100
  - Developer Experience & Jentic Compatibility: 57 / 100
  - AI-Readiness & Agent Experience: 18 / 100
  - Agent Usability: 93 / 100
  - Security: 50 / 100
  - AI Discoverability: 51 / 100
- **View full report:** https://jentic.com/apis/agentseo.dev/agentseo/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 AgentSEO by hand means sending the key in the x-api-key header, shaping request bodies for dozens of POST operations, and polling queued jobs or registering webhooks for rank tracking. Through Jentic you install once, import AgentSEO from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** AgentSEO carries its targets (keywords, domains, URLs) inside request bodies, so rules bound which operations your agent may call, not which domain it researches. You choose the operations it may call, so webhook changes like deleting an endpoint are not included unless you add them.
- **Credential handling:** Your AgentSEO API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'analyze the SERP for a keyword' or 'audit a domain's backlinks', and Jentic returns the matching AgentSEO operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Semrush API** — Established SEO suite with keyword, domain, and backlink analytics
- **Ahrefs API** — Backlink and keyword index with site explorer and rank data
- **SerpApi** — Raw search engine result pages as structured JSON
- **Firecrawl API** — Crawl and scrape websites into clean markdown

## FAQ

### What authentication does the AgentSEO API use?

The AgentSEO API authenticates with an API key sent in the `x-api-key` request header, declared as the ApiKeyAuth scheme in its OpenAPI spec and applied globally to its operations. Through Jentic the key is held by your own Jentic One instance and attached to each call, so the agent never handles it.

### Can I audit a domain's backlinks with the AgentSEO API?

Yes. POST `/backlinks/summary` returns the headline profile for a target, POST `/backlinks/referring-domains` and POST `/backlinks/anchors` break it down by source domain and anchor text, and POST `/backlinks/new-lost-timeseries` shows links gained and lost between date_from and date_to. POST `/backlinks/list` accepts filters such as dofollow_only and broken_only.

### How does rank tracking work in the AgentSEO API?

Rank tracking is asynchronous. POST `/rank/track` queues a job for a keyword and url, GET `/jobs/{id}` returns the job status, and GET `/jobs/{id}/events` streams status updates. Once the job is done, GET `/rank/track` with the same keyword and url returns the rank history. You can also register a webhook with POST `/webhooks/endpoints` to be notified of job events.

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

The OpenAPI spec does not specify rate limits. Check the AgentSEO documentation at https://www.agentseo.dev for current limits and plan quotas before running large keyword or backlink batches.

### How do I analyze a keyword's SERP through Jentic?

Search Jentic for 'analyze the SERP for a keyword', load the POST `/analyze/serp` operation, and execute it with keyword plus optional location, device, and language. Pair it with POST `/ai-overview/extract` to capture the AI overview for the same keyword. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Is there an AgentSEO MCP server?

You don't need an MCP server to give your agent AgentSEO. Jentic connects it directly from the API Directory: import it, store your API key once, and your agent discovers the SERP, keyword, and backlink operations it needs on demand, without loading a full set of tool definitions into its context.

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

Yes. For a research-only agent, write a rule that allows POST `/analyze/serp`, POST `/keyword-ideas/suggest`, and POST `/backlinks/summary`, and leave out the webhook operations. The agent can then read SERP, keyword, and backlink data but cannot create, change, or delete webhook endpoints, and each call it makes is logged.
