Navigation
Getting Started
Directing
Watching
Shaping
Budgets
Problems
Concepts
Reference
API

Overview

The Exocorp platform exposes a REST API for managing exocorps programmatically — the registry (your own exocorps), the dashboard (rollup views), admin (platform-owner operations), runtime (per-exocorp state), and the operator-client API used by coding agents during signup.

Authentication

Most endpoints require an authenticated session via the standard /api/auth/login flow, which sets a session cookie. The operator-clients API uses a two-token signup flow: a draft access token returned at draft creation, then a trusted-client bearer token after redeem.

  • POST /api/auth/login — sign in with email + password (or recovery kit).
  • POST /api/auth/signup — create a new platform user and apply signup credit.
  • POST /api/auth/logout — terminate the session.
  • GET /api/auth/me — current identity, roles, and platform-owner status.

The registry — your own exocorps

The registry endpoints are scoped to exocorps you own or are a member of. Used by both the dashboard UI and external tooling.

MethodPathPurpose
GET/api/registry/my-companiesYour fleet — every exocorp you can access.
GET/api/registry/companies/:idDetail and current status of one exocorp.
POST/api/registry/companies/:id/provisionProvision (or start) the runtime.
POST/api/registry/companies/:id/updateApply a release update.
POST/api/registry/companies/:id/restartRestart from last successful provision.
POST/api/registry/companies/:id/stopHalt the runtime.
GET/api/registry/companies/:id/bindingsProvider credential bindings.
GET / POST/api/registry/companies/:id/draftRead or save the company draft.
GET/api/registry/companies/:id/update-handshakeEvaluate whether an update is available.
GET / POST/api/registry/provider-secretsManage provider credentials at account scope.
GET/api/registry/company-releases/currentCurrently published release manifest.
GET/api/registry/company-releases/catalogCatalog of available release versions.

The dashboard — rollup views

MethodPathPurpose
GET/api/dashboard/summaryFleet overview: companies, status, provider-credential coverage.

Admin — platform-owner operations

Admin endpoints require platform-owner role. Most lifecycle actions live under /api/admin/companies/:id/actions (see Lifecycle controls for the full action surface).

MethodPathPurpose
GET/api/admin/companiesAll exocorps, with job metadata.
GET/api/admin/companies/:id/detailsAdmin-detailed view of one exocorp.
GET/api/admin/companies/:id/runtimeRuntime health and state.
POST/api/admin/companies/:id/actionsPause / resume / update / restart / reprovision / rollback / stop / destroy.
GET/api/admin/billing/accountsAll billing accounts and state.
GET/api/admin/runtime-statsPlatform-wide runtime metrics.

Runtime — per-exocorp state

MethodPathPurpose
GET/api/runtime/billing/usagePer-exocorp usage events.
GET/api/runtime/execution-providers/stateProvider health and capacity.

Operator clients — post-signup agents

Operator-client access is attached after a human signs up and approves the agent from an authenticated browser handoff. Public agent-first signup is not supported. The public routing skill is hosted at /SKILL.md, and post-signup agent guidance is hosted at /skills/connect-agent.md.

Errors and conflicts

API endpoints return structured errors with HTTP status codes that mean what they say:

  • 400Validation error (bad input, missing required field, bad JSON).
  • 401Authentication required.
  • 403Forbidden (insufficient role, e.g. trying to hit an admin endpoint without platform-owner).
  • 404Resource not found.
  • 409Conflict — the action can’t be performed in the current state (e.g. already provisioning, already running, missing price book, release lookup failed).
  • 500Internal error. The platform records the trace; you can usually retry.
Next