{"id":37679951,"url":"https://github.com/kannkyo/nvd-api","last_synced_at":"2026-01-16T12:23:05.734Z","repository":{"id":64447782,"uuid":"566321464","full_name":"kannkyo/nvd-api","owner":"kannkyo","description":"NVD API 2.0 for python","archived":false,"fork":false,"pushed_at":"2024-09-26T09:41:13.000Z","size":988,"stargazers_count":12,"open_issues_count":15,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-25T17:14:24.612Z","etag":null,"topics":["api","nvd"],"latest_commit_sha":null,"homepage":"https://kannkyo.github.io/nvd-api/html/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kannkyo.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-11-15T12:36:06.000Z","updated_at":"2024-10-08T14:58:32.000Z","dependencies_parsed_at":"2023-09-23T00:08:55.671Z","dependency_job_id":"c22372d1-0487-4986-bba4-f1b52cf6cf47","html_url":"https://github.com/kannkyo/nvd-api","commit_stats":{"total_commits":192,"total_committers":2,"mean_commits":96.0,"dds":"0.38020833333333337","last_synced_commit":"9aa3ee1acfe49d71d4ee1103330534ad4579da6c"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":"boilerplate-language/boilerplate-python","purl":"pkg:github/kannkyo/nvd-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kannkyo%2Fnvd-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kannkyo%2Fnvd-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kannkyo%2Fnvd-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kannkyo%2Fnvd-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kannkyo","download_url":"https://codeload.github.com/kannkyo/nvd-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kannkyo%2Fnvd-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478587,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","nvd"],"created_at":"2026-01-16T12:23:05.053Z","updated_at":"2026-01-16T12:23:05.727Z","avatar_url":"https://github.com/kannkyo.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"=================\nNVD API Client\n=================\n\n\nNVD API client is a community driven NVD API 2.0 client. \nThis client support `Vulnerabilities`_ API and `Products`_ API.\n\n.. _Vulnerabilities: https://nvd.nist.gov/developers/vulnerabilities\n.. _Products: https://nvd.nist.gov/developers/products\n\n.. image:: https://badge.fury.io/py/nvd-api.svg\n    :target: https://badge.fury.io/py/nvd-api\n\n.. image:: https://img.shields.io/pypi/dw/nvd-api?style=flat\n    :target: https://pypistats.org/packages/nvd-api\n\n.. image:: https://github.com/kannkyo/nvd-api/actions/workflows/python-ci.yml/badge.svg\n    :target: https://github.com/kannkyo/nvd-api/actions/workflows/python-ci.yml\n\n.. image:: https://codecov.io/gh/kannkyo/nvd-api/branch/main/graph/badge.svg?token=ASYLVG3X9O\n    :target: https://codecov.io/gh/kannkyo/nvd-api\n\n.. image:: https://github.com/kannkyo/nvd-api/actions/workflows/scorecards.yml/badge.svg\n    :target: https://github.com/kannkyo/nvd-api/actions/workflows/scorecards.yml\n\n.. image:: https://bestpractices.coreinfrastructure.org/projects/6889/badge\n    :target: https://bestpractices.coreinfrastructure.org/projects/6889\n\n\nGetting Start\n=============\n\nProducts / CPE API\n---------------------\n\nThis API's simple example is bellow.\n\n.. code-block:: python\n\n    from client import NvdApiClient\n    from pprint import pprint\n\n    client = NvdApiClient()\n\n    response = client.get_cpes(\n        cpe_name_id=\"87316812-5F2C-4286-94FE-CC98B9EAEF53\",\n        results_per_page=1,\n        start_index=0\n    )\n    pprint(response)\n\n`get_cpes` method check API's all constraints and limitations.\n\n* cpeNameId and matchCriteriaId must be uuid format.\n* cpeMatchString must be CPEv2.3 format.\n* If filtering by keywordExactMatch, keywordSearch is REQUIRED.\n* If filtering by the last modified date, both lastModStartDate and lastModEndDate are REQUIRED.\n* resultsPerPage's maximum allowable limit is 10,000.\n* The maximum allowable range when using any date range parameters is 120 consecutive days.\n\nProducts / Match Criteria API\n-----------------------------\n\nThis API's simple example is bellow.\n\n.. code-block:: python\n\n    from nvd_api import NvdApiClient\n    from pprint import pprint\n\n    client = NvdApiClient()\n\n    response = client.get_cpe_match(\n        cve_id=\"CVE-2022-32223\",\n        results_per_page=1,\n        start_index=0\n    )\n    pprint(response)\n\n`get_cpe_match` method check API's all constraints and limitations.\n\n* cveId is must be CVE ID format.\n* If filtering by the last modified date, both lastModStartDate and lastModEndDate are REQUIRED.\n* matchCriteriaId must be uuid format.\n* resultsPerPage's maximum allowable limit is 5,000.\n* The maximum allowable range when using any date range parameters is 120 consecutive days.\n* cpeName must be CPEv2.3 format.\n\nVulnerabilities / CVE API\n---------------------------\n\nThis API's simple example is bellow.\n\n.. code-block:: python\n\n    from nvd_api import NvdApiClient\n    from pprint import pprint\n\n    client = NvdApiClient()\n\n    response = client.get_cves(\n        cpe_name=\"cpe:2.3:o:debian:debian_linux:3.0:*:*:*:*:*:*:*\",\n        cvss_v2_metrics=\"AV:L/AC:L/Au:N/C:C/I:C/A:C\",\n        cvss_v2_severity=\"HIGH\",\n        results_per_page=1,\n        start_index=1\n    )\n    pprint(response)\n\n* cpeName must be CPEv2.3 format.\n* cveId is must be CVE ID format.\n* cvssV2Severity, cvssV2Metrics is must be CVSS v2 format.\n* cvssV3Severity, cvssV3Metrics is must be CVSS v3 format.\n* cweId is must be CWE ID format.\n* resultsPerPage's maximum allowable limit is 2,000.\n* If filtering by keywordExactMatch, keywordSearch is REQUIRED.\n* If filtering by the last modified date, both lastModStartDate and lastModEndDate are REQUIRED.\n* If filtering by the last modified date, both pubStartDate and pubEndDate are REQUIRED.\n* The maximum allowable range when using any date range parameters is 120 consecutive days.\n* cvssV2Metrics cannot be used in requests that include cvssV3Metrics.\n* cvssV3Metrics cannot be used in requests that include cvssV2Metrics.\n* cvssV2Severity cannot be used in requests that include cvssV3Severity.\n* cvssV3Severity cannot be used in requests that include cvssV2Severity.\n\nVulnerabilities / CVE Change History API\n-------------------------------------------\n\nThis API's simple example is bellow.\n\n.. code-block:: python\n\n    from nvd_api import NvdApiClient\n    from pprint import pprint\n\n    client = NvdApiClient()\n\n    response = client.get_cve_history(\n        change_start_date=\"2021-08-04T00:00:00.000\",\n        change_end_date=\"2021-10-23T00:00:00.000\",\n        event_name=\"CVE Rejected\",\n        results_per_page=1,\n        start_index=1\n    )\n    pprint(response)\n\n`get_cve_history` method check API's all constraints and limitations.\n\n* If filtering by the change date, both changeStartDate and changeEndDate are REQUIRED.\n* cveId is must be CVE ID format.\n* resultsPerPage's maximum allowable limit is 5,000.\n* The maximum allowable range when using any date range parameters is 120 consecutive days.\n\nWith API Key\n---------------------\n\nIf you have the nvd api key, you can set key to client.\n\n.. code-block:: python\n\n    from nvd_api import NvdApiClient\n    from pprint import pprint\n\n    client = NvdApiClient(wait_time=1 * 1000, api_key='THIS IS API KEY')\n\n    response = client.get_cves(\n        cpe_name=\"cpe:2.3:o:debian:debian_linux:3.0:*:*:*:*:*:*:*\",\n        cvss_v2_metrics=\"AV:L/AC:L/Au:N/C:C/I:C/A:C\",\n        cvss_v2_severity=\"HIGH\",\n        results_per_page=1,\n        start_index=1\n    )\n    pprint(response)\n\n* api_key : api key published by nvd.\n* wait_time : interval time to execute api (with api key is 50 requests in a rolling 30s window, without api key is 5 requests in a rolling 30s window)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkannkyo%2Fnvd-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkannkyo%2Fnvd-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkannkyo%2Fnvd-api/lists"}