V3 API Overview

All available v3 API resources

Overview

VulnCheck API endpoints are optimized for programmatic access and deliver JSON machine-readable data.

VulnCheck indices can be accessed using either the backup endpoint, which provides a complete copy of the index for download, or the index endpoint, which provides a paginated list of documents and can be used to query individual records.

A list of the 'index' and 'backup' API endpoints that you have access to, can be found in the VulnCheck API Sandbox located in the VulnCheck dashboard.

First Steps

  1. Sign up for a VulnCheck Account. This will give you immediate access to our community resources.
  2. Log into the VulnCheck Dashboard.
  3. Click on the API Sandbox to explore the VulnCheck indexes that you have permission to access.
  4. Generate a token for programmatic API access.

API Details

All API methods use https://api.vulncheck.com/ for the base URL.

MethodNameDescription
GET/v3/backupReturn a list of backups with endpoint links
GET/v3/backup/{index}Request a link to the backup of an index
GET/v3/cpeRequest vulnerabilities related to a CPE
GET/v3/indexReturn a list of indexes with endpoint links
GET/v3/index/{index}Retrieve a paginated list of documents from the index of your choice
GET/v3/openapiRetrieve the current OpenAPI Specification (OAS)
GET/v3/pdns/{filter}Return a list of newline-separated (or JSON) hostnames based on a hostname list for Protective DNS
GET/v3/purlRequest vulnerabilities related to a PURL
GET/v3/rules/initial-access/{rules}Request Initial Access Intelligence Suricata or Snort rules
GET/v3/search/cpeRequest vulnerabilities by CPE Part, Vendor, Product, and/or Version
GET/v3/tags/{filter}Return a list of newline-separated (or JSON) IP addresses based on a IP tag

Error Handling

The VulnCheck API uses standard HTTP status codes to indicate the success or failure of requests. Most client errors return a 400 status code, particularly for requests to indexes that don't exist or for invalid parameters.

All error responses follow a consistent JSON structure:

{
  "error": true,
  "errors": [
    "failed to query requested index"
  ]
}

Common Error Scenarios:

  • 400 Bad Request: Invalid parameters, malformed requests, or requests for non-existent indexes
  • 401 Unauthorized: Invalid or missing authentication token
  • 402 Payment Required: Subscription required to view requested data
  • 403 Forbidden: Valid authentication but insufficient permissions for the requested resource
  • 429 Too Many Requests: Rate limiting exceeded
  • 500 Internal Server Error: Server-side errors

Rate Limiting

Community user API requests are limited to 1,000 requests per minute. When this limit is exceeded, the API will return a 429 "Too Many Requests" status code.

To avoid rate limiting, consider:

  • Implementing exponential backoff in your application
  • Caching API responses when appropriate
  • Upgrading to a paid plan for higher rate limits

API Example Request

curl --request GET \
    --url https://api.vulncheck.com/v3/backup/vulncheck-kev \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer insert_token_here'

API Date Format

VulnCheck utilizes RFC3339Nano formatted dates across our datasets. This format has the peculiarity of removing trailing zeros from the seconds field, leading to slightly inconsistent timestamps. For example, both of the following are valid RFC3339Nano timestamps:

2024-02-14T16:15:00Z
2024-02-23T10:38:41.361178Z

Although they appear inconsistent, they are both valid and parsable RFC3339Nano date formats.