API reference · Research
List trials
GET/v1/research/trials
Your research ledger, every calibration query and bench run, with how many you ran in the last 30 days.
On this page
Auth. An API token: Authorization: Bearer lb_… (create one). Signed-in web sessions work too.
Limits. Counts against your plan's API requests (60, 600 or 3,000 a minute on Free, Builder and Standard).
Parameters
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
kind | string | no | calibration or bench. |
limit | integer | no | Page size. 1 to 200. Default 50. |
Request
curl "https://api.langbot.ai/v1/research/trials?limit=1" \
-H "Authorization: Bearer $LANGBOT_API_TOKEN"import os
import httpx
r = httpx.get(
"https://api.langbot.ai/v1/research/trials?limit=1",
headers={"Authorization": f"Bearer {os.environ['LANGBOT_API_TOKEN']}"},
)
print(r.json())const res = await fetch("https://api.langbot.ai/v1/research/trials?limit=1", {
headers: { Authorization: `Bearer ${process.env.LANGBOT_API_TOKEN}` },
});
console.log(await res.json());Response
200 OK
{
"ts": 1793500000000,
"count_30d": 4,
"window_ms": 2592000000,
"count": 1,
"trials": [ { "id": "trl_01K8…", "kind": "calibration", "request": { "speaker": "powell", "basis": "mid" }, "summary": { "n": 214 }, "created_at": 1793490000000 } ]
}Every configuration you try is another comparison: with k trials at 90% intervals, about k/10 will look like something by chance.
Errors
| Status | code | When |
|---|---|---|
| 401 | auth_required | No token was sent. |
| 401 | token_invalid | The token was not recognised (mistyped, revoked or expired). |
| 422 | validation_error | A parameter failed validation; detail[].loc names it. |
| 429 | rate_limited | Over your request budget; wait Retry-After seconds. |
Every error body is {"detail": …, "code": "…"}; branch on code. All codes: Errors.