Skip to main content
Creating an agent is asynchronous. POST /api/v1/agents inserts a row with status=provisioning, seeds URLs, enqueues work, and returns in about a second. The worker then walks a strict, ordered set of readiness gates stored on the agent:
Poll GET /api/v1/agents/{id} until stages complete and status is running (or error).

Stage order

Stages are not parallel. Later stages stay pending until earlier ones succeed.

Status values

Each stage object looks like:
Treat coral/error as terminal for that attempt. Amber/waiting is normal during Autopilot pull, DNS, and HTTP backoff.

Worked polling example

Typical wall time is a few minutes (image pull + PVC + DNS + HTTP gate). The product UI shows a similar poll cadence (~2.5s).

Retries and reprovision

  • Hard failures during provision may return 503 from the worker so Cloud Tasks retries with backoff.
  • After a sticky error, owners can call POST /api/v1/agents/{id}/reprovision to re-enqueue.
  • Restore flows add restore_* keys alongside the create stages; hostname stays the same.

After success

When status is running:
  • Open dashboard_url (basic auth — reveal password with POST …/credentials/reveal)
  • Call the tenant Hermes API at api_url with the tenant API key (not your so_ control-plane key)