Skip to content

Recent Advisories ​

Get the count and details of security advisories published in the last 12 hours from GitHub Advisory Database.

Endpoint ​

GET /api/v1/recent-advisories

Response ​

json
{
  "success": true,
  "data": {
    "count": 7,
    "severityCounts": {
      "critical": 2,
      "high": 1,
      "medium": 2,
      "low": 2,
      "unknown": 0
    },
    "latest": [
      {
        "ghsa_id": "GHSA-4486-gxhx-5mg7",
        "severity": "medium",
        "summary": "PsySH has Local Privilege Escalation via CWD .psysh.php auto-load",
        "published_at": "2026-01-30T21:28:44Z"
      }
    ]
  },
  "timestamp": "2026-01-30T12:00:00.000Z"
}

Response Fields ​

FieldTypeDescription
countnumberTotal advisories published in last 12 hours
severityCountsobjectBreakdown by severity level
latestarrayMost recent 5 advisories with details
advisoriesarrayEvery advisory in the window, up to 3 upstream pages (300)
countCappedbooleanWhen true, more advisories existed than the 3-page fetch covered; count and severityCounts are a floor
latestBackfilledbooleanAlways false; kept for compatibility, nothing is backfilled
windowHoursnumberThe window this response covers (12)
rejectedExcludedbooleanWhether GitHub advisories in a withdrawn/rejected state were filtered out before counting

Severity Counts Object ​

FieldTypeDescription
criticalnumberCount of critical severity advisories
highnumberCount of high severity advisories
mediumnumberCount of medium severity advisories
lownumberCount of low severity advisories
unknownnumberCount of advisories without severity rating

Latest Advisory Object ​

FieldTypeDescription
ghsa_idstringGitHub Security Advisory ID (e.g., GHSA-xxxx-xxxx-xxxx)
cve_idstring|nullThe matching CVE id, when GitHub recorded one
severitystringSeverity level: critical, high, medium, low, or unknown
statusobject|nullderiveCveStatus's verdict ({type, label, note, confidence, nvdPresent}), the same shape GET /cve/:id returns; null when nothing could be derived. Not a bare GitHub state string
summarystringBrief description of the vulnerability
published_atstringGitHub advisory publication time, not necessarily the CVE record's publication time
sourcestringgithub-advisories, the source of this feed
ecosystemsstring[]Distinct package ecosystems reported by GitHub; empty when unreported

Both latest and advisories include source and ecosystem metadata. An empty ecosystem list does not mean the advisory affects every ecosystem. The CVE site's filters use the returned collection before limiting the preview to twelve rows. The response timestamp records when this cached snapshot was fetched. The cache lasts up to ten minutes; this endpoint is a polled feed, not a stream.

Example ​

bash
curl https://api.vulnpatch.dev/api/v1/recent-advisories

Code Examples ​

javascript
async function getRecentAdvisories() {
  const response = await fetch('https://api.vulnpatch.dev/api/v1/recent-advisories');
  const { data } = await response.json();

  console.log(`${data.count} new advisories in the last 12 hours`);
  console.log(`Critical: ${data.severityCounts.critical}`);
  console.log(`High: ${data.severityCounts.high}`);

  console.log('\nLatest advisories:');
  for (const adv of data.latest) {
    console.log(`  [${adv.severity.toUpperCase()}] ${adv.summary}`);
  }
}
python
import requests

response = requests.get('https://api.vulnpatch.dev/api/v1/recent-advisories')
data = response.json()['data']

print(f"{data['count']} new advisories in the last 12 hours")
print(f"Critical: {data['severityCounts']['critical']}")
print(f"High: {data['severityCounts']['high']}")

print("\nLatest advisories:")
for adv in data['latest']:
    print(f"  [{adv['severity'].upper()}] {adv['summary']}")

Use Cases ​

  • Security dashboards: Display real-time vulnerability alerts
  • Notification systems: Trigger alerts on new critical advisories
  • Landing pages: Show "X new vulnerabilities today" stats
  • Monitoring: Track daily vulnerability disclosure rates

Data Source ​

This endpoint aggregates data from the GitHub Advisory Database, which includes:

  • CVEs from the NVD
  • GitHub Security Advisories (GHSA)
  • npm, PyPI, Maven, and other ecosystem advisories

Caching ​

The cache lasts up to ten minutes, as stated above. The X-Cache header indicates cache status.