Works with any language, any platform, any agent framework. Get your API key, make your first call, scale from there.
https://app.threatrecall.aiCreate a node in your knowledge graph — the first write to ThreatRecall memory.
curl -X POST https://app.threatrecall.ai/api/graph/nodes \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "actor",
"name": "APT-41",
"aliases": ["BARIUM", "WICKED PANDORA"],
"tags": ["china", "espionage", "financially-motivated"],
"confidence": 0.95
}'
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"type": "actor",
"name": "APT-41",
"created_at": "2026-05-26T20:00:00.000Z",
"confidence": 0.95
}
Natural language recall or structured graph traversal.
Natural language recall:
curl "https://app.threatrecall.ai/api/recall/search?query=APT-41%20CVEs" \ -H "Authorization: Bearer YOUR_API_KEY"
Graph traversal:
curl https://app.threatrecall.ai/api/graph/nodes/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \ -H "Authorization: Bearer YOUR_API_KEY"
Connect two nodes with a labeled relationship.
curl -X POST https://app.threatrecall.ai/api/graph/edges \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"source_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"target_id": "cve-node-id-here",
"relationship": "exploits",
"confidence": 0.9
}'
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/recall/search?query=... |
Natural language search across your knowledge graph. |
| POST | /api/graph/nodes |
Create a new entity (actor, CVE, IOC, TTP, etc.). |
| GET | /api/graph/nodes/:id |
Get a specific node by ID. |
| GET | /api/graph |
Get the full graph or a subgraph. |
| GET | /api/graph/nodes/:id |
Get a node with all its edges. |
| POST | /api/graph/edges |
Create a relationship edge between two nodes. |
| POST | /api/incidents |
Create an incident record. |
| POST | /api/evidence |
Add an evidence record (STIX-compatible provenance). |
| GET | /api/audit/logs |
Query your audit log (write-once, immutable). |
curl "https://app.threatrecall.ai/api/recall/search?query=ransomware%20CVE" \ -H "Authorization: Bearer YOUR_API_KEY"
{
"results": [
{
"id": "cve-2021-34527",
"type": "cve",
"name": "CVE-2021-34527 (PrintNightmare)",
"score": 0.91,
"matched_on": "name, description, tags"
}
],
"query": "ransomware CVE",
"total": 1
}
Content-Type: application/json header is set, and all required fields are present.