API reference · Monitoring

Get a bot's summary

GET/v1/bots/{bot_id}/summary

Realized and marked P&L, fees, fills, open positions, max drawdown, last heartbeat and status for one bot.

On this page

Auth. An account token (Authorization: Bearer lb_…) or a signed-in web session. A report-only token (lbr_…) is refused here with 403 scope_denied.

Limits. Counts against your plan's API requests (60, 600 or 3,000 a minute on Free, Builder and Standard).

Parameters

Path parameters

NameTypeRequiredDescription
bot_idstringyesThe bot id (bot_…).

Request

Terminal
curl "https://api.langbot.ai/v1/bots/bot_01M6G72RFQRQ8JGNG8T1447GGP/summary" \
  -H "Authorization: Bearer $LANGBOT_API_TOKEN"

Response

200 OK

JSON
{
  "bot_id": "bot_01M6G72RFQRQ8JGNG8T1447GGP",
  "as_of": 1793693150709,
  "status": "ok",
  "status_reason": "last heartbeat 4 s ago",
  "last_event_at": 1793693146653,
  "last_heartbeat_at": 1793693146653,
  "halted_at": null,
  "halt_reason": null,
  "pnl": {
    "realized": 0.7,
    "fees": 0.15,
    "realized_net": 0.55,
    "unrealized": 1.4,
    "marked_net": 1.95,
    "today_net": 0.55
  },
  "fills": 2,
  "contracts": 20.0,
  "volume_usd": 8.9,
  "open_positions": 1,
  "positions_truncated": false,
  "max_drawdown": 0.0,
  "marks": {
    "settled": 0,
    "last_trade": 0,
    "last_fill": 1,
    "none": 0
  },
  "sources": {
    "client": 2,
    "chain": 0
  },
  "retention_days": 90,
  "test_run_id": null,
  "pending_fills": 0
}

P&L is per market in Yes terms with average cost: buying No at p counts as selling Yes at 1 − p. realized_net = realized − fees; open positions are marked at the settled result, else the last recorded trade, else the bot's last fill (marks counts each). today_net is realized net since 00:00 UTC plus the change in marked P&L since then. max_drawdown is the largest fall of hourly cumulative realized net from its peak within retention. pending_fills are fills received in the last 2 seconds, applied on the next read. These are measurements of what your bot reported, not advice.

Errors

StatuscodeWhen
404not_foundNo bot with that id on your account (or it was deleted).
401auth_requiredNo token was sent.
401token_invalidThe token was not recognised (mistyped, revoked or expired).
422validation_errorA parameter failed validation; detail[].loc names it.
429rate_limitedOver your request budget; wait Retry-After seconds.

Every error body is {"detail": …, "code": "…"}; branch on code. All codes: Errors.