REST + MCP

Automate AI-search visibility from your own stack

Use the same citation tests, keyword research and link building behind the app from scripts, scheduled jobs, or AI agents via the hosted MCP server. API access is included with Pro and Business plans.

Authentication

Every request must carry an API key. Generate keys on the API keys page. Send it as a bearer token or the X-Api-Key header.

Authorization: Bearer sea_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Keys are shown exactly once at creation and only the hash is stored. Revoke a key from the API keys page to kill it instantly.

Quota pools

API traffic uses a separate quota pool from the web app, shared across all of your keys. Daily (24h sliding) and calendar-month caps apply; the lower one binds. Business keys get 2x the Pro numbers. Overrides:

FeatureDaily (Pro)Monthly (Pro)
citation_test540
citation_sim20100
brand_safety320
competitor_gap15
entity_builder15
schema_audit1050
keyword_research215
link_building15
fix_pack540
snippet_fix540

analyze is rule-based and not quota-bound. When a cap is hit the API returns 429 with code QUOTA_EXCEEDED and the window.

REST endpoints

Base URL: https://seo-ea.com. Errors are JSON with error and code fields.

POST/api/v1/analyze

Full AEO / AIO / GEO / crawlability analysis (rule-based, no LLM cost). Also accepts a urls array (max 5) for bulk mode.

# request body
{ "url": "https://example.com" }
POST/api/v1/citation-testcitation_test quota

Live AI citation test: real LLM queries with buyer-intent prompts, cached 48h per domain.

# request body
{ "url": "https://example.com", "forceRefresh": false }
POST/api/v1/citation-test/multi-enginecitation_test quota

The same prompts across every configured engine, returned as a prompt x engine matrix with a share-of-voice summary (including where engines disagree about you).

# request body
{ "url": "https://example.com", "forceRefresh": false }
POST/api/v1/citation-simcitation_sim quota

Pre-publish AI citation readiness score (0-100). Rule-based, zero LLM cost — predicts how assistants will cite a draft before it goes live, with prioritized fixes.

# request body
{ "title": "...", "metaDescription": "...", "body": "...", "jsonLd": "...", "llmsTxt": "...", "brandName": "Acme", "targetUrl": "https://..." }
POST/api/v1/brand-safetybrand_safety quota

AI brand-safety audit: fact-checks live AI engine answers about the brand against its own page content. Flags hallucinated features, wrong pricing, unsupported precision and competitor mix-ups, plus key facts AI left out. Fact sheet cached 7d, per-engine verdicts 48h.

# request body
{ "url": "https://example.com", "forceRefresh": false }
POST/api/v1/competitor-gapcompetitor_gap quota

Compare your page against a competitor across AI-readiness signals, schema coverage, content depth and a live per-engine citation test (one shared prompt set). Returns a prioritized catch-up gap list. Page analyses are rule-based; citation tests reuse the 48h cache.

# request body
{ "url": "https://you.com", "competitorUrl": "https://rival.com" }
POST/api/v1/entity-builderentity_builder quota

Entity / knowledge-base builder (GEO): audits the page's JSON-LD entity footprint (types, name/URL/logo/sameAs consistency) and generates a KB-build strategy — canonical name variants, prioritized knowledge-base targets (Wikipedia, Crunchbase, LinkedIn, review platforms, directories), consistency rules — plus a ready-to-paste Organization + sameAs JSON-LD block. Audit is rule-based; the strategy LLM call is cached 7d.

# request body
{ "url": "https://example.com", "forceRefresh": false }
POST/api/v1/schema-auditschema_audit quota

Full-page structured data audit: parses every JSON-LD/microdata/RDFa block on the page, validates it against schema.org (invalid properties, missing required/recommended props, value-type mistakes) and reports missing core entities (Organization, WebSite, FAQPage, Article, Product, LocalBusiness, BreadcrumbList) with a 0-100 readiness score and prioritized fixes. 100% rule-based — zero LLM cost.

# request body
{ "url": "https://example.com" }
GET/api/v1/visibility

AI-visibility dashboard for the API key owner's watchlist: per-URL citation trends, crawler access, brand-safety grade and improve/decline direction, engine disagreement and a combined leaderboard. Read-only — zero LLM cost, not quota-bound.

POST/api/v1/keywords/researchkeyword_research quota

AI-targeted keyword clusters tagged by intent, difficulty, volume and AI relevance. Real Google Ads volumes via DataForSEO when connected.

# request body
{ "seed": "project management", "domain": "example.com" }
POST/api/v1/keywords/citationcitation_test quota

Keyword-scoped citation test: does each engine cite the brand for this specific query?

# request body
{ "keyword": "best pm tool", "url": "https://example.com" }
GET/api/v1/keywords/lists

List saved keyword lists.

POST/api/v1/keywords/lists

Save a research result as a named keyword list.

# request body
{ "name": "launch", "seed": "pm tools", "clusters": [ ... ] }
GET/api/v1/keywords/lists/:id

Full saved list including clusters.

DELETE/api/v1/keywords/lists/:id

Remove a saved keyword list.

POST/api/v1/link-buildinglink_building quota

GEO-aware link campaign: opportunity mix, named prospects, 30/60/90-day roadmap, multi-channel templates, anchors, metrics, checklist.

# request body
{ "domain": "example.com", "niche": "AI SEO", "competitors": "Otterly, Peec", "goal": "citations", "horizon": "90d" }
POST/api/v1/fix-packfix_pack quota

Ready-to-paste fixes from an analysis: JSON-LD schema, llms.txt, improved meta tags.

# request body
{ "analysis": { ...AnalysisResult } }
POST/api/v1/snippet-fixsnippet_fix quota

LLM-correct a JSON-LD snippet so it is spec-compliant and rich-result eligible.

# request body
{ "snippet": "{ \"@context\": ... }", "url": "https://example.com" }
GET/api/v1/usage

Per-feature usage against the API quota pool (daily + monthly, remaining).

Example

# Run a keyword research
curl -X POST https://seo-ea.com/api/v1/keywords/research \
  -H "Authorization: Bearer sea_..." \
  -H "Content-Type: application/json" \
  -d '{ "seed": "project management", "domain": "example.com" }'

Hosted MCP server

Point any MCP client at the hosted server — no local install needed. URL: https://seo-ea.com/api/mcp with your API key as the bearer token. It exposes the same capabilities as tools: analyze, citation_test, multi_engine_citation, citation_sim, brand_safety, competitor_gap, entity_builder, schema_audit, visibility_dashboard, keyword_research, keyword_citation, link_building, generate_fix_pack, snippet_fix and usage.

Claude Code

# .mcp.json in your project
{
  "mcpServers": {
    "seo-analyzer": {
      "type": "http",
      "url": "https://seo-ea.com/api/mcp",
      "headers": { "Authorization": "Bearer sea_..." }
    }
  }
}

Claude Desktop

# claude_desktop_config.json
{
  "mcpServers": {
    "seo-analyzer": {
      "url": "https://seo-ea.com/api/mcp",
      "headers": { "Authorization": "Bearer sea_..." }
    }
  }
}

MCP tool calls consume the same API quota pool as the REST endpoints. Streamable HTTP, stateless mode — each tool call is authenticated and quota-checked per account.

Frequently asked questions

Quick answers on authentication, quota, caching, and what the API can do. The readiness score is a 25% weighted blend of AEO, AIO, GEO, and crawlability, and citation rates are reported on a 0-100% scale per engine.

How do I get an API key?

Sign in with Google on the analyzer, open the API keys page, and create a key. Keys are shown exactly once at creation and only the hash is stored. Send it as a bearer token or the X-Api-Key header.

What AI engines does the citation test use?

The citation API queries OpenAI GPT-4o and Anthropic Claude by default, plus any engine you add through configuration. The multi-engine endpoint runs the same prompt set across every engine and returns a share-of-voice matrix rated from 0-100%.

Are the AI endpoints rate limited?

Yes. Every AI feature draws from your plan's daily and monthly quota pool, shared across all API keys and MCP sessions. The rule-based analyze endpoint is unlimited and costs no quota at all.

Is the analyze endpoint really free?

Yes. POST /api/v1/analyze runs the full rule-based AEO, AIO, GEO, and crawlability check at no cost and with no quota. Only LLM-backed features such as citation tests consume your quota.

How is my usage tracked?

Each response includes used and remaining counts per feature for the current day and month. The usage endpoint returns the full per-feature breakdown across your account's shared quota pool.

Can I use the API from scripts or AI agents?

Yes. The REST API works from any script or cron job, and the hosted MCP server connects Claude, Cursor, and other agents. Both authenticate with the same bearer key and share the same quota.

How long are citation results cached?

Citation tests are cached per domain for 48 hours so repeated checks do not burn quota. Entity and keyword strategies use a 7-day cache, and you can force a refresh at any time.

Does the API work for any website?

Yes. Pass any public URL to analyze, citation-test, audit, or compare it. Page analyses are rule-based, while live citation tests use n=4 to 6 realistic buyer-intent prompts per engine and report where your brand appears.

Common use cases

Marketing teams schedule a nightly citation check for their top ten pages so changes in AI share of voice surface early. SEO consultants batch-analyze a prospect's site before a pitch and export the report to their own notes. Developers wire the MCP server into an internal agent so support or content writers can answer "are we being cited for this topic?" without leaving their tool. Because every endpoint accepts a simple public URL and returns JSON, integrating the analyzer into an existing workflow takes minutes, not days.

Related resources

The hosted server implements the Model Context Protocol specification. Structured response shapes follow schema.org types, and the site index format follows the llms.txt specification.

Keep exploring

Learn how multi-engine citation testing works on the learn page, see how SEO Evolution Analyzer compares to other tools on the compare page, review plan pricing and quota on the pricing page, or run a free scan on the home page. For a machine-readable site index, see llms.txt.