REST API¶
The CLI is a thin client over the control node's REST API at /api/v1.
Anything the CLI does, you can do with an HTTP call — handy for automation, custom
dashboards, or other agents (Claude Code, MCP clients, …).
Interactive reference¶
The API is self-documenting. Against production (https://app.autolab.ai):
| View | URL |
|---|---|
| Swagger UI (try endpoints) | https://app.autolab.ai/api/v1/docs |
| ReDoc (readable reference) | https://app.autolab.ai/api/v1/redoc |
| OpenAPI schema (JSON) | https://app.autolab.ai/api/v1/openapi.json |
| Health probe (no auth) | https://app.autolab.ai/api/v1/health |
Authentication¶
Send a personal access token as a
bearer token. Print yours with autolab token:
export AUTOLAB_TOKEN=$(autolab token)
curl -H "Authorization: Bearer $AUTOLAB_TOKEN" \
https://app.autolab.ai/api/v1/projects/alice/nanochat/
A token acts as you on every project you can access — pipe it, don't paste it where it gets logged.
Example: queue an experiment¶
The submit command is a POST to a project's jobs collection. An idea-only
job (the agent writes the code):
BASE=https://app.autolab.ai/api/v1/projects/alice/nanochat
curl -X POST "$BASE/jobs/" \
-H "Authorization: Bearer $AUTOLAB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"description": "try a cosine LR schedule"}'
Trailing slash on collections
Collection routes (like …/jobs/) expect a trailing slash. The
interactive docs show the exact path for every endpoint.
For day-to-day work the CLI is faster — reach for the raw API when you're scripting against Autolab from another system.