Developers
API documentation
REST API for triggering scans, fetching results, managing clients. Bearer-token auth, JSON in/out, standard HTTP codes.
Authentication
Bearer token in the Authorization header. Get yours from Settings → API.
Base URL
https://api.slapmyweb.comRate limits
10 scans/day on Free, 200 on Pro, 2,000 on Agency. Other endpoints: 100 req/min.
Quickstart
curl
curl -X POST https://api.slapmyweb.com/api/v1/scan \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}'
# Response
{
"success": true,
"data": {
"scanId": "01H2W3X4...",
"cached": false
}
}Core endpoints
POST
/api/v1/scanTrigger a scan
Queue a new audit. Returns scanId immediately, runs in background.
Body
{ "url": "https://example.com" }Response
{ "scanId": "uuid", "cached": false }GET
/api/v1/scan/:id/statusPoll scan status
Get the current progress, step, and roast for a running scan.
Response
{ "status": "running", "progress": 47, "step": "performance", "roast": "..." }GET
/api/v1/scan/:id/streamStream scan progress (SSE)
Server-Sent Events stream with sub-200ms updates per agent.
Response
event: status\ndata: {...}GET
/api/v1/results/:idFetch scan results
Returns the full ScanRecord with all 16 module payloads, scores, AI verdict.
Response
{ "id": "uuid", "overallScore": 87, "agentResults": {...} }POST
/api/v1/results/:id/shareIssue public share token
Generate a public read-only link to a scan result.
Response
{ "token": "abc...", "url": "/share/abc..." }GET
/api/v1/user/scansList your scans
Paginated, filterable scan history. Supports q, status, dates, sort.
Response
{ "items": [...], "total": 142, "page": 1, "pageSize": 20 }Read the docs.
Then trigger a scan.
The quickest way to understand the response shape is to run one in the browser first.
Run a free auditFree foreverNo signupLive scan progress