Public API

Create an API key from your dashboard, then run scans programmatically.

Authentication

Pass your key as a bearer token on every request:

Authorization: Bearer vsk_...

POST /api/v1/scans

Enqueues a scan for the given URL. Returns immediately with a scan id.

curl -X POST https://visiscan.app/api/v1/scans \
  -H "Authorization: Bearer vsk_..." \
  -H "content-type: application/json" \
  -d '{"url":"https://example.com"}'

# 202 Accepted
{"scanId":"cxyz123...","deduped":false}

GET /api/v1/scans/:id

Polls a scan's status and returns the report once complete.

curl https://visiscan.app/api/v1/scans/cxyz123... \
  -H "Authorization: Bearer vsk_..."

# while running
{"scanId":"cxyz123...","status":"QUESTIONING","emailRequired":false}

# once complete
{"scanId":"cxyz123...","status":"COMPLETE","emailRequired":false,"report":{...}}

Quota

Each key has a monthly scan quota (visible on your dashboard). Requests past quota return429.