Skip to content

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.