Retrieve a single article with full expansions
Fetches one article by UUID with all expansions enabled by default (iocs, cves, threat_actors, mitre). Use ?expand=mitre to opt out of the heavy expansions if you just need the article body.
Common use cases
1. Article detail page (web UI)
Fetch everything in one request:
GET /api/v1/articles/e90ea8b7-8500-4a14-875c-1d64755c80ca
2. IOC enrichment workflow
Click-through from an IOC search to the source article’s full context:
GET /api/v1/articles/{id}?expand=iocs,threat_actors
3. Minimal lookup (just the body)
GET /api/v1/articles/{id}?expand=mitre&fields=id,title,url,ai_summary,severity_score
Errors
| Status | Code | Meaning |
|---|---|---|
| 400 | invalid_parameter | id is not a valid UUID |
| 403 | lookback_exceeded | Article exists but published before your tier’s lookback window |
| 404 | article_not_found | No article with that UUID |
| 410 | article_archived | Article was archived. Pass ?include_archived=true to retrieve it anyway |
Responses are cached for 60 seconds (Cache-Control: public, s-maxage=60, stale-while-revalidate=120).
Authorizations
API key in X-API-Key header
Path Parameters
Article UUID (from a previous list response)
"e90ea8b7-8500-4a14-875c-1d64755c80ca"
Query Parameters
Comma-separated expansions. Defaults to all four (mitre,iocs,cves,threat_actors) since callers fetching one article usually want the full picture.
"iocs,cves"
Comma-separated field allowlist for sparse response.
"id,title,severity_score"
Return the article even if it has been archived. Default false returns 410 article_archived.