NVD CVE Vulnerability Scraper (CVSS, CWE, CPE)
Scrape CVE vulnerability records from the National Vulnerability Database with description, CVSS score and severity, attack vector, CWE weakness, reference links and affected products (CPE). Search by keyword, CVE ID or published date range. Export to JSON, CSV or Excel.
{ "cveId": "CVE-1999-0236", "published": "1997-01-01T05:00:00.000", "lastModified": "2026-06-16T21:47:58.393", "vulnStatus": "Modified", "description": "ScriptAlias directory in NCSA and Apache httpd…", "cvssV3Score": 7.5, "cvssSeverity": "HIGH", "cvssVersion": "3.1", "cvssVector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N" }
Every run returns clean, typed records, ready for your CRM, spreadsheet or database.
- One clean record per result, deduped and normalized
- Stable schema in JSON, CSV or Excel, or read it via the Apify API
- Pay per use in the cloud, nothing to install or maintain
A real example record, exactly the shape you receive.
| Cve Id | Published | Last Modified | Vuln Status |
|---|---|---|---|
| CVE-1999-0236 | 1997-01-01T05:00:00.000 | 2026-06-16T21:47:58.393 | Modified |
| CVE-1999-0071 | 1997-09-01T04:00:00.000 | 2026-06-16T21:47:30.773 | Modified |
| CVE-1999-0107 | 1997-12-30T05:00:00.000 | 2026-06-16T21:47:36.150 | Modified |
| CVE-1999-1199 | 1998-08-07T04:00:00.000 | 2026-06-16T21:49:55.757 | Modified |
| CVE-1999-0448 | 1999-01-01T05:00:00.000 | 2026-06-16T21:48:25.087 | Modified |
{ "cveId": "CVE-1999-0236", "published": "1997-01-01T05:00:00.000", "lastModified": "2026-06-16T21:47:58.393", "vulnStatus": "Modified", "description": "ScriptAlias directory in NCSA and Apache httpd…", "cvssV3Score": 7.5, "cvssSeverity": "HIGH", "cvssVersion": "3.1", "cvssVector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N" }
Frequently asked questions
How do I search for one specific vulnerability?
Put the exact identifier in the **CVE ID** field (for example `CVE-2021-44228`) to fetch just that record.
What does the CVSS score mean?
The score is the base score from 0 to 10, paired with a severity band (LOW, MEDIUM, HIGH or CRITICAL) and the full vector string so you can see exactly how it was derived.
Can I limit results to a time window?
Yes. Set both **Published from** and **Published to** (ISO-8601). Keep the window within 120 days per run.
How fresh is the data?
Records are read live at run time, so each one reflects the latest published detail (see observedAt).
Ready when you are.
Run the scraper live on Apify right now, or have us build one tailored to exactly what you need.