API Reference

Integrate RiskScore into your pipelines, agents, and tools.

Authentication

Get an API key by registering: POST https://api.riskscore.dev/v1/auth/register

Pass your key as X-API-Key: rsk_your_key on all requests.

curl -X POST https://api.riskscore.dev/v1/auth/register \
  -H "Content-Type: application/json" \
  -d '{"email": "[email protected]", "password": "yourpassword"}'

Endpoints

GET/v1/cve/{cve_id}

Get risk score for a single CVE. Optional ?explain=true for score breakdown.

curl https://api.riskscore.dev/v1/cve/CVE-2021-44228 \
  -H "X-API-Key: rsk_your_key"
POST/v1/cve/bulk

Score up to 10 CVEs at once (free tier), 500 on Pro.

curl -X POST https://api.riskscore.dev/v1/cve/bulk \
  -H "X-API-Key: rsk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"cve_ids": ["CVE-2021-44228", "CVE-2023-44487"]}'
GET/v1/cve/search

Search CVEs by keyword. Params: ?keyword=log4j&limit=10

curl "https://api.riskscore.dev/v1/cve/search?keyword=log4j" \
  -H "X-API-Key: rsk_your_key"
GET/v1/stats

Global stats: total CVEs, KEV count, avg risk score.

curl https://api.riskscore.dev/v1/stats \
  -H "X-API-Key: rsk_your_key"
GET/v1/rate-limit/status

Check your current usage and limits.

curl https://api.riskscore.dev/v1/rate-limit/status \
  -H "X-API-Key: rsk_your_key"

Response Format

Sample response for GET /v1/cve/CVE-2021-44228

{
  "cve_id": "CVE-2021-44228",
  "risk_score": 98,
  "risk_severity": "CRITICAL",
  "cvss_score": 10.0,
  "epss_score": 0.9754,
  "epss_percentile": 0.9997,
  "in_kev": true,
  "description": "Apache Log4j2 2.0-beta9 through 2.14.1 JNDI features used in configuration, log messages, and parameters do not protect against attacker controlled LDAP and other JNDI related endpoints."
}

Rate Limits

PlanRequests / dayRequests / min
Free1005
Basic1,00030
Pro10,000120

Watchlist

Basic+

Track specific CVEs over time. The API returns the current risk score alongside the previous score and delta โ€” so you know exactly when a vulnerability gets worse.

POST/v1/watchlist
curl -X POST https://api.riskscore.dev/v1/watchlist \
  -H "X-API-Key: rsk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"cve_id": "CVE-2021-44228"}'
GET/v1/watchlist
curl https://api.riskscore.dev/v1/watchlist \
  -H "X-API-Key: rsk_your_key"

๐Ÿ‘ Watchlist requires Basic or Pro

Free plan: 10 CVEs max. Basic: 50 CVEs. Pro: unlimited.

Upgrade โ€” from $9.99/mo โ†’

Webhooks

Pro only

Receive real-time HTTP alerts when CVEs are added to CISA KEV. Payloads are HMAC-signed so you can verify authenticity. Works with Slack, PagerDuty, or any HTTPS endpoint.

POST/v1/webhooks
curl -X POST https://api.riskscore.dev/v1/webhooks \
  -H "X-API-Key: rsk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://your-server.com/hooks/kev", "event_types": ["cve.kev_added"]}'
POST/v1/webhooks/{id}/test
curl -X POST https://api.riskscore.dev/v1/webhooks/1/test \
  -H "X-API-Key: rsk_your_key"

๐Ÿ”” Webhooks require a Pro plan

Real-time KEV alerts, up to 5 webhook endpoints, HMAC-signed payloads.

Unlock webhooks โ€” $29.99/mo โ†’

Full OpenAPI spec available at https://api.riskscore.dev/docs