Works with any language, any platform, any agent framework. Get your API key, make your first call, scale from there. This is the most flexible integration path.
https://app.threatrecall.aiStart by creating a node in your knowledge graph. This is your agent's first memory write.
curl -X POST https://app.threatrecall.ai/api/nodes \n -H "Authorization: Bearer YOUR_API_KEY" \n -H "Content-Type: application/json" \n -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
}
Use the recall endpoint for natural language search, or the graph endpoint for structured traversal.
Natural language recall:
curl "https://app.threatrecall.ai/api/recall?query=APT-41%20CVEs" \n -H "Authorization: Bearer YOUR_API_KEY"
Graph traversal (get all edges from a node):
curl https://app.threatrecall.ai/api/graph/node/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \n -H "Authorization: Bearer YOUR_API_KEY"
Connect two nodes with a labeled relationship.
curl -X POST https://app.threatrecall.ai/api/graph/edges \n -H "Authorization: Bearer YOUR_API_KEY" \n -H "Content-Type: application/json" \n -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?query=... |
Natural language search across your knowledge graph. |
| POST | /api/nodes |
Create a new entity (actor, CVE, IOC, TTP, etc.). |
| GET | /api/nodes/:id |
Get a specific node by ID. |
| GET | /api/graph |
Get the full graph or a subgraph. |
| GET | /api/graph/node/: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 |
Query your audit log (write-once, immutable). |
GET /api/recall?query=ransomware%20CVE 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 that all required fields are present. Run jsonlint or a similar tool to validate the payload.