Ten minutes to a live signal.
Three paths. Pick one. All three work against the same API — you can layer them later.
Path A — curl
Fastest possible check. Free tier, no signup, 60 req/min per IP.
curl https://api.amaneki.com/v1/regime/btcusdt
Returns the current regime + z-score + realized / Parkinson / Yang-Zhang vol for BTCUSDT on the 1m timeframe. Swap the symbol or pass ?timeframe=1h to change.
See the numbers that matter
curl "https://api.amaneki.com/v1/regime/btcusdt/impact?to=high&lookback_days=30"
What happened historically after BTCUSDT entered the HIGH regime? The endpoint returns return distributions at the 1h, 4h, and 24h horizons, computed across every past transition in the window. Sample size grows with time.
Path B — Python SDK
pip install amaneki
import amaneki
client = amaneki.Client() # anonymous free tier by default
snap = client.get_regime("btcusdt")
print(snap["regime"], snap["z_vol"])
# With an API key (after Stripe checkout):
# client = amaneki.Client(api_key="ak_...")
Stream regime changes
import amaneki
async def main():
async with amaneki.AsyncClient() as client:
async for event in client.stream():
if event.get("type") == "regime_transition":
print(event["symbol"], event["from"], "→", event["to"])
import asyncio; asyncio.run(main())
Path C — Webhook into Discord
Requires a Pro Plus key. Creates a subscription that POSTs a Discord-formatted embed into your server whenever a regime transition matches your filter.
curl -X POST https://api.amaneki.com/v1/webhooks \
-H "Authorization: Bearer ak_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://discord.com/api/webhooks/.../...",
"symbols": ["btcusdt", "ethusdt"],
"to_regimes": ["high", "low"]
}'
Discord URLs are auto-detected and the payload is formatted as a proper embed. For raw JSON with HMAC signature (for your own receiver), omit discord.com from the URL or pass "format": "json" explicitly.
Verify the JSON signature
Every non-Discord delivery carries X-Amaneki-Signature: t=<unix>,v1=<hex> — HMAC-SHA256 over f"{t}.{body}" with the signing secret returned at webhook creation. Same scheme as Stripe:
import hmac, hashlib, time
def verify(body: bytes, header: str, secret: str, max_age=300) -> bool:
parts = dict(p.split("=", 1) for p in header.split(","))
t, v1 = int(parts["t"]), parts["v1"]
if abs(time.time() - t) > max_age:
return False
expected = hmac.new(
secret.encode(), f"{t}.".encode() + body, hashlib.sha256
).hexdigest()
return hmac.compare_digest(expected, v1)
What to try next
Read the full API reference — every endpoint, every parameter.
Hit /v1/regime/lead-lag?leader=btcusdt&follower=ethusdt&to=high to see how often BTC's HIGH transitions are followed by ETH's.
Add cross-exchange consensus to catch venue anomalies: /v1/consensus/btcusdt returns Binance + Coinbase + Bybit majority.
Send feedback on a transition you disagree with via POST /v1/feedback. It feeds the nightly recalibration.
Limits
- Free: 60 req/min per IP, no signup.
- Pro: 600 req/min per key, REST + WebSocket, full archive.
- Pro Plus: 6,000 req/min per key, webhooks, multi-timeframe consensus, symbol allowlist, priority polling.
All paid plans include a 14-day trial. Annual billing is 2 months free.