Quickstart

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.

Never put your Bearer key in browser-side JavaScript. Anything bundled into a web page is visible in DevTools and the request gets billed to your account. Keep paid keys server-side only. For client-side demos the anonymous free tier (60 rpm/IP) works without a key.

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

01

Read the full API reference — every endpoint, every parameter.

02

Hit /v1/regime/lead-lag?leader=btcusdt&follower=ethusdt&to=high to see how often BTC's HIGH transitions are followed by ETH's.

03

Add cross-exchange consensus to catch venue anomalies: /v1/consensus/btcusdt returns Binance + Coinbase + Bybit majority.

04

Send feedback on a transition you disagree with via POST /v1/feedback. It feeds the nightly recalibration.

Limits

All paid plans include a 14-day trial. Annual billing is 2 months free.