--- title: Containers description: Deploy and manage containers on Eliza Cloud. --- # Containers Deploy and manage Docker containers. The current public API accepts a generic image reference in `image`; it is not limited to ECR images. ## List Containers
GET /api/v1/containers
Get all containers for your organization. ### Response ```json { "success": true, "data": [ { "id": "550e8400-e29b-41d4-a716-446655440000", "name": "my-app", "project_name": "my-app", "status": "running", "image_tag": "ghcr.io/acme/my-app:latest", "load_balancer_url": "https://my-app.example.com", "cpu": 1792, "memory": 1792, "port": 3000, "desired_count": 1, "billing_status": "active", "created_at": "2026-05-05T10:30:00Z" } ] } ``` --- ## Create Container
POST /api/v1/containers
Deploy a new container. Returns a container record. ### Request The request body is **camelCase** — the server validates with a strict schema that **silently drops unknown keys**, so a snake_case key (e.g. `environment_vars`) is discarded and your `ELIZA_APP_ID` never reaches the container. ```json { "name": "My App", "projectName": "my-app", "image": "ghcr.io/elizaos/example-edad:showcase", "port": 3000, "cpu": 1792, "memoryMb": 1792, "healthCheckPath": "/health", "environmentVars": { "PORT": "3000", "ELIZA_APP_ID": "uuid-abc123" } } ``` ### Parameters | Parameter | Type | Required | Description | | --------- | ---- | -------- | ----------- | | `name` | string | yes | Display name. | | `projectName` | string | no | Stable project identifier. | | `image` | string | yes | Full image reference, for example `ghcr.io/owner/repo:tag`. | | `port` | integer | no | Container port. Default: 3000. | | `cpu` | integer | no | CPU units. Default: 1792. | | `memoryMb` | integer | no | Memory in MB. Default: 1792. | | `healthCheckPath` | string | no | Health check endpoint. Default: `/health`. | | `environmentVars` | object | no | String environment variables (this is where `ELIZA_APP_ID` belongs). | ### Response ```json { "success": true, "data": { "id": "550e8400-e29b-41d4-a716-446655440000", "name": "My App", "project_name": "my-app", "status": "deploying", "load_balancer_url": "https://my-app.example.com", "cpu": 1792, "memory": 1792, "port": 3000, "desired_count": 1, "health_check_path": "/health" } } ``` Container deployments require sufficient credits or available earnings and are subject to organization quotas. --- ## Get Container
GET /api/v1/containers/{"{id}"}
Get container details and deployment status. ### Status Values | Status | Description | | ------ | ----------- | | `pending` | Deployment initiated. | | `deploying` | Image pull or container start in progress. | | `running` | Container is healthy and accessible. | | `failed` | Deployment failed; check `error_message` and logs. | | `stopped` | Container stopped. | | `suspended` | Billing or policy suspension. | --- ## Update Container
PATCH /api/v1/containers/{"{id}"}
Patch bodies are action-discriminated. Send exactly one of these shapes: ```json { "action": "restart" } ``` ```json { "action": "setEnv", "environmentVars": { "PORT": "3000", "ELIZA_APP_ID": "uuid-abc123" } } ``` ```json { "action": "scale", "desiredCount": 1 } ``` The current backend supports `desiredCount: 1`. --- ## Delete Container
DELETE /api/v1/containers/{"{id}"}
Stop and delete a container. --- ## Container Logs
GET /api/v1/containers/{"{id}"}/logs
Get plain-text container logs. ### Query Parameters | Parameter | Type | Description | | --------- | ---- | ----------- | | `tail` | integer | Number of lines. Default: 200. | --- ## Container Metrics
GET /api/v1/containers/{"{id}"}/metrics
Get container metrics. --- ## Quota
GET /api/v1/containers/quota
Get organization container quota. --- ## Credentials
POST /api/v1/containers/credentials
Create or fetch registry credential helper data when configured. Public container creation can also use any image reference that the target node can pull.