Your Relevant CVEs
CVEs matched to your organisation's watched vendors and products, worst first —
ordered by EPSS exploit probability, so the top of page one is always the thing
most likely to be exploited. Each row says what matched (vendor /
product / version) and how it matched (match_type), alongside the CVSS,
EPSS and CISA KEV context needed to act on it without a second lookup.
This is the watchlist view: it reflects what you have told the platform you run,
not what a scan discovered. For findings on your live attack surface, use
GET /my/vulnerabilities.
/v1/my/cvesCost: 1 credit per successful call · Scope: api:org
Query parameters
kev_onlybooleanoptionaltrue to return only CVEs listed in the CISA KEV catalogue. Anything else
is treated as false.
min_epssnumberoptionalOnly CVEs with an EPSS score at or above this threshold, 0–1
(e.g. 0.5). CVEs with no EPSS score are excluded when set.
limitintegeroptionalPage size, 1–200. Default 50. Out-of-range is a 400, not a silent clamp.
cursorstringoptionalOpaque pagination cursor from a previous page's next_cursor. Replay the
same filters with it.
Request
curl "https://api.precursorintelligence.com/functions/v1/my/cves?kev_only=true&limit=2" \
-H "Authorization: Bearer $PRECURSOR_API_KEY"Response
{
"data": {
"count": 2,
"items": [
{
"cve_id": "CVE-2026-21762",
"vendor": "fortinet",
"product": "fortios",
"version": "7.4.2",
"match_type": "product",
"cvss_score": 9.8,
"cvss_class": "CRITICAL",
"epss_score": 0.94321,
"epss_class": "HIGH",
"in_kev": true,
"published": "2026-07-14T00:00:00+00:00"
},
{
"cve_id": "CVE-2026-1709",
"vendor": "f5",
"product": "nginx",
"version": null,
"match_type": "vendor",
"cvss_score": 7.5,
"cvss_class": "HIGH",
"epss_score": 0.61244,
"epss_class": "HIGH",
"in_kev": true,
"published": "2026-06-02T00:00:00+00:00"
}
],
"next_cursor": "eyJrIjogIjAuNjEyNDQi...",
"has_more": true,
"generated_at": "2026-08-19T09:30:00+00:00"
},
"meta": {
"request_id": "8b16efb8-9a6c-4ace-b817-11cbee626d08",
"api_version": "1.3.0",
"credits": { "charged": 1, "remaining": 9998 }
}
}Response fields
data.items[].cve_idstringoptionalThe CVE identifier. Feed it to GET /cve/{cve-id}
for the full intelligence record, or to
GET /my/exposure/{cve_id} to check whether
your scanned attack surface confirms it.
data.items[].match_typestringoptionalHow the CVE matched your watchlist — e.g. a vendor-level or
product-level match.
data.items[].cvss_class / epss_classstring | nulloptionalPrecomputed severity bands (CRITICAL / HIGH / …) so a client can bucket
without re-deriving thresholds.
data.next_cursorstring | nulloptionalFollow until null, replaying the same filters. Opaque — do not parse it.
Rows are ordered epss_score descending (CVEs without a score sort last),
tiebroken by cve_id, and the collection re-scores as EPSS updates daily — so
walk it with the cursor rather than assuming positions are stable between days.
Errors
| Status | error | When |
|---|---|---|
| 400 | invalid_min_epss, invalid_limit, invalid_cursor | A parameter failed validation. Free — rejected before billing. |
| 401 | invalid_authorization | Missing or malformed Authorization header. |
| 401 | unauthorized | Invalid/revoked key, IP not allowlisted, or the key lacks the api:org scope. |
| 402 | insufficient_credits | Organisation credit balance is below 1. |
| 405 | method_not_allowed | Only GET and OPTIONS are accepted. |
| 500 | internal | Unexpected server error (credit auto-refunded). |
See Errors for the full error reference.