Every endpoint is GET and costs 1 credit per successful call, except
GET /meta/account which is free. All share the response envelope
and error model below.
Full intelligence record for a single CVE: NVD data, CVSS, EPSS, CISA KEV, Shadowserver activity, risk scoring, and attributed threat actors with citations.
Full dossier: aliases, ATT&CK techniques, campaigns, related groups, ransomware tradecraft, CVEs, industries and malware — each with an evidence quote and source URL.
Your credit balance, key metadata, and rate-limit state. Free.
Your Data · Vulnerability Intelligence
All /my endpoints return your organisation's own data rather than public
threat intel, and require a key with the api:org scope (api:read does not
imply it). The organisation always comes from the API key — there is no way to
name a tenant in a request.
One whole scan as a single document: hosts (with IPs + open ports), domains, DNS, SSL certificates, network ranges, vulnerabilities. ?sections= to slim it.
meta is consistent across all endpoints. data contains the endpoint-specific payload.
Response envelope fields
Field
Type
Description
data
object
Endpoint-specific payload. See each endpoint's reference for the full field list.
meta.request_id
string
UUID identifying this request. Returned in the x-request-id response header as well.
meta.generated_at
string
ISO 8601 UTC timestamp for when the response was generated.
meta.credits.charged
integer
Credits deducted for this call (1 for a successful call).
meta.credits.remaining
integer
Credits remaining in your organisation's pool after this call.
Conventions
Authentication: all requests require Authorization: Bearer $PRECURSOR_API_KEY. Keys are created in the dashboard at precursorintelligence.com under Settings → API Keys.
Credits: each successful call costs 1 credit, shared across your organisation. See Credits for top-up and balance details.
HTTP method: all endpoints are GET. Requests using any other method return 405 method_not_allowed.
Case sensitivity: path parameters are case-insensitive on input and are normalised server-side (CVE-2024-3094 and cve-2024-3094 resolve identically).
Timestamps: all timestamps are RFC 3339 UTC strings.
Numeric scores: CVSS and EPSS values are JSON numbers, not strings.
Absent fields: fields with no data are omitted from the response; they are never returned as null.
Errors: all error bodies follow the shape { "error": "<machine_code>" }. See Errors for the full list of codes.
Errors
Status
error
When
400
invalid_cve_id (or similar)
A path parameter failed validation.
401
unauthorized
The API key is missing, invalid, or revoked.
402
insufficient_credits
Your organisation's credit balance is zero.
404
not_found
The route or the requested entity does not exist in the dataset.