COVEN AI Developer API

Build agents and tools that scan and audit any website.

Free scan 7 audit types MCP-ready OpenAPI spec

The COVEN API is designed for AI agents, automation tools, and developers. Scan any website in seconds or place full audit orders programmatically.

Get API Key → View OpenAPI Spec ↗

Overview

REST API

Standard HTTP endpoints with Bearer token auth. JSON responses. Works with any language or framework.

MCP Server

Native Model Context Protocol support. Add COVEN as a tool to any Claude, GPT, or MCP-compatible agent in minutes.

OpenAPI Spec

Machine-readable spec at /openapi.json. Auto-generate SDKs, import into Postman, or let agents discover automatically.

Base URL https://api.covenai.io

Live Demo

Try the scan API right here. Enter any website URL and see the structured JSON response instantly — no API key required for the free scan.

Authentication

All authenticated endpoints require a Bearer token in the Authorization header. Get your API key from Mission Control.

curl -H "Authorization: Bearer coven_live_your_key_here" \ "https://api.covenai.io/api/v1/scan?url=example.com"
Note: /api/v1/status and /api/v1/products require no authentication. All other endpoints require a valid API key.
Get your API key → Open Mission Control

REST API Endpoints

GET /api/v1/status No Auth

Health check endpoint. Returns current API status and version.

Response

{ "status": "operational", "version": "1.0.0", "docs": "https://covenai.io/developers" }
GET /api/v1/products No Auth

List all available audit products with pricing information.

Response

[ { "id": "seo_audit", "name": "AI SEO Audit Report", "description": "Comprehensive technical and on-page SEO analysis", "price_gbp": "49.00", "price_pence": 4900 }, { "id": "speed_audit", "name": "Website Speed & Core Web Vitals Audit", "description": "Diagnose what's slowing your site down", "price_gbp": "49.00", "price_pence": 4900 }, // ... 5 more audit products ]
GET /api/v1/scan Auth Required

Scan any URL across 7 dimensions — SEO, speed, security, accessibility, mobile, content, and conversion. Returns scores, issues, and passes for each dimension.

Parameters

NameTypeRequiredDescription
url string Required The URL to scan (e.g. example.com)
include_recommendation boolean Optional Include a recommended audit bundle based on scan results

Request

curl -H "Authorization: Bearer coven_live_..." \ "https://api.covenai.io/api/v1/scan?url=example.com"

Response

{ "url": "https://example.com", "domain": "example.com", "scannedAt": "2026-03-26T22:00:00.000Z", "overallScore": 74, "dimensions": [ { "id": "seo", "name": "SEO", "score": 85, "issues": ["Missing meta description on 3 pages"], "passes": ["Title tags present", "Canonical URLs set"] }, { "id": "speed", "name": "Speed & Performance", "score": 62, "issues": ["LCP > 4s on mobile", "No image compression"], "passes": ["HTTP/2 enabled"] } ], "recommendation": { "id": "starter_bundle", "name": "Starter Bundle", "tagline": "Fix the foundations first", "bundlePrice": 9900, "stripeLink": "https://buy.stripe.com/..." } }
POST /api/v1/audit Pro / Agent

Place a full AI audit order. The audit is generated asynchronously and delivered via webhook or polling.

Body Parameters

NameTypeRequiredDescription
product string Required Product ID (e.g. seo_audit). See /products.
target_url string Required Full URL to audit (e.g. https://example.com)
webhook_url string Optional URL to receive delivery notification

Request

curl -X POST \ -H "Authorization: Bearer coven_live_..." \ -H "Content-Type: application/json" \ -d '{"product":"seo_audit","target_url":"https://example.com","webhook_url":"https://yourapp.com/webhook"}' \ "https://api.covenai.io/api/v1/audit"

Response

{ "order_id": "ord_abc123...", "status": "paid", "product": "seo_audit", "estimated_delivery_minutes": 5, "webhook_url": "https://yourapp.com/webhook", "created_at": "2026-03-26T22:00:00.000Z" }
GET /api/v1/audit/:orderId Auth Required

Check the status of an existing audit order. Poll until status is delivered.

Request

curl -H "Authorization: Bearer coven_live_..." \ "https://api.covenai.io/api/v1/audit/ord_abc123"

Response (when delivered)

{ "order_id": "ord_abc123", "status": "delivered", "product": "seo_audit", "target_url": "https://example.com", "created_at": "2026-03-26T22:00:00.000Z", "delivered_at": "2026-03-26T22:04:32.000Z", "report_summary": "..." }

Monitoring API

The monitoring endpoints let you register sites for ongoing AI scanning, track score trends, add competitor URLs, and receive webhook alerts when scores change. All endpoints require an active monitoring subscription linked to your API key.

Subscription required — Monitoring endpoints require a Growth or Agency plan. Subscribe at covenai.io/monitor. Your API key is emailed on signup.

POST /api/v1/monitor/sites

Register a site for ongoing monitoring. The site will be scanned on your plan's schedule (daily or weekly) and you'll receive alerts when scores change.

Request

{
  "url": "https://example.com",     // required
  "label": "Client site",           // optional — display name
  "webhook_url": "https://...",     // optional — Growth/Agency only
  "alert_threshold": 10             // optional — points drop to trigger alert (default: 10)
}

Response 201

{
  "id": 42,
  "url": "https://example.com",
  "label": "Client site",
  "status": "active",
  "siteType": "own",
  "nextScanDueAt": 1743200000
}
GET /api/v1/monitor/sites

List all active sites on your subscription, with quota info.

Response 200

{
  "sites": [
    {
      "id": 42,
      "url": "https://example.com",
      "label": "Client site",
      "status": "active",
      "siteType": "own",
      "lastScannedAt": 1743200000,
      "nextScanDueAt": 1743286400
    }
  ],
  "subscription": {
    "tier": "growth",
    "siteQuota": 5,
    "status": "active"
  }
}
GET /api/v1/monitor/sites/:id/latest

Get the most recent scan result for a site, including all 7 dimension scores.

Response 200

{
  "id": 7,
  "siteId": 42,
  "overallScore": 74,
  "dimensionScores": {
    "seo": 80, "speed": 65, "copy": 78,
    "social": 70, "local": 45, "competitor": 82, "ai": 90
  },
  "issues": ["Missing meta description on /pricing", "No alt text on hero image"],
  "scannedAt": 1743200000
}
GET /api/v1/monitor/compare/:siteId

Side-by-side score comparison between your site and all tracked competitors.

Response 200

{
  "own": {
    "id": 42,
    "url": "https://yoursite.com",
    "label": "Your site",
    "latestScan": { "overallScore": 74, "dimensionScores": { ... } }
  },
  "competitors": [
    {
      "id": 43,
      "url": "https://competitor.com",
      "label": "Competitor A",
      "latestScan": { "overallScore": 68, "dimensionScores": { ... } }
    }
  ]
}
POST /api/v1/monitor/competitors

Add a competitor URL to track. Competitors are scanned on the same schedule as your own sites but never trigger alerts — they're intelligence only. Counts toward your site quota.

Request

{
  "url": "https://competitor.com",
  "label": "Competitor A"
}

Response 201

{
  "id": 43,
  "url": "https://competitor.com",
  "label": "Competitor A",
  "siteType": "competitor",
  "status": "active"
}

Webhook Alerts

Growth and Agency plans can register a webhook_url per site. When a score drops by more than your alert threshold, COVEN POSTs to that URL within minutes of the scan completing.

Payload

POST https://yourapp.com/webhook
Content-Type: application/json
X-Coven-Event: monitoring.alert

{
  "event": "monitoring.alert",
  "site": "https://example.com",
  "alert_type": "score_drop",      // score_drop | dimension_drop | site_down | recovered
  "dimension": null,               // populated for dimension_drop events
  "previous_score": 74,
  "current_score": 61,
  "delta": -13,
  "message": "Overall score dropped by 13 points (74 → 61)",
  "scanned_at": "2026-03-29T08:00:00.000Z"
}

Respond with any 2xx status to acknowledge. Failed deliveries are not retried.

GEO & AI Visibility API

The GEO API gives programmatic access to COVEN's Generative Engine Optimisation scoring — checking how well any monitored site is structured for AI citation, tracking canonical prompt visibility, and calculating competitive share of voice.

Growth or Agency tier required for monitored site endpoints. The free tools (/api/tools/llmstxt and /api/tools/citability) are public — no auth needed.

Run GEO Signal Check

Runs a fresh 6-signal GEO check and returns a score from 0–85 with an A–F grade. Checks AI crawler access, llms.txt quality, schema coverage, citability signals, IndexNow, and HTTPS.

GET /api/v1/geo/sites/{site_id}/check
Runs and stores a fresh GEO check. Returns full signal breakdown with fix recommendations.
curl https://coven-mission-control-production.up.railway.app/api/v1/geo/sites/1/check \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "url": "https://yoursite.com",
  "overallScore": 84,
  "maxScore": 85,
  "grade": "A",
  "summary": "Strong GEO profile — 6/6 signals passing.",
  "signals": [
    { "id": "crawlers", "name": "AI Crawler Access", "status": "pass",
      "score": 20, "maxScore": 20,
      "detail": "GPTBot, ClaudeBot, and PerplexityBot can crawl this site." },
    { "id": "llmstxt", "name": "llms.txt", "status": "pass",
      "score": 15, "maxScore": 15,
      "detail": "Found and well-formed (~366 tokens). Has H1, summary, and links." },
    { "id": "schema", "name": "Schema Markup", "status": "warn",
      "score": 14, "maxScore": 15,
      "detail": "FAQPage, Organization, WebSite, HowTo, Article present.",
      "fix": "Add BreadcrumbList schema for full coverage." }
  ]
}
GET /api/v1/geo/sites/{site_id}/history
Returns the last 20 GEO check scores as a trend array for charting.
GET /api/v1/geo/sites/{site_id}/latest
Returns the most recent stored GEO check result without running a new check.

Citability Scorer

LLM-powered passage-level analysis based on the Princeton GEO paper rubric. Five weighted dimensions scored 0–100, with specific recommendations for improving AI citation rate.

30%
Answer Block Quality
25%
Self-Containment
20%
Structural Readability
15%
Statistical Density
10%
Uniqueness Signals
GET /api/v1/geo/sites/{site_id}/citability
Runs LLM-powered citability scoring. Growth/Agency only. Takes ~10–15 seconds.
curl https://coven-mission-control-production.up.railway.app/api/v1/geo/sites/1/citability \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "url": "https://yoursite.com",
  "overall": 71,
  "grade": "B",
  "summary": "Strong statistical density but lacks original research signals.",
  "dimensions": {
    "answerBlockQuality": 72, "selfContainment": 68,
    "structuralReadability": 78, "statisticalDensity": 85, "uniquenessSignals": 45
  },
  "recommendations": [
    "Add expert credentials or author bylines to establish E-E-A-T signals",
    "Include original research or proprietary data to boost uniqueness",
    "Ensure key passages are 134–167 words — optimal range for AI citation"
  ],
  "optimalWordCount": true
}

AI Visibility Tracker

Tests canonical prompts against AI search engines and records whether the site is cited. Runs automatically every Sunday for Growth/Agency subscribers.

POST /api/v1/geo/sites/{site_id}/visibility/run
Triggers an immediate visibility check across all canonical prompts for a site.
curl -X POST https://coven-mission-control-production.up.railway.app/api/v1/geo/sites/1/visibility/run \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "platform": "perplexity_heuristic",
  "citedCount": 0, "totalPrompts": 5, "citationRate": 0,
  "results": [
    { "promptId": 1, "label": "SEO audit tool — UK SMB", "cited": false }
  ]
}
GET /api/v1/geo/sites/{site_id}/visibility
Returns citation summary and recent check history.

Competitive Share of Voice

Compares your site's AI citation rate against tracked competitor sites across the same canonical prompts — showing your rank, gap to the leader, and a per-prompt breakdown.

GET /api/v1/geo/sites/{site_id}/geo-sov
Returns SOV report comparing own site vs all tracked competitors.
{
  "ownSite": { "citationRate": 0, "geoGrade": "A" },
  "competitors": [{ "url": "https://competitor.com", "citationRate": 0 }],
  "yourRank": 1, "gapToLeader": 0,
  "promptBreakdown": [
    { "label": "Best SEO audit tool UK",
      "results": [{ "url": "yoursite.com", "isOwn": true, "cited": false }] }
  ]
}
POST /api/v1/geo/sites/{site_id}/geo-sov/run
Triggers GEO + visibility checks on all competitor sites (async). Check /geo-sov a few minutes later for results.

Canonical Prompts

Canonical prompts are the buyer questions COVEN tests during visibility checks. Growth: up to 10 prompts. Agency: up to 20.

POST /api/v1/geo/prompts
Add a canonical prompt.
curl -X POST https://coven-mission-control-production.up.railway.app/api/v1/geo/prompts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "prompt": "Best SEO audit tool for small businesses UK?", "label": "SEO audit — UK SMB" }'
POST /api/v1/geo/sites/{site_id}/seed-prompts
Seeds 5 default prompts from the site's domain. Safe to call multiple times.
GET /api/v1/geo/prompts
List all canonical prompts for this subscription.
DELETE /api/v1/geo/prompts/{id}
Remove a canonical prompt.

Free GEO Tools

Public endpoints — no API key required. Rate limits: 5 requests/IP/hour (llmstxt), 3/hour (citability).

POST /api/tools/llmstxt
Generate an llms.txt for any URL. Also available as a browser tool at covenai.io/llms-generator.
curl -X POST https://coven-mission-control-production.up.railway.app/api/tools/llmstxt \
  -H "Content-Type: application/json" -d '{ "url": "yoursite.com" }'
POST /api/tools/citability
Score any URL for AI citability. Full 5-dimension analysis with recommendations.
curl -X POST https://coven-mission-control-production.up.railway.app/api/tools/citability \
  -H "Content-Type: application/json" -d '{ "url": "yoursite.com" }'

Agency Reselling

The Agency plan is designed for digital agencies and AI agents that manage multiple clients. You subscribe once, use your API key to register and monitor client sites, and receive webhook alerts — all under your own brand.

Sites
10
own + competitor URLs
Cadence
Daily
scans every 24 hours
History
180d
scan history retained

At £59/month, an Agency plan monitoring 10 client sites costs £5.90 per client per month. Each client gets daily AI scanning across 7 dimensions — positioning COVEN as a premium monitoring layer you can build into any retainer.

Agency Workflow

A typical agency integration looks like this:

1
Subscribe on the Agency plan

Your API key is emailed immediately on checkout. Use it for all client registrations.

2
Register client sites via API

One API call per client. Optionally include a webhook_url to receive alerts in your own system.

3
Add competitor URLs for each client

Track what the competition is doing. Use /monitor/compare/:siteId to show side-by-side scores in your own reports.

4
Surface alerts in your own tooling

Webhook payloads contain full score diffs. Route them into Slack, email, your CRM, or your own client dashboard.

5
Share status pages with clients

Each subscription gets a public status URL at covenai.io/status/[token] — shareable with clients, no login needed.

Example: Register a client site

curl -X POST https://api.covenai.io/api/v1/monitor/sites \
  -H "Authorization: Bearer coven_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://clientsite.com",
    "label": "Acme Corp",
    "webhook_url": "https://yourplatform.com/webhooks/coven"
  }'

White-label

COVEN webhook payloads contain no COVEN branding — just structured JSON with scores, diffs, and metadata. Your clients don't need to know the intelligence layer is powered by COVEN AI unless you want them to.

The status page at covenai.io/status/[token] does carry COVEN branding. If you need fully white-labelled status pages, contact us at [email protected] — this is on the roadmap for Agency+ tier.

AI agent compatible — COVEN is listed in the AI agent marketplace and supports the MCP protocol. AI agents can discover, subscribe to, and query monitoring data natively. See the MCP Server section.

Pricing comparison

Scenario Cost Per client
Agency plan — 10 clients £59/mo £5.90/mo
Growth plan — 5 clients £29/mo £5.80/mo
Typical agency retainer for equivalent monitoring £50–200/mo

Ready to start? Subscribe to the Agency plan →

MCP Server

The Model Context Protocol (MCP) is an open standard that lets AI agents discover and call external tools natively. COVEN is available as an MCP server, making it natively callable by Claude, GPT-4o, and any other MCP-compatible AI agent.

MCP Endpoint

MCP Server URL https://api.covenai.io/mcp

Discovery Files

https://covenai.io/.well-known/agent.json https://covenai.io/.well-known/mcp.json

Available Tools

Tool NameDescriptionAuth Required
scan_website Scan any URL across 7 dimensions Any tier
list_audit_products List all 7 audit products with prices Any tier
place_audit_order Order a full AI audit report Pro / Agent tier
get_audit_status Poll an existing audit order Any tier

Configure in Claude Desktop

{ "mcpServers": { "coven-ai": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-fetch"], "env": { "MCP_SERVER_URL": "https://api.covenai.io/mcp", "AUTHORIZATION": "Bearer coven_live_your_key_here" } } } }
Or simply point any MCP client at the endpoint — COVEN's tools/list response is fully spec-compliant.

API Tiers

TierRate LimitEndpointsBest For
Free 20 calls/hour Scan only Testing, evaluation
Pro 100 calls/hour Scan + Audit orders Production integrations
Agent 500 calls/hour All endpoints + webhooks AI agents, high-volume
Get your API key → Open Mission Control

Rate Limits

Rate limits are enforced per API key on a rolling hourly window. When you exceed your tier's limit, the API returns 429 Too Many Requests. Back off and retry after the window resets.

Rate limit headers are included in every response:

X-RateLimit-Limit: 100 X-RateLimit-Remaining: 87 X-RateLimit-Reset: 1711497600

Error Reference

HTTP Status Codes

StatusMeaning
200Success
400Bad request — check parameters
401Unauthorized — missing or invalid API key
403Forbidden — tier too low for this endpoint
429Rate limit exceeded — back off and retry
500Server error — check status page

JSON-RPC Error Codes (MCP)

CodeMeaning
-32001Unauthorized — valid API key required
-32002Forbidden — pro/agent tier required
-32602Invalid params — check tool arguments