Changelog
Every response carries an api_version field and an x-api-version header, so
you can always tell which release answered your call. Versions follow semver:
we add fields freely in minor releases, and anything that changes the meaning or
shape of an existing field gets its own note here.
v1.3.0 (2026-08-19)
Nine new organisation-scoped endpoints, covering your attack surface and the
CVEs you are tracking. All of them need a key with the api:org scope.
Your attack surface
The scan is the billable unit. One credit buys the whole snapshot, not one table of it, so walking your attack surface does not multiply per-call costs.
GET /v1/my/scanslists your scans, newest first, each with its target and rollup counts for everything the scan found.GET /v1/my/scans/{scan_id}returns the whole scan as one document: hosts (with IP addresses, open ports and what is listening on them), domains, DNS records, SSL certificates, network ranges, and vulnerabilities with their instances. Use?sections=to project a subset at the same price.GET /v1/my/scans/{scan_id}/deltareturns the precomputed diff against the previous scan of the same target.GET /v1/my/scans/{scan_id}/credentialsreturns breach-exposed credentials for the scan's domain, reduced to account, breach source and existence flags. Passwords and breach PII are never returned.
What matters to you
GET /v1/my/cvesreturns CVEs matched to your watched vendors and products, highest EPSS first. Narrow the list with?kev_only=and?min_epss=.GET /v1/my/vulnerabilitiesreturns findings across the latest scan of every target, ordered by severity, each with its instance count.GET /v1/my/triagereturns your triaged CVEs with their vulnerability score and action priority, plus threat actor, malware and industry context.?priority=immediateis your patch queue.GET /v1/my/alertsreturns your watchlist alert feed, newest first. With?since=, polling costs one credit and returns nothing when nothing fired.GET /v1/my/exposure/{cve_id}answers "am I exposed to this CVE?" in one document: confirmed findings, watchlist and triage state, best-effort asset matches, and 30 days of in-the-wild activity. Branch on the singleexposurefield (confirmed,inferredornone).
Notes
- Every collection is keyset-paginated. Follow
next_cursoruntil it isnull, replaying the same filters. There is deliberately no total count. - Scan documents are immutable once the scan completes, so you can fetch once
and cache indefinitely. The intended loop is to poll
/v1/my/scans, then fetch the delta or the full document when a new scan appears. - Across all
/v1/myendpoints the organisation comes from your API key. There is no way to name a tenant in a request, and tenant responses are never shared-cacheable. - An unknown scan id and another organisation's scan id are indistinguishable:
both return
200withdata: null.
v1.2.0 (2026-08-04)
Expanded threat actor intelligence. Every claim now carries the quote that supports it and the URL that quote came from, across 815 actors, 7,800 technique links, 1,300 campaigns and 6,500 cited claims.
New endpoints
GET /v1/cve/{cve-id}/actorsreturns the threat actors reported to have exploited a CVE, each with an evidence quote and source URL.GET /v1/actors/{name}/cvesreturns the CVEs an actor exploits, joined to CVSS, EPSS, CISA KEV and action priority, ordered KEV first.
New MCP tools (the server now exposes 71)
get_cve_threat_actorsmaps a CVE to attributed actors, with citations.list_threat_actor_cvesmaps an actor to CVEs, ordered for a patch queue.
Changed
GET /v1/cve/{cve-id}and theget_cvetool gained a top-levelthreat_actorsblock with cited attribution.classification.threat_actorskeeps its existing shape and now carries the union of the cited names and the previous attribution set, so coverage only grows.GET /v1/actors/{name}now returns a full dossier: aliases, ATT&CK techniques, campaigns, related groups, ransomware tradecraft, and linked CVEs, industries and malware.{name}resolves a slug, an alias or a display name, and follows a merged actor through to its surviving record.GET /v1/actorsis ranked by corroborated evidence volume rather than mention frequency, and accepts?type=(ransomware,apt,cybercrime,hacktivist).GET /v1/actors?industry=matches industry names, slugs and aliases rather than one exact spelling, and reports what your string resolved to.get_threat_actor_techniquesnow resolves ransomware operations and other actors outside MITRE's named intrusion sets. Asourcefield says which dataset answered.map_assets_to_actorandappliances_exploited_by_actorresolve actors across both datasets and union the results.
v1.0.0 (2026-06-10)
Initial public release.
GET /v1/cve/{cve-id}returns the full CVE intelligence record: NVD data, CVSS metrics, EPSS scoring, CISA KEV status, honeypot activity and Precursor Intelligence risk scoring.GET /v1/cpe/{vendor},GET /v1/cpe/{vendor}/{product}andGET /v1/cpe/{vendor}/{product}/{version}return vendor, product and version coverage with CVE mapping.- The Precursor Intelligence MCP server launched at
https://api.precursorintelligence.com/functions/v1/mcpwith 41 tools covering CVE intelligence, MITRE ATT&CK, Atomic Red Team, threat actors, IOCs, malware samples and honeypot data. - Bearer authentication using API keys managed from the dashboard.
- Pay-per-call credit model with atomic deduction. Credits are refunded automatically on errors, and per-request credit usage is visible in the dashboard.