Getting started
Make your first authenticated request in under a minute.
1. Base URL
All endpoints live under /api/ on:
https://dashboard.martha-honeypot.com
2. Get a key
Keys are provisioned by the SilverSentinel team — email
brianley@silversentinel.ai.
A key looks like bbo_XXXXXXXX… and is shown once at creation, so
store it in a secret manager or an environment variable:
export BBO_API_KEY="bbo_your_key_here"
3. Your first request
Confirm the key works by fetching your own identity:
curl -H "Authorization: Bearer $BBO_API_KEY" \
"https://dashboard.martha-honeypot.com/api/me"
Response:
{ "email": "you@yourorg.com", "role": "viewer", "is_authenticated": true }
4. Pull some intel
Get the headline KPIs for the last 7 days:
curl -H "Authorization: Bearer $BBO_API_KEY" \
"https://dashboard.martha-honeypot.com/api/kpis/summary?range=7d"
Python (requests):
import os, requests
BASE = "https://dashboard.martha-honeypot.com"
H = {"Authorization": f"Bearer {os.environ['BBO_API_KEY']}"}
r = requests.get(f"{BASE}/api/kpis/summary", params={"range": "7d"}, headers=H)
r.raise_for_status()
print(r.json()["calls_received"], "calls,",
round(r.json()["hook_rate"] * 100, 1), "% hooked")
Date ranges
Most read endpoints accept a range query parameter. Supported presets:
| Value | Window |
|---|---|
today | Since 00:00 UTC today |
24h / 1d | Rolling last 24 hours |
3d | Rolling last 3 days |
7d / week | Rolling last 7 days (default on most endpoints) |
14d, 21d, 30d | Rolling last N days |
month | Rolling last 30 days |
custom | Provide start and end (ISO-8601) |
Custom window, two equivalent forms:
# explicit start/end params
.../api/kpis/summary?range=custom&start=2026-06-01T00:00:00Z&end=2026-06-30T23:59:59Z
# compact single-string form (as the dashboard sends it)
.../api/kpis/summary?range=custom:2026-06-01:2026-06-30
Every response embeds the resolved window it used, so you can echo it back:
"range": { "start_utc": "...", "end_utc": "...", "label": "Last 7 days" }
Response shape
Responses are JSON. List endpoints wrap their rows in an envelope with metadata:
{
"range": { "start_utc": "...", "end_utc": "...", "label": "Last 7 days" },
"total": 128,
"items": [ /* ... rows ... */ ]
}
Timestamps are ISO-8601 UTC. Money is a plain number in USD. Rates
(e.g. hook_rate) are floats from 0.0–1.0.