Kestrel API reference
Every endpoint, what it costs and the lowest seat that may call it.
Connectez-vous pour voir votre propre ID client de test dans les exemples.
Base address: https://developers.aton-network.org. Every request sends Authorization: Bearer <API key with the kestrel right>; every answer is JSON.
| Endpoint | Counts as | From |
|---|---|---|
GET /api/kestrel/v1/signals | 1 call | Builder |
GET /api/kestrel/v1/signals/{symbol} | 1 call | Builder |
GET /api/kestrel/v1/signals/{symbol}/history | 5 calls | Builder |
GET /api/kestrel/v1/signals/stream | 1 call | Pro |
GET /api/kestrel/v1/sentiment | 1 call | Builder |
GET /api/kestrel/v1/sentiment/history | 5 calls | Builder |
GET /api/kestrel/v1/eye | 1 call | Pro |
POST /api/kestrel/v1/backtests | 100 calls | Studio |
GET /api/kestrel/v1/backtests/{id} | 1 call | Studio |
GET /api/kestrel/v1/versions | 1 call | Builder |
POST /api/kestrel/v1/paper/orders | 1 call | Builder |
GET /api/kestrel/v1/paper/bots | 1 call | Builder |
GET /api/kestrel/v1/paper/portfolio | 1 call | Builder |
POST /api/kestrel/v1/live/orders | 1 call | Builder |
Signals
GET /api/kestrel/v1/signals answers the newest signal of each market (?symbol= for one, ?limit= up to 500). GET /api/kestrel/v1/signals/{symbol} answers every strategy and timeframe of one market, and /history?from=&to= its past signals, 30 days kept.
net_bps is the expected return per trade after fees, spread, slippage and funding. A strategy that has not passed its backtest gate shows gate.passed: false: research, not switched on. Builder seats read signals a minute behind and without explanations.
{
"object": "signal",
"version": "v0.1.0",
"venue": "bitunix",
"segment": "usdt-m",
"symbol": "BTCUSDT",
"strategy": "trend",
"interval": "1h",
"at": "2026-10-20T14:00:00.000Z",
"valid_until": "2026-10-20T15:00:00.000Z",
"action": "none",
"direction": { "down": 0.21, "flat": 0.55, "up": 0.24 },
"net_bps": { "long": -3.1, "short": -14.0 },
"cost_bps": 15.2,
"risk": { "sortino_long": -0.05, "sortino_short": -0.4, "mae_long": 0.012, "mae_short": 0.018 },
"gate": { "passed": false },
"readers": { "agree": false, "sentiment": "neutral", "why": "model-no-edge" },
"explanations": [{ "code": "cost_exceeds_edge", "weight": 0.62, "value": 15.2, "unit": "bps", "facts": { "expected_bps": 4.1 } }]
}Streams
GET /api/kestrel/v1/signals/stream (Pro and up) is server-sent events: one signal event for each new signal. Each batch sent counts as one call. A stream lasts 15 minutes; reconnect with Last-Event-ID to carry on.
Sentiment
GET /api/kestrel/v1/sentiment answers mood (level from -1 to 1, speed, how unusual), urgency and the veto for each coin, with alerts by kind and state. /history?from=&to= answers past views, 400 days kept. Headlines are not republished.
The Kestrel Eye
GET /api/kestrel/v1/eye (Pro and up) answers every market's newest signal, the opportunities (a gated signal that says long or short) and the sentiment weather in one call.
Backtests
POST /api/kestrel/v1/backtests (Studio and up) with venue, symbol, strategy, interval, from and to (three years at most) queues a backtest; it counts as 100 calls and answers 202 with its id. GET /api/kestrel/v1/backtests/{id} answers its state and, when done, net_bps, holding_bps and excess_bps: every result is measured against simply holding the market, after fees. Five at once for an app.
Paper trading and live orders
POST /api/kestrel/v1/paper/orders, GET /api/kestrel/v1/paper/bots and GET /api/kestrel/v1/paper/portfolio act for a person who signed in to your app with Atheron and granted the trading scope: send their access token as Atheron-User-Token. Nothing reaches an exchange. POST /api/kestrel/v1/live/orders answers 403 live_trading_closed until live trading opens for everyone; then it places orders with that person's own exchange key, locked to our engine's address, through our engine's routing and guardrails.
Demandez à Atlas
Assistant IAPosez n'importe quelle question sur Se connecter avec Atheron, l'API ou le portail. La réponse vient de notre documentation, avec les liens des pages utilisées.