Appearance
API & verbs
The REST API is the single source of truth; the CLI and MCP server are thin clients of it. Base URL: https://api.agentcloud.ac. Interactive docs live at /v1/docs; the machine-readable contract is /skill.md.
Every /v1/ request needs Authorization: Bearer <token>.
Verbs
| CLI | REST | operationId |
|---|---|---|
conway init <name> | POST /v1/projects | createProject |
conway projects list | GET /v1/projects | listProjects |
conway status | GET /v1/projects/{p} | getProject |
conway delete <name> --confirm | DELETE /v1/projects/{p} | deleteProject |
conway deploy | POST /v1/projects/{p}/services/{s}/deploys | createDeploy |
conway services list | GET /v1/projects/{p}/services | listServices |
conway services scale | PATCH /v1/projects/{p}/services/{s} | scaleService |
conway rollback | POST /v1/projects/{p}/services/{s}/rollback | rollbackService |
conway restart | POST /v1/projects/{p}/services/{s}/restart | restartService |
conway logs | GET /v1/projects/{p}/services/{s}/logs (SSE) | streamLogs |
conway env set | PUT /v1/projects/{p}/env | setEnv |
conway env list | GET /v1/projects/{p}/env | listEnv |
conway add <kind> | POST /v1/projects/{p}/datastores | createDatastore |
conway db info | GET /v1/projects/{p}/datastores/{n} | getDatastore |
conway db query | POST /v1/projects/{p}/datastores/{n}/query | queryDatastore |
| (browse) | GET /v1/projects/{p}/datastores/{n}/tables | listDatastoreTables |
conway db backups | GET /v1/projects/{p}/datastores/{n}/backups | listBackups |
conway db backup | POST /v1/projects/{p}/datastores/{n}/backups | createBackup |
conway db restore | POST /v1/projects/{p}/datastores/{n}/restore | restoreBackup |
conway db delete | DELETE /v1/projects/{p}/datastores/{n} | deleteDatastore |
conway tokens issue | POST /v1/tokens | createToken |
conway tokens list | GET /v1/tokens | listTokens |
conway tokens revoke | DELETE /v1/tokens/{id} | revokeToken |
conway events -f | GET /v1/projects/{p}/events (SSE) | streamEvents |
| (poll an op) | GET /v1/operations/{id} | getOperation |
| (stream a deploy) | GET /v1/operations/{id}/stream (SSE) | streamOperation |
Conventions
- Idempotent creates return the existing resource with
"created": false. - Long operations return
202with anoperation_idand astream_url. Poll the operation or consume the SSE stream (log,phase,doneevents) — the stream replays from the start, so reconnecting is lossless. dry_run=trueon a mutating verb returns the planned change without applying it.- Errors are always
{code, message, hint, retryable}. See Error codes.