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:

ValueWindow
todaySince 00:00 UTC today
24h / 1dRolling last 24 hours
3dRolling last 3 days
7d / weekRolling last 7 days (default on most endpoints)
14d, 21d, 30dRolling last N days
monthRolling last 30 days
customProvide 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.