GET /api/query/stats
Graph-wide node and edge counts plus a threat-intel summary, precomputed and cached. The cheapest way to learn the shape of the graph. Code in five languages.
GET /api/query/stats Documentation
GET /api/query/stats returns graph-wide counts and a threat-intel summary. It is the cheapest way to discover the shape of the graph without running a Cypher scan, and the response is cached for about a minute.
Use it instead of a global Cypher count. A query like MATCH ()-[r]->() RETURN count(r) tries to walk every edge and will time out; the counts here are precomputed and instant.
Base URL: https://graph.whisper.security. No request body; authentication is optional and shared across the API.
Call it
curl -s -A "whisper-client/1.0" \
-H "X-API-Key: $WHISPER_API_KEY" \
"https://graph.whisper.security/api/query/stats"Response
{
"physical": {"nodeCount": 3744608859, "edgeCount": 31249017349},
"virtual": {"nodeCount": 3682888714, "edgeCount": 8003999020},
"total": {"nodeCount": 7427497573, "edgeCount": 39253016369},
"objectCount": 46680513942,
"threatIntel": {
"threatIntelLoaded": true,
"hasTaxonomy": true,
"feedSourceCount": 43,
"categoryCount": 25,
"available": true
}
}
| Field | What it holds |
|---|---|
physical | Nodes and edges stored on disk. |
virtual | Objects computed at query time from live routing and threat-intelligence data, such as ANNOUNCED_BY and LISTED_IN edges. |
total | The sum of physical and virtual. |
objectCount | All nodes and edges added together. |
threatIntel | Whether the threat-intel layer and taxonomy are loaded, plus the feed and category counts. |
The numbers grow over time; the snapshot above is from June 2026. For running actual queries, see POST /api/query.