The search model

Search is one endpoint, GET /v1/cve, with a free-text query and a stack of optional filters. The browser Browse page and vuln search are two front-ends over the same parameters.

Free text

The positional query matches CVE summaries, reference tags, and mapped weakness ids:

vuln search "remote code execution"
vuln search log4j

Leave it empty to filter the whole corpus by the axes below.

The filter axes

FilterCLI flagMeaning
KEV--kev / --no-kevOn / off CISA’s Known Exploited list.
CVSS--min-cvss 9.0Minimum base score (v3.1, falling back to v4.0).
Severity--min-severity highMinimum qualitative severity.
EPSS--min-epss 0.5Minimum exploit-prediction score.
Weakness--cwe CWE-79,CWE-89Maps to any listed CWE.
Vendor--vendor apache,opensslAffects any listed vendor.
Product--product log4jAffects any listed product.
Exploit--has-exploit / --no-exploitHas (or lacks) a reference tagged as an exploit.
Date--published-after 2024-01-01Published on or after a date.

Comma-separated values inside one axis are OR’d together (--cwe CWE-79,CWE-89 = either weakness).

AND vs OR across axes

By default the axes combine with AND — every condition must hold. Pass --or to combine them with OR instead, widening the net:

# CVEs that are KEV-listed AND CVSS ≥ 9
vuln search --kev --min-cvss 9

# CVEs that are KEV-listed OR CVSS ≥ 9
vuln search --kev --min-cvss 9 --or

Paging

Results are paged; --limit sets the page size and is clamped server-side to 500. The same q and filter parameters map one-to-one onto the HTTP query string — see the HTTP API.