Next free-source hunt
We check for new free data every weekday.
Datasets / Cyber Threat
google.github.io/

OSV Vulnerability Database

Freeauth: noneCustom#cyber-threat#vulnerabilities#threat-intel#risk#historical-data✓ verified Nov 1, 2026

OSV Vulnerability Database

OSV provides a keyless JSON API and downloadable JSON archives for open-source vulnerability records, including IDs, aliases, summaries, publication and modification times, affected packages, version ranges, references and severity data. No key is needed.

Coverage

OSV aggregates records across 30 listed ecosystems, including npm, PyPI, Maven, Go, crates.io, Linux, Android, Debian and Ubuntu, and continuously exports full and per-ecosystem dumps. The API states no request-rate limit; HTTP/1.1 responses are capped at 32 MiB, and package queries paginate above 1,000 vulnerabilities or after 20 seconds.

Verdict

This is defensive data for matching package names, versions, package URLs or commits to known open-source vulnerabilities. Results inherit the scope, timing, quality and licence of multiple upstream advisory databases, so aliases may duplicate the same issue and affected-version ranges can be corrected later. Query matching is case-sensitive except where the package registry normalizes names. Preserve withdrawn and modified fields, and follow page tokens until exhausted for large responses.

Get the free weekly email

Free weekly email of newly verified free data. Unsubscribe by emailing us.

Use in your agent

Query an OSV package version into pandas and Parquet. Checked against the provider's documentation on Nov 1, 2026.

Raw skill file (/skills/osv-dev.md)Also in our MCP server: call get_ingestion_skill with {"slug": "osv-dev"}.

Access

  • No account or key. POST a package ecosystem, name and version to the public v1/query endpoint.

Request

bash
curl -X POST -H 'Content-Type: application/json' -d '{"package":{"name":"jinja2","ecosystem":"PyPI"},"version":"3.1.4"}' 'https://api.osv.dev/v1/query'

Format

JSON vulnerability objects with OSV ID, aliases, summary, details, dates, affected packages and ranges, references, severity, credits and database-specific fields.

Load into pandas and Parquet

Needs Python 3 with requests, pandas and pyarrow.

python
"""OSV vulnerabilities for PyPI jinja2 3.1.4 -> pandas -> Parquet. No key."""
import json
import requests
import pandas as pd

URL = "https://api.osv.dev/v1/query"
payload = {"package": {"name": "jinja2", "ecosystem": "PyPI"}, "version": "3.1.4"}
r = requests.post(URL, json=payload, timeout=60)
r.raise_for_status()
rows = [{"id": v["id"], "summary": v.get("summary"),
         "published": v.get("published"), "modified": v.get("modified"),
         "aliases": json.dumps(v.get("aliases", []))}
        for v in r.json().get("vulns", [])]
df = pd.DataFrame(rows)
df["published"] = pd.to_datetime(df["published"], format="mixed", utc=True)
df["modified"] = pd.to_datetime(df["modified"], format="mixed", utc=True)
df.to_parquet("osv_jinja2_3_1_4.parquet", index=False)
print(len(df), "vulnerabilities for PyPI jinja2 3.1.4",
      ",".join(sorted(df["id"].tolist())))

Run by us on 2026-11-01 (python 3.13.5 | pandas 3.1.0 | pyarrow 26.0.0 | requests 2.34.2). Result: 6 vulnerabilities for PyPI jinja2 3.1.4 GHSA-cpwx-vrp4-4pq7,GHSA-gmj6-6f8f-6699,GHSA-q2x7-8rv6-6q7h,PYSEC-2026-1471,PYSEC-2026-1472,PYSEC-2026-1475

Limits

  • Rate limit: currently no limits are stated for the API.
  • HTTP/1.1 responses are limited to 32 MiB; HTTP/2 has no stated response-size limit.
  • v1/query paginates above 1,000 vulnerabilities or when processing exceeds 20 seconds.

Quirks

  • Package ecosystem and name matching are case-sensitive except for registry-specific normalization documented by OSV.
  • Timestamps can contain different fractional-second precision; parse them as mixed ISO-8601 values.
  • Aliases can cause several source records to describe one underlying issue; retain IDs and aliases for deduplication.
  • Large queries can return only next_page_token; continue until the token disappears even if a page has no vulnerabilities.

Terms and attribution

  • The aggregate combines upstream databases under different licences; apply the licence of each source record.
  • Some included sources use attribution, share-alike, non-commercial or no-derivatives terms, so the whole dump cannot be treated as uniformly permissive.

Sources

Information and education only. Not financial, investment, legal or tax advice. Listings can be inaccurate, incomplete or out of date and are provided "as is". Free tiers, limits and licenses belong to each provider and can change, so check the provider's own terms before you rely on them. Terms & Disclaimer