List weaknesses
Search and page through the CWE catalog.
GET/api/v1/cwes
The MITRE CWE weakness catalog, each entry annotated with how many CVEs in the corpus map to it and how many of those are KEV-listed. Filter by abstraction, status, or exploit likelihood and sort by prevalence.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
q | query | string | Substring match against the CWE id and name. |
abstraction | query | string | CWE abstraction: Pillar, Class, Base, Variant, or Compound. |
status | query | string | CWE status: Stable, Draft, Incomplete, ... |
likelihood | query | string | Likelihood of exploit: High, Medium, Low. |
sort | query | string | Sort key: cves, id, or name. Prefix with - for descending. Default: -cves. |
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/cwes?limit=3" \
-H "Authorization: Bearer $RN_TOKEN"Example response
{
"data": [
{
"cwe_id": "CWE-79",
"slug": "cwe-79",
"numeric_id": 79,
"name": "Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')",
"abstraction": "Base",
"status": "Stable",
"likelihood": "High",
"cve_count": 26055,
"kev_count": 31
},
{
"cwe_id": "CWE-89",
"slug": "cwe-89",
"numeric_id": 89,
"name": "Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')",
"abstraction": "Base",
"status": "Stable",
"likelihood": "High",
"cve_count": 11123,
"kev_count": 27
},
{
"cwe_id": "CWE-862",
"slug": "cwe-862",
"numeric_id": 862,
"name": "Missing Authorization",
"abstraction": "Class",
"status": "Incomplete",
"likelihood": "High",
"cve_count": 6844,
"kev_count": 8
}
],
"pagination": {
"limit": 3,
"next_cursor": "eyJ2Ijo4NjIsImlkIjoiY3dlLTg2MiJ9"
}
}Response schema
| Field | Type | Description |
|---|---|---|
data[].cwe_id / slug / numeric_id | string / string / integer | Weakness identifier in three forms. |
data[].name | string | CWE name. |
data[].abstraction | string | Abstraction level (Base, Class, ...). |
data[].status | string | CWE catalog status. |
data[].likelihood | string | null | Likelihood of exploit. |
data[].cve_count | integer | CVEs mapped to this weakness. |
data[].kev_count | integer | Of those, how many are KEV-listed. |
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 CWE matches the filters — empty data, null cursor.
{
"data": [],
"pagination": { "limit": 25, "next_cursor": null }
}