API reference · Bots
List bots
GET/v1/bots
Your bots, newest first, with their status and your plan's bot allowance.
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).
Request
curl "https://api.langbot.ai/v1/bots" \
-H "Authorization: Bearer $LANGBOT_API_TOKEN"from langbot import LangbotClient
async with LangbotClient() as lb: # reads LANGBOT_API_TOKEN
page = await lb.bots.list()
for b in page["bots"]:
print(b["name"], b["status"])import { LangbotClient } from "@langbotai/sdk";
const lb = new LangbotClient(); // reads LANGBOT_API_TOKEN
const { bots } = await lb.bots.list();
console.log(bots.map((b) => b.status));Response
200 OK
{
"bots": [
{
"id": "bot_01M6G72RFQRQ8JGNG8T1447GGP",
"name": "mention-sniper",
"description": "Kalshi mention markets",
"venues": [
"kalshi",
"polymarket"
],
"test_run_id": null,
"status": "ok",
"status_reason": "last heartbeat 4 s ago",
"created_at": 1793693147639,
"updated_at": 1793693147639,
"last_event_at": 1793693146653,
"last_heartbeat_at": 1793693146653,
"halted_at": null,
"halt_reason": null,
"retention_days": 90,
"wallets": []
}
],
"limits": {
"plan": "pro",
"bots": 5,
"used": 1,
"retention_days": 90
}
}Errors
| Status | code | When |
|---|---|---|
| 401 | auth_required | No token was sent. |
| 401 | token_invalid | The token was not recognised (mistyped, revoked or expired). |
| 429 | rate_limited | Over your request budget; wait Retry-After seconds. |
Every error body is {"detail": …, "code": "…"}; branch on code. All codes: Errors.