docs / vuln-intel

Vulnerability & Dependency Intelligence API

Vulnerability & Dependency Intelligence API

base /vuln-intel/v17 endpoints
post/vuln-intel/v1/package_vulns1 credit

All known vulnerabilities affecting a package (by name+ecosystem, optionally pinned to an installed version) OR a git commit — via OSV.dev. The dependency-audit core.

ParameterAllowed / rangeDescription
packagerequiredPackage name as published in its registry (npm 'lodash', PyPI 'django', Maven 'group:artifact' e.g. 'org.apache.logging.log4j:log4j-core', Go import path). Required unless you pass `commit` instead.
ecosystemrequiredalpine · android · bitnami · cargo · composer · crates.io · debian · githubactions · go · hex · maven · npm · nuget · packagist · pub · pypi · rubygems · swifturl · ubuntuPackage ecosystem / registry. Case-insensitive; common aliases map (cargo->crates.io, pip/python->PyPI is via the 'pypi' key, composer->Packagist). Required with `package` (omit when querying by `commit`).
versionoptionalExact installed version to test (e.g. '2.14.1', '4.17.15'). Omit to return ALL known vulnerabilities for the package across every version.
commitoptionalGit commit hash to query instead of package+version+ecosystem (OSV resolves which vulns affect that exact source revision).
Try in playground →
post/vuln-intel/v1/vuln_detail1 credit

Full detail for one vulnerability by OSV id, GHSA id, or CVE id. OSV is the base record; if it resolves to a GHSA the response is enriched with GitHub's numeric CVSS base score, EPSS exploitation probability, and CWEs.

ParameterAllowed / rangeDescription
idrequiredA vulnerability id: OSV id (GHSA-…, PYSEC-…, GO-…, RUSTSEC-…) or a CVE (CVE-2021-44228). CVE ids are resolved via OSV's alias index. Case-insensitive.
Try in playground →
post/vuln-intel/v1/kev_check1 credit

Is a CVE in the CISA Known-Exploited-Vulnerabilities catalog (actively exploited in the wild)? Returns the KEV entry when listed.

ParameterAllowed / rangeDescription
cve_idrequiredThe CVE id to look up in the CISA Known-Exploited-Vulnerabilities catalog. Case-insensitive.
Try in playground →
post/vuln-intel/v1/kev_list1 credit

Browse / filter the full CISA KEV catalog by vendor, product, or ransomware flag, with page pagination.

ParameterAllowed / rangeDescription
vendoroptionalFilter KEV entries by vendor/project (substring, case-insensitive).
productoptionalFilter KEV entries by product (substring, case-insensitive).
ransomwareoptionalKnown · UnknownFilter KEV entries by whether the CVE is known-used in ransomware campaigns (CISA's knownRansomwareCampaignUse field).
page = 1optional1–1-based page number for the KEV list. Page forward with meta.next_page.
per_page = 30optional1–100Results per page (1-100, default 30). Larger values are clamped.
Try in playground →
post/vuln-intel/v1/exploits1 credit

Public exploit / PoC lookup for a CVE via the Exploit-DB (Offensive Security) database (keyless, CVE-indexed). Answers 'is there a weaponized public exploit?' — has_public_exploit + each entry's edb_id, type (remote/local/webapps/dos), platform, verified flag, date_published, and deep links (exploit_db_url + upstream source_url).

ParameterAllowed / rangeDescription
cve_idrequiredThe CVE id to look up in the Exploit-DB (Offensive Security) public exploit/PoC database. Case-insensitive. Returns every exploit row whose 'codes' column references this CVE.
verified_only = falseoptionalIf true, return only Exploit-DB entries marked verified (reproduced by the Exploit-DB team). Default false = all entries.
Try in playground →
post/vuln-intel/v1/batch1 credit

Bulk-scan up to 100 package/commit queries in one call (OSV querybatch), each hydrated to full vulnerability detail by default.

ParameterAllowed / rangeDescription
queriesrequiredArray of up to 100 query objects. Each is either {package, ecosystem, version?} or {commit}. Returns one result group per query (order preserved), each hydrated to full vulnerability detail.
hydrate = trueoptionalIf true (default) each batch hit is expanded to the full normalized vulnerability via OSV /vulns/{id}. Set false for a faster id-only response (returns {id, modified} per hit).
Try in playground →