Create computer
POST
/v1/environmentsCreate a persistent computer workspace with optional GUI access, runtimes, packages, and MCP servers.
How to call this endpoint
Every ACP API request uses bearer authentication. The examples here show the actual request path, auth header, and body shape that the platform expects.
Path, query, and header parameters
These parameters control which ACP object the endpoint acts on and how the request is processed.
Path parameters
None.
Query parameters
None.
Body schema
Content type: application/json · Required
| Field | Type | Required | Description |
|---|---|---|---|
| projectId | string | No | Optional project that owns this computer. |
| name | string | Yes | Human-readable computer name. |
| description | string | No | Description of what this computer is used for. |
| environmentVariables | object[] | No | Plaintext environment variables injected into the workspace. |
| environmentVariables[].key | string | No | — |
| environmentVariables[].value | string | No | — |
| secrets | object[] | No | Secret values mounted into the workspace at runtime. |
| setupScripts | string[] | No | Shell commands to run during workspace setup. |
| mcpServers | object[] | No | MCP servers connected to the computer. |
| mcpServers[].name | string | No | Human-readable name. |
| mcpServers[].type | stdio | http | No | — |
| mcpServers[].command | string | No | For stdio servers |
| mcpServers[].args | string[] | No | — |
| mcpServers[].url | string | No | For HTTP servers |
| mcpServers[].bearerToken | string | No | — |
| mcpServers[].enabled | boolean | No | — |
| internetAccess | boolean | No | Whether the computer may access the public internet. |
| isDefault | boolean | No | Mark this computer as the default for the workspace. |
| baseImage | string | No | Base image used for the workspace container. |
| dockerfileExtensions | string | No | Additional Dockerfile instructions appended to the generated base. |
| runtimes | object | No | Runtime versions to pin, such as Node or Python. |
| packages | object | No | — |
| packages.system | string[] | No | — |
| packages.python | string[] | No | — |
| packages.node | string[] | No | — |
| guiEnabled | boolean | No | Enable a browser-accessible desktop GUI for the computer. |
What the API returns
Each response code below includes the documented payload shape for the ACP API.
201Environment createdapplication/json
| Field | Type | Required | Description |
|---|---|---|---|
| environment | object | No | — |
| environment.id | string | No | Unique identifier. |
| environment.projectId | string | No | Project ID. |
| environment.name | string | No | Human-readable name. |
| environment.description | string | No | Human-readable description. |
| environment.environmentVariables | object[] | No | — |
| environment.environmentVariables[].key | string | No | — |
| environment.environmentVariables[].value | string | No | — |
| environment.secrets | object[] | No | — |
| environment.setupScripts | string[] | No | — |
| environment.mcpServers | object[] | No | — |
| environment.mcpServers[].name | string | No | Human-readable name. |
| environment.mcpServers[].type | stdio | http | No | — |
| environment.mcpServers[].command | string | No | For stdio servers |
| environment.mcpServers[].args | string[] | No | — |
| environment.mcpServers[].url | string | No | For HTTP servers |
| environment.mcpServers[].bearerToken | string | No | — |
| environment.mcpServers[].enabled | boolean | No | — |
| environment.internetAccess | boolean | No | — |
| environment.isDefault | boolean | No | — |
| environment.baseImage | string | No | — |
| environment.dockerfileExtensions | string | No | — |
| environment.runtimes | object | No | — |
| environment.packages | object | No | — |
| environment.packages.system | string[] | No | — |
| environment.packages.python | string[] | No | — |
| environment.packages.node | string[] | No | — |
| environment.guiEnabled | boolean | No | — |
| environment.buildStatus | string | No | — |
| environment.buildError | string | No | — |
| environment.imageTag | string | No | — |
| environment.lastBuildAt | string | No | — |
| environment.createdAt | string | No | ISO 8601 timestamp. |
| environment.updatedAt | string | No | ISO 8601 timestamp. |