Vulnerawise API Documentation
The Vulnerawise API provides access to vulnerability data filtered by various criteria (e.g., CVE IDs, date ranges, description, feed, etc.) with built-in pagination. This guide will help you download, start, and use the API.
Installation
Ensure that you have downloaded and installed the tool properly. If needed, make sure to include the binary in your system’s $PATH
for easy access.
You can download precompiled binaries for your platform from the Vulnerawise GitHub Releases. Here are examples for several platforms:
Linux (amd64 and arm64)
For Linux (amd64):
|
|
For Linux (arm64):
|
|
macOS (Darwin)
For macOS (amd64):
|
|
For macOS (arm64):
|
|
Windows
For Windows (amd64) and Windows (arm64), download the appropriate binary from the releases page.
Starting the API Server
Once you have downloaded the appropriate binary, you can start the API server with the following command:
|
|
By default, the API runs on port 8080. You can specify a different port using the --port
flag:
|
|
API Endpoints
Health Check
GET /v1/health
Returns the health status of the API.
Search Vulnerabilities
GET /v1/vuln
Query Parameters
Parameter | Type | Description | Example |
---|---|---|---|
cve | string | Comma-separated list of CVE IDs | CVE-2023-1234,CVE-2023-5678 |
published_date_range | string | Date range filter in format YYYY-MM-DD:YYYY-MM-DD | 2023-01-01:2023-01-31 |
published | string | Filter for CVEs published relative to now | last 10 days |
last_modified | string | Filter for CVEs last modified | last 30 days |
maturity | string | Filter by exploit maturity | active,weaponized,poc,none |
severity | string | Filter by severity | high,critical |
exploit_published | string | Filter by exploit published date | last 7 days |
description | string | Filter by description substring | remote code execution |
epss | string | EPSS score filter | >=50 |
kev | boolean | Filter by CISA KEV catalog | true |
ransomware | boolean | Filter by ransomware usage | true |
weaponized | boolean | Filter for vulnerabilities with weaponized exploits | true |
page | integer | Page number for pagination | 1 |
limit | integer | Results per page (max 100) | 50 |
Example Requests
Basic search:
GET /v1/vuln?description=kubernetes&severity=high&limit=10
Search for vulnerabilities in CISA KEV catalog:
GET /v1/vuln?kev=true&published=last%2030%20days
Search for vulnerabilities used in ransomware:
GET /v1/vuln?ransomware=true&severity=critical
Search for weaponized vulnerabilities:
GET /v1/vuln?weaponized=true
Response Format
|
|
Audit Vulnerabilities
Audit Individual CVEs
GET /v1/audit
Audit a specific CVE against security policies.
Query Parameters
Parameter | Type | Description | Example |
---|---|---|---|
cve | string | The CVE ID to evaluate | CVE-2023-1234 |
impact | string | Optional impact level override | high |
exposure | string | Optional exposure level override | open |
Example Request
GET /v1/audit?cve=CVE-2023-4966&impact=high&exposure=open
Response Format
|
|
Upload Scanner Reports
POST /v1/audit
Upload vulnerability scanner output (like Trivy, Grype) for policy evaluation.
Request Format
The request body should contain the raw JSON output from a supported vulnerability scanner.
Example - Uploading Trivy Repository Scan Results
You can pipe Trivy scan results directly to the API:
|
|
Response Format
|
|
The response contains:
violations
: Array of policy violations detected in the scancve_id
: The CVE identifiercomponent
: The affected componentversion
: Current version of the componentfix_version
: Version(s) that fix the vulnerabilityoutcome
: Detailed explanation of the vulnerability and assessmentdecision
: Policy decision (immediate, scheduled, out-of-cycle, defer)policy
: The policy applied for evaluationenforced
: Whether the policy is enforced
timestamp
: When the evaluation was performedpassed_all_policies
: Whether all vulnerabilities passed policy checks
Rate Limiting
The API includes rate limiting to prevent abuse. By default, it has request limits in place.
Error Codes
Status Code | Description |
---|---|
200 | Success |
400 | Bad Request - Invalid parameters |
429 | Too Many Requests - Rate limit exceeded |
500 | Internal Server Error |
Example API Usage
Using curl
|
|
Using Python
|
|