Get a CNA report card
The full report card for one CNA.
GET/api/v1/cnas/{slug}
The complete report card for one CVE Numbering Authority: grade and per-dimension completeness, severity breakdown, KEV count, ranking, top weaknesses / vendors / products, publishing history by year, its most recent CVEs, and peer CNAs for comparison.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
slug | path | string | CNA key from the CNA list, e.g. meta. |
Example request
curl "https://radicalnotion.ai/api/v1/cnas/meta" \
-H "Authorization: Bearer $RN_TOKEN"Example response(top_weaknesses, top_vendors, top_products, latest_cves, and peers trimmed to three each)
{
"slug": "meta",
"cna_name": "Meta",
"grade": "B",
"activity_status": "Active",
"total_cves": 14,
"recent_cves": 14,
"first_cve_date": "2025-09-24T18:31:28.309Z",
"latest_cve_date": "2026-05-06T16:24:55.620Z",
"years_active": 0.6,
"completeness": {
"overall": 83.9,
"vendor": 100,
"product": 100,
"cvss": 78.6,
"cwe": 57.1
},
"avg_description_length": 385,
"vendor_diversity": 6,
"avg_cvss_score": 6.55,
"update_rate_pct": 100,
"severity": {
"critical": 1,
"high": 7,
"medium": 7,
"low": 0,
"unscored": 0,
"total": 15
},
"kev_count": 1,
"ranking": {
"rank_by_cves": 299,
"total_ranked": 396,
"completeness_percentile": 29
},
"improvement": null,
"top_weaknesses": [
{
"cwe_id": "cwe-502",
"cwe_display": "CWE-502",
"name": "Deserialization of Untrusted Data",
"cve_count": 2
},
{
"cwe_id": "cwe-158",
"cwe_display": "CWE-158",
"name": "Improper Neutralization of Null Byte or NUL Character",
"cve_count": 1
},
{
"cwe_id": "cwe-400",
"cwe_display": "CWE-400",
"name": "Uncontrolled Resource Consumption",
"cve_count": 1
}
],
"publishing_by_year": [
{
"year": 2025,
"count": 7
},
{
"year": 2026,
"count": 8
}
],
"top_vendors": [
{
"vendor": "Facebook",
"cve_count": 9
},
{
"vendor": "Meta",
"cve_count": 9
},
{
"vendor": "vercel",
"cve_count": 4
}
],
"top_products": [
{
"product": "react-server-dom-parcel",
"cve_count": 8
},
{
"product": "react-server-dom-webpack",
"cve_count": 8
},
{
"product": "react-server-dom-turbopack",
"cve_count": 8
}
],
"latest_cves": [
{
"cve_id": "CVE-2026-44907",
"title": null,
"severity": "high",
"cvss_score": 7.5,
"primary_cwe_id": null,
"epss_score": 0.00329,
"is_kev": false,
"date_published": "2026-07-21T16:03:32.256Z"
},
{
"cve_id": "CVE-2026-23870",
"title": null,
"severity": "high",
"cvss_score": 7.5,
"primary_cwe_id": null,
"epss_score": 0.01533,
"is_kev": false,
"date_published": "2026-05-06T16:24:55.620Z"
},
{
"cve_id": "CVE-2026-23866",
"title": null,
"severity": "medium",
"cvss_score": 4.3,
"primary_cwe_id": "cwe-940",
"epss_score": 0.00464,
"is_kev": false,
"date_published": "2026-05-01T16:02:03.304Z"
}
],
"peers": [
{
"slug": "mitre",
"cna_name": "mitre",
"grade": "F",
"total_cves": 113990
},
{
"slug": "patchstack",
"cna_name": "Patchstack",
"grade": "A",
"total_cves": 17090
},
{
"slug": "github-m",
"cna_name": "GitHub_M",
"grade": "A",
"total_cves": 17038
}
]
}Response schema
| Field | Type | Description |
|---|---|---|
slug / cna_name / grade / activity_status | string | Identity and headline grade. |
total_cves / recent_cves / years_active | number | Volume and tenure. |
completeness | object | Overall and per-dimension completeness (vendor, product, cvss, cwe). |
avg_cvss_score / avg_description_length / update_rate_pct / vendor_diversity | number | Quality metrics. |
severity / kev_count | object / integer | Severity breakdown and KEV count. |
ranking | object | Rank by CVE count and completeness percentile. |
top_weaknesses[] / top_vendors[] / top_products[] | object[] | Most common weaknesses, vendors, and products. |
publishing_by_year[] | object[] | CVE counts per year. |
latest_cves[] | object[] | Most recent CVEs assigned (compact records). |
peers[] | object[] | Comparable CNAs by size and grade. |
Responses
| Status | Meaning |
|---|---|
200 | Success. |
400 | A path or query parameter failed validation. |
401 | Missing or invalid access token. |
429 | Rate limit exceeded. |