API v1 · Agency

DeepSEOAnalysis API for programmatic SEO + AI-visibility audits.

Submit public URLs from your app, queue the same audit pipeline used by the website, and fetch status or a compact JSON result for client portals and agency workflows.

Authentication

How do you authenticate with the API?

Create a key in your account, store it in your secret manager, and send it with every API request. Do not send browser session cookies to v1 routes.

Authorization: Bearer dsa_live_YOUR_KEY

Limits

10,000 requests/month.

Agency keys are also burst-limited to 60 requests per minute per key. Quota errors return JSON with error and code.

  • X-RateLimit-Limit monthly request limit
  • X-RateLimit-Remaining requests left this month
  • X-RateLimit-Reset next UTC month as Unix seconds

Endpoints

What are the two API endpoints?

POST /api/v1/audits

Queue an audit

Body: { "url": "https://example.com" }. The URL must be public; localhost, private IPs, and internal domains are blocked.

curl -X POST https://deepseoanalysis.com/api/v1/audits \
  -H "Authorization: Bearer dsa_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com"}'
{
  "id": 123,
  "slug": "AbC123_xYz90",
  "status": "queued",
  "links": { "self": "https://deepseoanalysis.com/api/v1/audits/AbC123_xYz90" }
}

GET /api/v1/audits/{slug}

Fetch status or result

Queued and running audits return only status. Done audits include a compact result: URL, scan time, scores, summary, and issue rows.

curl https://deepseoanalysis.com/api/v1/audits/AbC123_xYz90 \
  -H "Authorization: Bearer dsa_live_YOUR_KEY"
{
  "status": "done",
  "result": {
    "url": "https://example.com/",
    "scannedAt": "2026-07-05T12:00:00.000Z",
    "scores": { "overall": 82, "categories": {}, "geoVisibility": 71 },
    "summary": { "pagesCrawled": 24, "checksRun": 110, "passed": 94, "failed": 16 },
    "issues": [
      { "checkId": "onpage-meta-description-missing", "category": "onpage", "severity": "warning", "passed": false, "details": "3 pages have no meta description." }
    ]
  }
}

MCP · Pro & Agency

How do you connect Claude, Cursor, and other AI clients?

The Model Context Protocol server exposes the same audit engine as tools your AI can call directly. Authenticate with any API key — Pro and Agency both include MCP.

Endpoint

Streamable HTTP, bearer auth

https://deepseoanalysis.com/api/mcp

Stateless JSON transport. Send your key as Authorization: Bearer dsa_live_.... Clients without native header auth (e.g. Claude Desktop) use the mcp-remote bridge:

{
  "mcpServers": {
    "deepseoanalysis": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://deepseoanalysis.com/api/mcp",
        "--header",
        "Authorization: Bearer dsa_live_YOUR_KEY"
      ]
    }
  }
}

Tools

Seven tools

  • seo_run_audit — queue a full-site audit for a URL, returns a slug
  • seo_audit_page — quick single-page check (no crawl, finishes in seconds)
  • seo_get_audit — poll status, then fetch summary, issues, or full (detailed views are paginated)
  • seo_list_audits — recent audits for the account
  • seo_list_monitored_sites — monitored sites with latest scores + a siteId
  • seo_rank_history — keyword ranking history (Pro & Agency)
  • seo_ai_visibility_history — weekly AI-visibility score history (Pro & Agency)

MCP shares the monthly quota and 60/min burst limit. Starting an audit spends monthly quota once; status polls, completed-report pages, and other read tools are free.

Prompts: full_seo_review, quick_page_check, and ai_visibility_review give clients one-click guided workflows that chain these tools.

Get your endpoint & config →

FAQ

API questions agencies ask first.

Who can use the DeepSEOAnalysis API?

The raw REST API (api/v1) is included on the Agency plan. The MCP server for AI clients is included on both Pro and Agency. Free accounts can read these docs, but keys only work once the owning account has the matching entitlement.

How are API keys stored?

The full API key is shown once when you create it. DeepSEOAnalysis stores only a short prefix and a scrypt hash of the full key.

What are the API limits?

Agency API keys share a 10,000 request monthly quota and each key is burst-limited to 60 requests per minute. Responses include X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers.

Can API users access public or anonymous reports?

The API only returns audits owned by the API key user. Audits submitted through the API are associated with that user account.