Skip to main content

SEO audit API

REST · MCP · JSON

Run site audits from your own code

Start a website audit with one request — 17 modules across technical SEO, content, performance, schema and AI visibility — and get back scores, every issue with its fix, and AI crawler status as JSON.

Included with Agency+. Create keys under Dashboard → API. Ask about access

Start an audit
curl -X POST https://siteauditscore.com/api/v1/audits \
  -H "Authorization: Bearer $SAS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "example.com", "pages": 1}'
Response
HTTP/1.1 202 Accepted
Location: /api/v1/audits/cm3x8k2q40001

{
  "id": "cm3x8k2q40001",
  "object": "audit",
  "url": "https://example.com/",
  "status": "running",
  "overallScore": null,
  …
}

01What teams build with it

An SEO audit API for real workflows

Catch SEO regressions in CI

Audit preview deployments and fail the build when a page turns noindex, loses its canonical or drops structured data.

Client reporting at scale

Pull scores and issues into your own dashboards, proposals or white-label reports instead of exporting by hand.

Portfolio monitoring

Schedule audits across many sites and alert on drift — every API audit is also saved to your dashboard.

Lead qualification

Score prospect websites before a sales call and lead with the three fixes that matter most to them.

02MCP server

Let your AI agent audit and fix the site

Connect Claude Code, Cursor, Codex or any MCP client to the Site Audit Score MCP server. Ask it to audit your deployed site, and it reads every issue with its code fix and applies the fixes in your repo.

Connection

Streamable HTTP at https://siteauditscore.com/api/mcp, authenticated with the same API key as the REST API: Authorization: Bearer sas_…. MCP audits cost the same 2 credits per page and are saved to your dashboard.

Tools

  • audit_website

    Audit a URL (1–10 pages). Waits up to 45 seconds, then hands back the id if the audit is still running.

  • get_audit

    Status and the full report: scores, issues with code fixes, AI crawler access. Filter by min_severity.

  • list_audits

    Recent audits on the account, from the dashboard and the API, with scores.

  • get_account

    Plan, remaining credits and audit limits.

Try it

“Audit https://staging.example.com/pricing with Site Audit Score and fix every high or critical issue in this repo.”

Claude Code
claude mcp add --transport http siteauditscore https://siteauditscore.com/api/mcp \
  --header "Authorization: Bearer $SAS_API_KEY"
Cursor — ~/.cursor/mcp.json
{
  "mcpServers": {
    "siteauditscore": {
      "url": "https://siteauditscore.com/api/mcp",
      "headers": { "Authorization": "Bearer sas_your_key" }
    }
  }
}
Codex — ~/.codex/config.toml
[mcp_servers.siteauditscore]
url = "https://siteauditscore.com/api/mcp"
bearer_token_env_var = "SAS_API_KEY"

03Reference

Website audit API reference

Authentication

Create a key in your dashboard under API and send it as a bearer token on every request: Authorization: Bearer sas_…. Keys are shown once; revoke them any time. The base URL is https://siteauditscore.com/api/v1.

Endpoints

  • POST/api/v1/audits

    Start an audit. Returns 202 with the audit id, or 200 with the full result when wait is true.

  • GET/api/v1/audits/{id}

    Get an audit's status, and the full report once status is completed.

  • GET/api/v1/audits?limit=20

    List your most recent audits (1–100), newest first.

  • POST/api/mcp

    MCP server (Streamable HTTP) for AI agents. Same key, same credits — see MCP server above.

Request body

  • urlstring· required

    Any public URL. https:// is added if missing.

  • pagesinteger· 1–10, default 1

    1 audits exactly that URL. More crawls internal links and the sitemap from it.

  • waitboolean· default false

    Block until the audit finishes. Best for single pages; poll for larger audits.

Limits & credits

Price
2 credits per page audited, from your plan's monthly credits
Pages per audit
1–10
Audits started
30 per key every 10 minutes
Running at once
3 per account
Keys
Up to 10 active keys per account
GET /api/v1/audits/{id} — completed
{
  "id": "cm3x8k2q40001",
  "object": "audit",
  "url": "https://example.com/",
  "status": "completed",
  "overallScore": 84,
  "createdAt": "2026-10-21T09:12:04.000Z",
  "completedAt": "2026-10-21T09:12:31.000Z",
  "error": null,
  "pagesAudited": 1,
  "issueCounts": { "critical": 1, "high": 4, "medium": 15, "low": 6, "total": 26 },
  "categories": [
    { "id": "technical", "label": "Technical & indexing", "score": 89 },
    { "id": "ai", "label": "AI search readiness", "score": 92 }
  ],
  "modules": [
    { "module": "indexability", "name": "Indexability", "score": 92, "issues": 1 }
  ],
  "issues": [
    {
      "id": "images-hero-lazy",
      "module": "images",
      "moduleName": "Image audit",
      "severity": "high",
      "title": "Hero/LCP image is lazy-loaded",
      "description": "…",
      "recommendation": "Remove loading=\"lazy\" and add fetchpriority=\"high\".",
      "impact": "…",
      "url": "https://example.com/",
      "affectedPages": [],
      "affectedItems": [],
      "codeSnippet": { "language": "html", "label": "…", "code": "<img … fetchpriority=\"high\">" },
      "learnMoreUrl": null
    }
  ],
  "aiCrawlers": { "OAI-SearchBot": "allowed", "GPTBot": "blocked" }
}

Errors

Every error uses the same shape: { "error": { "code", "message" } }

400invalid_body · missing_url · invalid_pages · invalid_urlFix the request — the message says what's wrong.
401missing_api_key · invalid_api_keySend a valid, unrevoked key as a Bearer token.
402insufficient_creditsYour balance is below 2 credits.
403plan_requiredThe account's plan doesn't include API access.
404not_foundNo audit with that id on your account.
429rate_limited · too_many_runningBack off and retry after the Retry-After header.

04FAQ

SEO audit API questions

Still unsure? Email contact@siteauditscore.com and you'll hear back from the person who built it.

Is there a free SEO audit API?

API keys come with the Agency+ plan. If you only need a few reports, the website audit on our homepage is free and needs no key. For API access before Agency+ is generally available, email contact@siteauditscore.com with your use case.

What does the site audit API return?

JSON with the overall weighted score, scores for each category and each of the 17 core modules (PageSpeed Insights runs only in the dashboard), every issue with severity, description, recommendation, code fix and affected URLs, and the allow/block status of 12 AI crawlers in your robots.txt.

How is API usage priced?

Each audited page costs 2 credits from your plan's monthly credits — the same rate as scanning a new page in the dashboard. A single-page audit costs 2 credits; a 10-page crawl costs up to 20.

How long does an API audit take?

Most single-page audits finish in 10–40 seconds. Use "wait": true for single pages, or start the audit and poll GET /api/v1/audits/{id} every few seconds until the status is completed.

Can AI agents like Claude Code or Cursor run audits?

Yes. Connect the MCP server at https://siteauditscore.com/api/mcp with your API key, and Claude Code, Cursor, Codex or any MCP client can audit a page, read every issue with its code fix and apply the fixes in your repo. MCP audits use the same credits as the REST API.

Do API audits show up in my dashboard?

Yes. Every audit started through the API is saved under that website in your dashboard, where you can browse issues, export CSV or PDF, and re-check single modules.

Your first audit is one request away

Create a key in the dashboard and run the curl above. Results land in your dashboard too.

Ask about access