List CNAs
The CNA directory with report-card grades.
GET/api/v1/cnas
The directory of CVE Numbering Authorities, each with a Radical Notion report-card grade and the metrics behind it — total and recent CVE counts, years active, record completeness, average CVSS, and vendor diversity.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
sort | query | string | Sort key: cves, recent, completeness, or grade. Default: completeness. |
grade | query | string | Filter to one letter grade: A, B, C, D, or F. |
q | query | string | Substring match against the CNA name. |
limit | query | integer | Page size, 1–100. Default: 25. |
cursor | query | string | Opaque cursor from the previous page. |
Example request
curl "https://radicalnotion.ai/api/v1/cnas?limit=3" \
-H "Authorization: Bearer $RN_TOKEN"Example response
{
"data": [
{
"slug": "patchstack",
"cna_name": "Patchstack",
"grade": "A",
"activity_status": "Active",
"total_cves": 17090,
"recent_cves": 12361,
"years_active": 4.8,
"overall_completeness": 100,
"avg_cvss_score": 6.56,
"vendor_diversity": 7820,
"latest_cve_date": "2026-07-13T08:41:25.902Z"
},
{
"slug": "huntrdev",
"cna_name": "@huntrdev",
"grade": "A",
"activity_status": "Inactive",
"total_cves": 1582,
"recent_cves": 0,
"years_active": 2.4,
"overall_completeness": 100,
"avg_cvss_score": 6.83,
"vendor_diversity": 252,
"latest_cve_date": "2023-11-03T06:40:02.720Z"
},
{
"slug": "huntr-ai",
"cna_name": "@huntr_ai",
"grade": "A",
"activity_status": "Active",
"total_cves": 811,
"recent_cves": 512,
"years_active": 3.2,
"overall_completeness": 100,
"avg_cvss_score": 7.32,
"vendor_diversity": 109,
"latest_cve_date": "2026-07-14T05:13:07.252Z"
}
],
"pagination": {
"limit": 3,
"next_cursor": "eyJ2IjpudWxsLCJpZCI6Imh1bnRyLWFpIn0"
}
}Response schema
| Field | Type | Description |
|---|---|---|
data[].slug | string | CNA key — use as {slug} in the endpoints below. |
data[].cna_name | string | CNA display name. |
data[].grade | string | Report-card grade A–F. |
data[].activity_status | string | Active or Inactive. |
data[].total_cves / recent_cves | integer | Lifetime and recent CVE counts. |
data[].years_active / overall_completeness / avg_cvss_score / vendor_diversity | number | Report-card metrics. |
data[].latest_cve_date | string | Most recent CVE assignment (ISO 8601). |
pagination.next_cursor | string | null | Pass as ?cursor= for the next page. |
Responses
| Status | Meaning |
|---|---|
200 | Success. |
400 | A path or query parameter failed validation. |
401 | Missing or invalid access token. |
429 | Rate limit exceeded. |
No CNA matches the filters — empty data, null cursor.
{
"data": [],
"pagination": { "limit": 25, "next_cursor": null }
}