# NIST NVD CVE Vulnerability Database Scraper (`compute-edge/nist-nvd-scraper`) Actor

Search and extract CVE vulnerability data from the NIST National Vulnerability Database (NVD) API 2.0. Filter by keyword, CVSS severity, publication date, and modification date. Returns flattened CVE records with CVSS scores, CWE IDs, references, and affected products.

- **URL**: https://apify.com/compute-edge/nist-nvd-scraper.md
- **Developed by:** [Compute Edge](https://apify.com/compute-edge) (community)
- **Categories:** Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## NIST NVD CVE Vulnerability Database Scraper

Extract **CVE vulnerability data** from the **NIST National Vulnerability Database (NVD)** via the official NVD API 2.0. Search and filter CVEs by keyword, CVSS severity, publication date, and modification date. Returns flattened CVE records with CVSS scores, severity ratings, CWE IDs, references, and affected products (CPE).

The NVD is the U.S. government's authoritative repository of vulnerability data, containing over **250,000 CVEs**. Security teams, vulnerability management platforms, and threat intelligence analysts rely on NVD data for prioritizing remediation, compliance reporting, and risk assessment. This Actor delivers clean, structured JSON output ready for SIEM ingestion, ticketing systems, or RAG pipelines.

### Key Features

| Feature | Description |
|---------|-------------|
| **250,000+ CVEs** | Access the full NVD database of published vulnerabilities |
| **Keyword search** | Search CVE descriptions for terms like "buffer overflow", "SQL injection" |
| **CVSS severity filter** | Filter by Low, Medium, High, or Critical severity |
| **Date range filtering** | Filter by publication or modification date (120-day windows) |
| **CVSS v3.1/v3.0/v2 support** | Automatically extracts best available CVSS metrics |
| **CWE extraction** | Weakness classification IDs for each CVE |
| **Automatic pagination** | Handles NVD API pagination transparently |
| **Rate limit handling** | Built-in delays and retry logic for NVD API limits |

### How to Scrape NIST NVD Vulnerability Data

1. **Go to this Actor's page** on the Apify Store
2. **Click "Start"** to open the input configuration form
3. **Set your filters:**
   - Enter a **Keyword** to search CVE descriptions (e.g., `remote code execution`)
   - Select a **CVSS Severity** level (Low, Medium, High, Critical)
   - Set **Published After/Before** dates to filter by publication date
   - Set **Modified After/Before** dates to filter by modification date
   - Set **Max Results** (default: 1000, max: 50,000)
4. **Click "Start"** to run the Actor
5. **Download your data** in JSON, CSV, or Excel from the Dataset tab

### Input Example

```json
{
    "keywordSearch": "remote code execution",
    "severity": "CRITICAL",
    "publishedAfter": "2025-01-01",
    "publishedBefore": "2025-03-30",
    "maxResults": 500
}
````

### Output Example

```json
{
    "cveId": "CVE-2025-12345",
    "description": "A remote code execution vulnerability in ExampleProduct allows...",
    "cvssScore": 9.8,
    "cvssSeverity": "CRITICAL",
    "cvssVector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
    "cweIds": ["CWE-94"],
    "publishedDate": "2025-02-15T17:15:00.000",
    "lastModifiedDate": "2025-02-20T12:30:00.000",
    "references": ["https://example.com/advisory/2025-001"],
    "affectedProducts": ["cpe:2.3:a:example:product:1.0:*:*:*:*:*:*:*"]
}
```

### Pricing

This Actor uses **pay-per-result** pricing:

| Event | Price |
|-------|-------|
| Actor Start | $0.00005 |
| Per result | $0.002 |

A typical run of 500 CVE records costs approximately $1.00 in Actor fees plus minimal Apify compute costs. Note: NVD API rate limits (6 seconds between requests without an API key) mean large queries may take several minutes.

### Use Cases

- **Vulnerability management** — Feed CVE data into ticketing systems to track remediation
- **Threat intelligence** — Enrich threat feeds with CVSS scores, CWE types, and affected products
- **Compliance reporting** — Generate reports of critical/high-severity CVEs for audit purposes
- **Security research** — Analyze vulnerability trends by severity, weakness type, or product
- **SOC dashboards** — Integrate with Splunk, Elastic, or Sentinel for CVE monitoring
- **RAG/LLM pipelines** — Structured vulnerability data ready for AI-powered security analysis

### FAQ

#### Is it legal to scrape the NIST NVD?

Yes. This Actor uses the official NVD API 2.0, which is a free public government data service. The data is in the public domain and freely available for any use. No authentication is required (though an API key increases rate limits).

#### How Much Does It Cost to Scrape NIST NVD Data?

See the pricing table above. At $0.002 per result, fetching 1,000 CVEs costs approximately $2.00 in Actor fees plus minimal Apify compute costs.

#### Can I export NVD data to Excel or CSV?

Yes. Apify supports exporting results in JSON, CSV, Excel, XML, and other formats directly from the Dataset tab after a run completes.

#### How often is the NVD updated?

NIST updates the NVD continuously as new CVEs are published and existing CVEs are analyzed. New CVEs typically appear within hours of being assigned. You can schedule this Actor to run at any interval.

#### Why is there a 120-day limit on date ranges?

The NVD API 2.0 restricts date range queries to 120 days maximum. For longer periods, run the Actor multiple times with consecutive date ranges.

### Other Scrapers by SeatSignal

- [CISA KEV Scraper](https://apify.com/seatsignal/cisa-kev-scraper) — Extract actively exploited vulnerabilities from the CISA KEV catalog
- [CPSC Product Recalls Scraper](https://apify.com/seatsignal/cpsc-product-recalls-scraper) — Extract consumer product recall data
- [NHTSA Vehicle Safety Scraper](https://apify.com/seatsignal/nhtsa-vehicle-safety-scraper) — Extract vehicle recalls and safety data
- [OSHA Inspections Scraper](https://apify.com/seatsignal/osha-inspections-scraper) — Extract OSHA workplace inspection data
- [FDA OpenFDA Scraper](https://apify.com/seatsignal/fda-openfda-scraper) — Extract FDA drug and device safety data

### Legal Disclaimer

This Actor accesses publicly available data from the NIST National Vulnerability Database via the official NVD API 2.0. The data is provided by a U.S. government agency and is in the public domain. This Actor does not bypass any authentication or access controls. Users are responsible for ensuring their use of the data complies with applicable laws and regulations.

For questions or support, please open an issue on this Actor's page.

# Actor input Schema

## `keywordSearch` (type: `string`):

Search keywords in CVE descriptions. Examples: 'buffer overflow', 'remote code execution', 'SQL injection'.

## `severity` (type: `string`):

Filter by CVSS v3 severity level.

## `publishedAfter` (type: `string`):

Only include CVEs published after this date (YYYY-MM-DD format). Example: '2025-01-01'. Note: NVD API limits date ranges to 120 days.

## `publishedBefore` (type: `string`):

Only include CVEs published before this date (YYYY-MM-DD format). Must be within 120 days of Published After.

## `modifiedAfter` (type: `string`):

Only include CVEs modified after this date (YYYY-MM-DD format). Note: NVD API limits date ranges to 120 days.

## `modifiedBefore` (type: `string`):

Only include CVEs modified before this date (YYYY-MM-DD format). Must be within 120 days of Modified After.

## `maxResults` (type: `integer`):

Maximum number of CVE records to return. Set to 0 for unlimited.

## Actor input object example

```json
{
  "keywordSearch": "",
  "severity": "",
  "publishedAfter": "",
  "publishedBefore": "",
  "modifiedAfter": "",
  "modifiedBefore": "",
  "maxResults": 1000
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("compute-edge/nist-nvd-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("compute-edge/nist-nvd-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call compute-edge/nist-nvd-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=compute-edge/nist-nvd-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "NIST NVD CVE Vulnerability Database Scraper",
        "description": "Search and extract CVE vulnerability data from the NIST National Vulnerability Database (NVD) API 2.0. Filter by keyword, CVSS severity, publication date, and modification date. Returns flattened CVE records with CVSS scores, CWE IDs, references, and affected products.",
        "version": "0.1",
        "x-build-id": "vaPVcXiyIobJIcpYm"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/compute-edge~nist-nvd-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-compute-edge-nist-nvd-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/compute-edge~nist-nvd-scraper/runs": {
            "post": {
                "operationId": "runs-sync-compute-edge-nist-nvd-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/compute-edge~nist-nvd-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-compute-edge-nist-nvd-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "keywordSearch": {
                        "title": "Keyword Search",
                        "type": "string",
                        "description": "Search keywords in CVE descriptions. Examples: 'buffer overflow', 'remote code execution', 'SQL injection'.",
                        "default": ""
                    },
                    "severity": {
                        "title": "CVSS v3 Severity",
                        "enum": [
                            "",
                            "LOW",
                            "MEDIUM",
                            "HIGH",
                            "CRITICAL"
                        ],
                        "type": "string",
                        "description": "Filter by CVSS v3 severity level.",
                        "default": ""
                    },
                    "publishedAfter": {
                        "title": "Published After",
                        "type": "string",
                        "description": "Only include CVEs published after this date (YYYY-MM-DD format). Example: '2025-01-01'. Note: NVD API limits date ranges to 120 days.",
                        "default": ""
                    },
                    "publishedBefore": {
                        "title": "Published Before",
                        "type": "string",
                        "description": "Only include CVEs published before this date (YYYY-MM-DD format). Must be within 120 days of Published After.",
                        "default": ""
                    },
                    "modifiedAfter": {
                        "title": "Modified After",
                        "type": "string",
                        "description": "Only include CVEs modified after this date (YYYY-MM-DD format). Note: NVD API limits date ranges to 120 days.",
                        "default": ""
                    },
                    "modifiedBefore": {
                        "title": "Modified Before",
                        "type": "string",
                        "description": "Only include CVEs modified before this date (YYYY-MM-DD format). Must be within 120 days of Modified After.",
                        "default": ""
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 0,
                        "maximum": 50000,
                        "type": "integer",
                        "description": "Maximum number of CVE records to return. Set to 0 for unlimited.",
                        "default": 1000
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
