Getting Started

Last updated: March 2026

Get an API key

  1. Go to console.whisper.security and create a free account
  2. Once logged in, generate an API key from the console dashboard

Server and authentication

Base URLhttps://graph.whisper.security
AuthenticationX-API-Key header on every request

All examples below assume:

BASE=https://graph.whisper.security
API_KEY=YOUR_API_KEY

Your first query

Resolve a hostname to its IP address:

curl -s -X POST $BASE/api/query \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $API_KEY" \
  -d '{"query": "MATCH (h:HOSTNAME {name: \"www.google.com\"})-[:RESOLVES_TO]->(ip:IPV4) RETURN h.name, ip.name"}'

Response:

{
  "columns": ["h.name", "ip.name"],
  "rows": [
    {"h.name": "www.google.com", "ip.name": "142.250.64.100"},
    {"h.name": "www.google.com", "ip.name": "142.251.150.119"},
    {"h.name": "www.google.com", "ip.name": "142.251.151.119"},
    {"h.name": "www.google.com", "ip.name": "142.251.152.119"},
    {"h.name": "www.google.com", "ip.name": "142.251.153.119"},
    {"h.name": "www.google.com", "ip.name": "142.251.154.119"},
    {"h.name": "www.google.com", "ip.name": "142.251.155.119"},
    {"h.name": "www.google.com", "ip.name": "142.251.156.119"},
    {"h.name": "www.google.com", "ip.name": "142.251.157.119"}
  ],
  "statistics": {"rowCount": 9, "executionTimeMs": 6}
}

IP addresses change with DNS updates; the structure is what matters.

Understanding results

Every response has three fields:

FieldContents
columnsColumn names, matching your RETURN clause
rowsArray of objects, one per result row
statisticsrowCount and executionTimeMs (server-side only, no network latency)

For full endpoint documentation, see the Cypher API Reference. For query syntax, see the Cypher Language Reference.