Search CVEs
nvd_search_cvesSearch CVEs by keyword, severity, CWE, date range, or CISA KEV status. The primary discovery tool for vulnerability surveillance and triage workflows. pubDays and lastModDays are convenience shorthands that expand to date pairs; values over 120 days are clamped to the NVD maximum and reported in the response enrichment. Returns brief summaries — call nvd_get_cve for full detail on specific IDs. At least one filter is recommended; omitting all filters returns CVEs in default NVD index order (oldest first by CVE ID).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cweId | No | Filter by CWE weakness ID (e.g., "CWE-79", "NVD-CWE-Other"). | |
| limit | No | Maximum number of results to return (default 20, max 2000). | |
| offset | No | Zero-based page offset for pagination. | |
| kevOnly | No | When true, filters results to CVEs in the CISA Known Exploited Vulnerabilities catalog. | |
| keyword | No | Full-text search across CVE descriptions (AND-semantics across words). | |
| pubDays | No | CVEs published in the last N days (max 120; values over 120 are clamped). Mutually exclusive with pubStartDate/pubEndDate. | |
| severity | No | Filter to CVEs in exactly this CVSS severity band — NVD matches the one band, not a floor. Covering several bands (e.g. HIGH and CRITICAL) takes one call per band. | |
| noRejected | No | When true (default), excludes CVEs with REJECT/Rejected status. | |
| pubEndDate | No | ISO 8601 datetime for publication range end. Both pubStartDate and pubEndDate required together. | |
| exactPhrase | No | When true, keyword matches as an exact phrase rather than ANDing its words independently. Requires keyword. | |
| lastModDays | No | CVEs last modified in the last N days (max 120; values over 120 are clamped). Mutually exclusive with lastModStartDate/lastModEndDate. | |
| pubStartDate | No | ISO 8601 datetime for publication range start. Both pubStartDate and pubEndDate required together. Mutually exclusive with pubDays. | |
| lastModEndDate | No | ISO 8601 datetime for last-modified range end. Both required together. | |
| severityVersion | No | CVSS version to use for the severity filter. Default: v3 (maps to cvssV3Severity). | v3 |
| lastModStartDate | No | ISO 8601 datetime for last-modified range start. Both required together. Mutually exclusive with lastModDays. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cves | No | Matching CVE summaries. Call nvd_get_cve for full detail on specific IDs. | |
| error | No | Present when the call failed. Absent on success. | |
| notice | No | Guidance when no CVEs were returned — distinguishes a query nothing matched from an offset past the result set from an empty page NVD returned inside a range it says has matches — or, on a partial page, the offset that reaches the next one. | |
| offset | No | Page offset used in this query. | |
| returned | No | Number of CVEs returned in this response. | |
| totalCount | No | Total matching CVEs in NVD before pagination. | |
| datesClamped | No | Entries for any pubDays/lastModDays values that exceeded 120 and were auto-clamped. Absent when no clamping occurred. | |
| filtersApplied | No | The non-default filters this query actually applied — the ones that can account for an empty or unexpectedly narrow result set. Absent when the query ran unfiltered, which is itself the answer when a result set is unexpectedly broad. |