API Reference
Scanverra REST API - available on Pro, Team & Enterprise plans
Integrate Scanverra's audit, security, browser, and repo scanning tools into your CI/CD pipelines, dashboards, and internal tooling. All endpoints accept JSON and return JSON. Results are identical to what you see in the UI.
Base URL
https://www.scanverra.comDon't have an API key? Generate one in your API Keys settings →
Authentication
Pass your API key on every request using one of the two supported methods.
X-API-Key (recommended)
Survives HTTP redirects. Always use this header.
X-API-Key: sk_live_...
Authorization: Bearer
May be stripped on www-redirect. Use --location-trusted with curl.
Authorization: Bearer sk_live_...
Redirect note: scanverra.com redirects to www.scanverra.com with HTTP 308. Some clients (including curl by default) strip the Authorization header when following cross-domain redirects. Always use the X-API-Key header, or target www.scanverra.com directly.
Endpoints
All endpoints accept POST with a JSON body and Content-Type: application/json.
/api/auditsynchronousWebsite Audit - Performance scores, SEO issues, and AI recommendations
Request body
{
"url": "https://example.com"
}Response
{
"reportId": "clxyz...",
"scores": {
"performance": 91,
"seo": 87,
"accessibility": 100,
"bestPractices": 95
},
"issues": [...],
"fixes": [...],
"aiSummary": "..."
}Example
curl -X POST https://www.scanverra.com/api/audit \
-H "X-API-Key: sk_live_..." \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'/api/security-scansynchronousSecurity Scan - headers, SSL, risk score, exposed files
Request body
{
"url": "https://example.com"
}Response
{
"scanId": "clxyz...",
"riskScore": 72,
"findings": [...],
"headers": {...},
"sslInfo": {...},
"suggestions": [...],
"aiSummary": "..."
}Example
curl -X POST https://www.scanverra.com/api/security-scan \
-H "X-API-Key: sk_live_..." \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'/api/browser-testsynchronousBrowser Test - JS errors, broken links, form issues, screenshots
Request body
{
"url": "https://example.com"
}Response
{
"testId": "clxyz...",
"pagesVisited": 3,
"jsErrors": [...],
"brokenLinks": [...],
"formIssues": [...],
"suggestions": [...],
"aiSummary": "..."
}Example
curl -X POST https://www.scanverra.com/api/browser-test \
-H "X-API-Key: sk_live_..." \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'/api/repo/scanasyncRepo Scanner - code quality, security issues, AI fixes (GitHub)
Repo scans run asynchronously and return only a scanId immediately. View results at https://www.scanverra.com/repo?scan={scanId} or poll the dashboard. Your GitHub account must be connected in Scanverra settings.
Request body
{
"owner": "your-org",
"repo": "your-repo",
"branch": "main"
}Response (immediate)
{
"scanId": "clxyz..."
}Example
curl -X POST https://www.scanverra.com/api/repo/scan \
-H "X-API-Key: sk_live_..." \
-H "Content-Type: application/json" \
-d '{"owner":"acme","repo":"website","branch":"main"}'Error Codes
All error responses include an error string in the JSON body.
| Status | Meaning |
|---|---|
| 400 | Bad request - missing or invalid input |
| 401 | Unauthorized - missing or invalid API key |
| 402 | Payment required - quota exceeded |
| 500 | Server error - scan failed internally |
Limits & Behavior
API keys per account
10 max
Scan history retention
Unlimited for API key users
Quota checks
Bypassed for API key (enterprise) users
Usage tracking
Per-key call counter in your API Keys settings
Ready to integrate?
Generate an API key and run your first programmatic scan in under 2 minutes.
