API Reference
The ScanRook API lets you scan container images, check packages for vulnerabilities, look up CVEs, and schedule recurring scans. Public endpoints require no authentication. Authenticated endpoints use an API key.
Base URL: https://scanrook.io
OpenAPI spec: /api/v1/openapi
Authentication
Authenticated endpoints require a Bearer token. Generate an API key from your dashboard.
1. Go to Dashboard → Settings → API Keys
2. Create a new API key
3. Include it in requests as a Bearer token:
Authorization: Bearer dgk_your_api_key_hereScan Endpoints
/api/v1/scanAuth RequiredStart a vulnerability scan on a Docker/OCI image. Set wait=true to block until results are ready, or receive a job ID immediately.
curl -X POST https://scanrook.io/api/v1/scan \
-H "Authorization: Bearer dgk_your_key" \
-H "Content-Type: application/json" \
-d '{"image": "nginx:1.27"}'curl -X POST https://scanrook.io/api/v1/scan \
-H "Authorization: Bearer dgk_your_key" \
-H "Content-Type: application/json" \
-d '{"image": "nginx:1.27", "wait": true, "mode": "deep"}'Parameters:
image(required) — Docker image reference, e.g.nginx:1.27mode—light(default) ordeepwait—trueto block until scan completes (max 5 min)
Package Check
/api/v1/checkPublicCheck a specific package version for known vulnerabilities via OSV. No authentication required.
curl -X POST https://scanrook.io/api/v1/check \
-H "Content-Type: application/json" \
-d '{"ecosystem": "npm", "name": "lodash", "version": "4.17.20"}'Parameters:
ecosystem(required) — e.g. npm, PyPI, Go, crates.io, Maven, NuGetname(required) — package nameversion— specific version to check (optional)
CVE Lookup
/api/v1/cve/{id}PublicLook up a specific CVE with severity, affected packages, and references. No authentication required.
curl https://scanrook.io/api/v1/cve/CVE-2024-0727Scan Schedules
/api/v1/scheduleAuth RequiredCreate a recurring scan schedule for a container image. Optionally receive results via webhook.
curl -X POST https://scanrook.io/api/v1/schedule \
-H "Authorization: Bearer dgk_your_key" \
-H "Content-Type: application/json" \
-d '{"image": "nginx:1.27", "cron": "0 0 * * *", "webhook_url": "https://example.com/hook"}'/api/v1/scheduleAuth RequiredList all scan schedules for your organization.
curl https://scanrook.io/api/v1/schedule \
-H "Authorization: Bearer dgk_your_key"Public Data Feeds
Public, cacheable feeds for vulnerability intelligence. No authentication required.
/api/feed/latest-cvesPublicRecently discovered CVEs enriched with severity data.
curl https://scanrook.io/api/feed/latest-cves?limit=10limit (max 100), severity (critical, high, medium, low)/api/feed/epss-topPublicCVEs ranked by EPSS exploitation probability.
curl https://scanrook.io/api/feed/epss-top?limit=10Rate Limits
Public endpoints are cached and rate-limited to prevent abuse. Authenticated endpoints are subject to your plan's monthly scan quota.
- Public endpoints: 60 requests/minute per IP
- Authenticated endpoints: subject to plan scan limits (Free: 25/month, Basic: 100/month, Pro: 500/month, Enterprise: unlimited)
- Wait mode scans: hold an HTTP connection for up to 5 minutes