Getting Started
Quickstart
Make your first authenticated request in two steps. You'll need a Precursor Intelligence account and a few minutes.
1. Create an API key
Sign in to precursorintelligence.com and head to Settings → API Keys.
- Click Create key.
- Give the key a name (e.g.
prod-backend). - (Optional) Add an IP allowlist. The API rejects requests from any address not in the list.
- Click Generate. The full token is shown once: copy it now.
One-time reveal
The token is shown once. Once you close the dialog it cannot be retrieved again. If you lose it, revoke the key and create a new one.
2. Make a request
All REST endpoints are GET and live under
https://api.precursorintelligence.com/functions/v1/. Pass your key as a bearer token.
curl https://api.precursorintelligence.com/functions/v1/cve/CVE-2024-3094 \
-H "Authorization: Bearer $PRECURSOR_API_KEY"A successful response looks like this:
{
"data": {
"cve_id": "CVE-2024-3094",
"nvd": {
"published": "2024-03-29T17:15:21.150Z",
"last_modified": "2024-04-19T23:15:16.917Z",
"vuln_status": "Analyzed",
"descriptions": [
{
"lang": "en",
"value": "Malicious code was discovered in the upstream tarballs of xz, starting with version 5.6.0."
}
],
"metrics": {
"cvss_v3_1": { "base_score": 10.0, "base_severity": "CRITICAL", "vector_string": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H" }
},
"weaknesses": [{ "cwe_id": "CWE-506", "description": "Embedded Malicious Code" }]
},
"kev_cisa": {
"date_added": "2024-03-29",
"due_date": "2024-04-05",
"vendor_project": "XZ Utils",
"product": "liblzma",
"vulnerability_name": "XZ Utils Embedded Malicious Code Vulnerability",
"required_action": "Apply mitigations per vendor instructions or discontinue use."
},
"epss": {
"current": 0.9456,
"current_percentile": 0.9984,
"delta": 0.002,
"updated_at": "2026-05-18T00:00:00.000Z"
},
"risk_score": {
"vulnerability_score": 9.8,
"action_priority": "CRITICAL",
"seen_wild": true,
"known_exploited": true,
"cvss_score": 10.0,
"cvss_version": "3.1",
"epss_score": 0.9456,
"epss_percentile": 0.9984,
"cwe_ids": ["CWE-506"],
"vulnerability_types": ["Supply Chain"],
"threat_actors": ["APT29"],
"targeted_industries": ["Technology", "Government"]
},
"shadowserver_kev": {
"observation_date": "2026-05-17",
"vendor": "XZ Utils",
"product": "liblzma",
"vulnerability_class": "RCE",
"vulnerability_severity": "CRITICAL",
"connections": 18432,
"avg_1d": 612,
"avg_7d": 589,
"avg_30d": 544,
"also_in_cisa_kev": true
},
"shadowserver_counts": [
{ "observation_date": "2026-05-17", "geo": "US", "event_type": "honeypot", "unique_ips": 214 }
],
"notable_events": [
{ "event_type": "cisa_kev_added", "event_time": "2024-03-29T00:00:00.000Z", "details": "Added to CISA KEV" }
],
"generated_at": "2026-05-18T10:24:31.118Z"
},
"meta": {
"request_id": "8b16efb8-9a6c-4ace-b817-11cbee626d08",
"generated_at": "2026-05-18T10:24:31.118Z",
"credits": { "charged": 1, "remaining": 9998 }
}
}Each response includes two useful headers alongside the body: x-request-id
(quote this in support tickets) and x-credits-remaining (your organisation's
balance after the call).