Catch SEO regressions in CI
Audit preview deployments and fail the build when a page turns noindex, loses its canonical or drops structured data.
SEO audit API
REST · MCP · JSONStart 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
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}'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
Audit preview deployments and fail the build when a page turns noindex, loses its canonical or drops structured data.
Pull scores and issues into your own dashboards, proposals or white-label reports instead of exporting by hand.
Schedule audits across many sites and alert on drift — every API audit is also saved to your dashboard.
Score prospect websites before a sales call and lead with the three fixes that matter most to them.
02MCP server
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.
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.
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.
“Audit https://staging.example.com/pricing with Site Audit Score and fix every high or critical issue in this repo.”
claude mcp add --transport http siteauditscore https://siteauditscore.com/api/mcp \ --header "Authorization: Bearer $SAS_API_KEY"
{
"mcpServers": {
"siteauditscore": {
"url": "https://siteauditscore.com/api/mcp",
"headers": { "Authorization": "Bearer sas_your_key" }
}
}
}[mcp_servers.siteauditscore] url = "https://siteauditscore.com/api/mcp" bearer_token_env_var = "SAS_API_KEY"
03Reference
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.
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.
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.
{
"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" }
}Every error uses the same shape: { "error": { "code", "message" } }
| 400 | invalid_body · missing_url · invalid_pages · invalid_url | Fix the request — the message says what's wrong. |
| 401 | missing_api_key · invalid_api_key | Send a valid, unrevoked key as a Bearer token. |
| 402 | insufficient_credits | Your balance is below 2 credits. |
| 403 | plan_required | The account's plan doesn't include API access. |
| 404 | not_found | No audit with that id on your account. |
| 429 | rate_limited · too_many_running | Back off and retry after the Retry-After header. |
04FAQ
Still unsure? Email contact@siteauditscore.com and you'll hear back from the person who built it.
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.
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.
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.
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.
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.
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.
Create a key in the dashboard and run the curl above. Results land in your dashboard too.