{
  "openapi": "3.0.1",
  "info": {
    "title": "NVD CVE Feed - CVSS v4/v3, CISA KEV, CWE, Affected Products",
    "description": "CVE records and change history from the official NIST NVD API 2.0: CVSS v4.0/v3.x scores, CWE, CISA KEV and SSVC flags, affected vendors/products/versions (NVD CPE + CNA data), key references. Date, keyword, score, severity, CWE, vendor and CVE ID filters. Unofficial; not affiliated with NIST/NVD.",
    "version": "0.1",
    "x-build-id": "Vp7pAWEV9Z99s8L2b"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jpopendata~us-nvd-cve-feed/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jpopendata-us-nvd-cve-feed",
        "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/jpopendata~us-nvd-cve-feed/runs": {
      "post": {
        "operationId": "runs-sync-jpopendata-us-nvd-cve-feed",
        "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/jpopendata~us-nvd-cve-feed/run-sync": {
      "post": {
        "operationId": "run-sync-jpopendata-us-nvd-cve-feed",
        "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": {
          "mode": {
            "title": "What to get",
            "enum": [
              "cves",
              "changes"
            ],
            "type": "string",
            "description": "CVE records (one row per CVE, default) or change-history events (one row per change the NVD recorded: new CVE received, CVSS added, CISA KEV update, rejection, re-analysis ...).",
            "default": "cves"
          },
          "daysBack": {
            "title": "Days back",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "The window ends now and starts this many days ago (UTC). Default 7. Long windows are split automatically into parts of 100 days (the API allows 120 days per query), so a whole year works too — expect about 450 new CVEs per day in 2026. Ignored when Start date is set.",
            "default": 7
          },
          "dateType": {
            "title": "Date the window applies to (CVE records)",
            "enum": [
              "published",
              "lastModified",
              "kevAdded"
            ],
            "type": "string",
            "description": "Published = CVEs added to the NVD in the window (new CVEs). Last modified = CVEs changed in the window (new scores, new products, status changes; the NVD's recommended way to keep a copy up to date). Added to CISA KEV = CVEs added to the Known Exploited Vulnerabilities catalog in the window. Mode \"changes\" always uses the change date.",
            "default": "published"
          },
          "startDate": {
            "title": "Start date (optional)",
            "type": "string",
            "description": "Optional. YYYY-MM-DD (e.g. \"2026-01-01\"), an ISO date-time (\"2026-01-01T09:00:00Z\"), \"today\" or \"yesterday\". UTC. Overrides Days back.",
            "default": ""
          },
          "endDate": {
            "title": "End date (optional)",
            "type": "string",
            "description": "Optional. Same formats as Start date; a date means the end of that UTC day. Empty = now.",
            "default": ""
          },
          "keyword": {
            "title": "Keyword (description)",
            "type": "string",
            "description": "Optional. Words that must all appear in the CVE description, e.g. \"remote code execution\" or \"wordpress plugin\". Each word also matches longer words (\"circle\" finds \"circles\"). Tick Exact phrase to require the words together.",
            "default": ""
          },
          "exactPhrase": {
            "title": "Exact phrase",
            "type": "boolean",
            "description": "Only CVEs whose description contains the keyword as an exact phrase.",
            "default": false
          },
          "minCvssScore": {
            "title": "Minimum CVSS score",
            "minimum": 0,
            "maximum": 10,
            "type": "number",
            "description": "Optional. Keep CVEs whose highest CVSS v3.x or v4.0 base score (from the NVD or the CNA) is at least this, e.g. 7 or 9.0. 0 = no filter. CVEs without a v3/v4 score are left out when this is above 0.",
            "default": 0
          },
          "severities": {
            "title": "Severities",
            "type": "array",
            "description": "Optional. Any of LOW, MEDIUM, HIGH, CRITICAL (the band of the highest CVSS v3.x/v4.0 score). Empty = all.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "cweIds": {
            "title": "CWE IDs",
            "type": "array",
            "description": "Optional. Weakness types, e.g. \"CWE-79\" (XSS), \"CWE-89\" (SQL injection), \"CWE-787\" (out-of-bounds write); \"79\" also works, as do NVD-CWE-noinfo and NVD-CWE-Other. Several = any of them.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "vendor": {
            "title": "Vendor",
            "type": "string",
            "description": "Optional. Vendor name, e.g. \"microsoft\", \"apache\", \"palo alto networks\". Case and spacing are ignored and whole words must match. Checked against the NVD's CPE data AND the vendor's own (CNA) data, so CVEs the NVD has not analysed yet are found too. Long windows read every CVE in the window, so keep the window short or use CPE match string for multi-year history.",
            "default": ""
          },
          "product": {
            "title": "Product",
            "type": "string",
            "description": "Optional. Product name, e.g. \"exchange server\", \"log4j\", \"pan-os\". Works like Vendor (the last word may be the start of a word: \"log4j\" also finds \"log4j2\"). With Vendor, both must match the same product entry.",
            "default": ""
          },
          "cpeMatchString": {
            "title": "CPE match string (advanced)",
            "type": "string",
            "description": "Optional. A CPE 2.3 match string the NVD filters on, e.g. \"cpe:2.3:a:apache:log4j\" or \"cpe:2.3:o:microsoft:windows_10:1607\". Fast for multi-year history, but only finds CVEs the NVD has analysed (with CPE data).",
            "default": ""
          },
          "kevOnly": {
            "title": "Only CISA KEV (known exploited)",
            "type": "boolean",
            "description": "Only CVEs in CISA's Known Exploited Vulnerabilities catalog.",
            "default": false
          },
          "excludeRejected": {
            "title": "Leave out rejected CVEs",
            "type": "boolean",
            "description": "Leave out CVE IDs that were rejected (withdrawn, duplicates). Default on. Not applied to CVE ID lookups.",
            "default": true
          },
          "cveIds": {
            "title": "CVE IDs (lookup)",
            "type": "array",
            "description": "Optional. Look up these CVEs directly, e.g. \"CVE-2021-44228\" (\"2021-44228\" also works). When set, the date window is ignored and every listed CVE is returned (Max rows does not apply in mode \"cves\"); the filters above still apply. Up to 2,000 per run, 100 per request. IDs the NVD does not have are listed in RUN_SUMMARY.lookups.notFound. In mode \"changes\" you get the full change history of these CVEs.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "eventNames": {
            "title": "Event names (mode \"changes\")",
            "type": "array",
            "description": "Optional, mode \"changes\" only. Keep only these change events, e.g. \"CVE Received\", \"Initial Analysis\", \"Reanalysis\", \"CVE Modified\", \"Modified Analysis\", \"CVE CISA KEV Update\", \"CVE Rejected\", \"CVE Status Change\". Case and spacing are ignored. Empty = all.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "sortOrder": {
            "title": "Order",
            "enum": [
              "newest",
              "oldest"
            ],
            "type": "string",
            "description": "Newest first (default) or oldest first. CVE records are ordered by published date, change events by change date.",
            "default": "newest"
          },
          "maxItems": {
            "title": "Max rows",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many rows (default 100, up to 100,000). The run summary says when more rows matched than this.",
            "default": 100
          },
          "maxApiRequests": {
            "title": "Max API requests",
            "minimum": 1,
            "maximum": 3000,
            "type": "integer",
            "description": "Hard cap on requests to the NVD API (default 100; each reads up to 500 CVEs or 1,000 change events). Without a key requests are 6.5 s apart, so 100 requests take about 11 minutes plus download time.",
            "default": 100
          },
          "apiKey": {
            "title": "Your NVD API key (optional)",
            "type": "string",
            "description": "Optional. Your own free NVD API key (request one at https://nvd.nist.gov/developers/request-an-api-key). With it, requests are 3 s apart instead of 6.5 s and you do not share the public per-IP limit. The NVD terms say a key must not be shared, so use your own. It is sent only to the NVD API as the apiKey header and never stored in the output or logs."
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}