Exploit catalog
The corpus-wide public exploit catalog — metadata only.
GET/api/v1/exploits
The full catalog of catalogued public exploit modules across every CVE — Exploit-DB entries, Metasploit modules, and more — filterable by source, platform, and publication date.
As with the per-CVE exploits endpoint, the API serves metadata only, never exploit source code; source_url points at the upstream module.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
source | query | string | Filter by catalog: exploitdb or metasploit. |
platform | query | string | Filter by target platform. |
published_since | query | date | Only modules published at or after this ISO date. |
published_until | query | date | Only modules published at or before this ISO date. |
sort | query | string | Sort key: published (prefix - for descending). Default: -published. |
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/exploits?source=exploitdb&limit=2" \
-H "Authorization: Bearer $RN_TOKEN"Example response
{
"data": [
{
"source": "exploitdb",
"source_id": "52629",
"name": "Krayin CRM v2.2.x - Authenticated Remote Code Execution",
"description": "Krayin CRM v2.2.x - Authenticated Remote Code Execution",
"authors": [
"Diamorphine"
],
"platform": [
"multiple"
],
"date_published": "2026-07-08",
"source_url": "https://www.exploit-db.com/exploits/52629",
"module_type": null,
"module_class": null,
"verified": false,
"exploit_rank": null
},
{
"source": "exploitdb",
"source_id": "52627",
"name": "Langflow 1.9.0 - RCE",
"description": "Langflow 1.9.0 - RCE",
"authors": [
"Diamorphine"
],
"platform": [
"multiple"
],
"date_published": "2026-07-08",
"source_url": "https://www.exploit-db.com/exploits/52627",
"module_type": null,
"module_class": null,
"verified": false,
"exploit_rank": null
}
],
"pagination": {
"limit": 2,
"next_cursor": "eyJ2IjoiMjAyNi0wNy0wOCIsImlkIjoiYzQ0OTMxNGEtNjYyOC01MjQzLTllZmUtODIzMjRjMDMwYWZlIn0"
}
}Response schema
| Field | Type | Description |
|---|---|---|
data[].source / source_id | string | Catalog and module id. |
data[].name / description | string | null | Module title and description. |
data[].authors | string[] | null | Credited authors. |
data[].platform | string[] | null | Target platforms. |
data[].date_published | string | null | Module publication date. |
data[].source_url | string | null | Upstream URL of the module. |
data[].module_type / module_class / verified / exploit_rank | string | boolean | null | Catalog-specific metadata. |
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 module matches the filters — empty data, null cursor.
{
"data": [],
"pagination": { "limit": 25, "next_cursor": null }
}