Search the CVE catalog with structured filters (keyless)

Three modes. (1) q shaped like a CVE id → exact:true with one row, filters ignored (filters_ignored:true is set). (2) q + filters → full-text rank restricted to the filtered set. (3) Filters only, no q → the /browse slice as JSON, ordered KEV-first then EPSS/CVSS, with page and has_more. Filter semantics: fix=0 means 'computed, and no fix held', rows not yet computed are excluded from both fix=1 and fix=0 (absence semantics). detect covers the four DETECTION-CONTENT engines (Nuclei, Metasploit check, Emerging Threats, Snort), not exploit code. Per-IP rate limited (30/min).

get/api/search

Request

  • Base URL: https://cve-security.com
  • URL: https://cve-security.com/api/search
  • Auth: none declared

Query parameters

qstring

Free text or a CVE id. Optional when at least one filter is present.

vendorstring

Vendor slug (see /api/entities)

cwestring
techniquestring

MITRE ATT&CK technique id, CVEs whose weakness classes map to it (see /attack)

yearstring

Publication year(s), comma-separated

sevstring

Severity band(s), comma-separated: critical|high|medium|low|none

kev'0' | '1'

In CISA KEV

kev_fromstring date

Inclusive lower bound on the CISA KEV listing date (YYYY-MM-DD). Implies kev=1 unless kev is given explicitly.

kev_tostring date

Exclusive upper bound on the CISA KEV listing date (YYYY-MM-DD): the window is [kev_from, kev_to).

kev_vendorstring

CISA's vendorProject for the KEV entry, verbatim and case-sensitive. A different axis from vendor (our CPE/CNA vendor slug).

ransomware'0' | '1'

CISA known-ransomware-campaign flag

detect'0' | '1'

Detection content we track (1) / none we track (0)

fix'0' | '1'

Actionable vendor fix held (1) / computed-and-none-held (0)

automatable'0' | '1'

CISA SSVC Automatable: 1 = yes, 0 = CISA assessed no. A CVE with no CISA assessment held matches neither value.

ti'total' | 'partial'

CISA SSVC Technical impact, for CVEs with a CISA assessment held.

triage_flag'0' | '1'

CISA's forensic triage flag on the KEV entry (BOD 26-04, the catalog's forensicTriage field): 1 = Yes, 0 = No. Both values select KEV entries; a CVE outside KEV carries no flag.

ssvc'0' | '1'

Whether this dataset holds a CISA SSVC assessment (Automatable and Technical impact) for the CVE: 1 = held, 0 = no assessment held, the set where CISA's interim values apply outside KEV.

bod'3df' | '3d' | '14d' | '60d' | 'fsu'

BOD 26-04 Table 1 read at the stated exposure (see exposed): the outcome key Table 1 gives the row's KEV status and CISA's two SSVC values. 3df = three days and forensic triage, 3d = three days, 14d = 14 days, 60d = 60 days, fsu = fix on system upgrade. A mapping at that exposure; an agency's timeline for an asset also needs its own enumeration date. A KEV entry with no CISA values held matches no key; a CVE outside KEV with a value missing reads on CISA's interim value for it (Automatable no, Technical impact total). The per-CVE read is the bod_26_04 object on /api/cve/{id}.

exposed'0' | '1'

The exposure branch for bod: 1 = publicly exposed (the default when bod is set), 0 = internal. Ignored without bod.

ecostring

OSS ecosystem by its OSV name (npm, PyPI, Maven, Go, crates.io and so on), joined through the package mapping. For version ranges use /api/package.

pkgstring

Package key, ecosystem/name (such as npm/lodash or maven/org.apache.logging.log4j:log4j-core), joined through the package mapping.

sighted'7' | '30'

Field sighting window in days: a named sensor network (Shadowserver honeypots per VulnCheck KEV, VulnCheck canary sensors) recorded the CVE within the last 7 or 30 days. Presence per day, apart from the exploitation claims.

malware'0' | '1'

Malware claim: a published source (MITRE ATT&CK, or a Ransomware Vulnerability Matrix row verified against its cited page) ties a named malware family, tool, campaign or ransomware group to the CVE.

watch'0' | '1'

KEV Watch: on the watch list at tier 1 or 2, reported as exploited by trackers other than CISA (VulnCheck KEV, Microsoft, Google Project Zero, ENISA, CIRCL, FortiGuard) while outside CISA KEV. Mirrors /kev-watch.

chained'0' | '1'

1: in a known exploit chain (a cited source reports the CVE was used together with another CVE in one exploit chain); 0: no known chain in our sources.

chainability'0' | '1'

1: on KCV Watch™, the CVE carries at least one chain candidate at tier A or B (a pair whose extracted exploit capabilities connect or whose records tie the two CVEs together); 0: no such candidate we hold. A candidate is not a confirmed chain.

epss_gtenumber
pageinteger

Filter-only mode: page through the slice

limitinteger

Response

{ query, exact, results[], filters?, filters_ignored?, page?, has_more? }, each result carries cve_id, slug, title, severity, epss_score, kev_listed, detection flags, and url (site-relative). filters echoes the active slice in canonical (alphabetical, byte-stable) form.

object required

Changes

No recorded changes to this operation across all 1 revision of this API.