Threat intelligence API / Reference / Ask AI

Ask AI endpoints

Cited answers about one incident or across the corpus. Researcher and up. Researcher and up.

POST /threats/{identifier}/ask · POST /ask

POST /threats/{identifier}/ask

Ask AI about one incident · 25 credits per call

A grounded, cited answer about one cluster. 25 credits.

`action` picks a canned analysis (executive_summary, extract_iocs, threat_actor, related_campaigns, vulnerability, recommended_actions) or `custom` with your own `question`. The context is the cluster's own reporting: article bodies, sub-articles, IOCs, enriched CVEs and actors, related clusters. Answers cite sources with inline tags that map to `sources`. Identical canned asks are cached for an hour and cost the same either way; model failures refund the credits.

Parameters

NameInTypeRequiredMeaning
identifierpathstringyes

Request body · AskThreatRequest

FieldTypeMeaning
actionstringexecutive_summary · extract_iocs · threat_actor · related_campaigns · vulnerability · recommended_actions · custom
questionstring or nullRequired when action is custom

Response 200 · AskResponse

FieldTypeMeaning
answer *stringMarkdown, with inline citation tags like [A1] that map to `sources`
sourcesarray of objectCitation tags → article/cluster they point at
referencesClusters and articles the answer drew on: {clusters: [...], articles: [...]}
context_usedobject
cost *integerCredits charged for this call
cachedboolean
curl -H "X-API-Key: $TC_KEY" -X POST \
  "https://threatcluster.io/api/public/v1/threats/{identifier}/ask"

POST /ask

Ask AI across the whole corpus · 50 credits per call

One question across every incident, indicator, entity and leak-site record, answered with citations. 50 credits.

The context is assembled by searching the corpus for the question, inlining the matching clusters' reporting and enriching the CVEs and actors it finds. Pass `history` for a follow-up turn. Model failures refund the credits.

Request body · AskCorpusRequest

FieldTypeMeaning
query *string
historyarray or nullPrior turns as [{role: user|assistant, content}], up to 20

Response 200 · AskResponse

FieldTypeMeaning
answer *stringMarkdown, with inline citation tags like [A1] that map to `sources`
sourcesarray of objectCitation tags → article/cluster they point at
referencesClusters and articles the answer drew on: {clusters: [...], articles: [...]}
context_usedobject
cost *integerCredits charged for this call
cachedboolean
curl -H "X-API-Key: $TC_KEY" -X POST \
  "https://threatcluster.io/api/public/v1/ask"