> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orgo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Resize computer

> Change CPU, RAM, disk, or bandwidth on a running computer.

Live-resizes a running computer's CPU, RAM, disk, or bandwidth without rebooting. All fields are optional - only include what you want to change.

<Info>
  The computer must be in `running` state. CPU and bandwidth changes apply instantly; RAM and disk grow online. Response surfaces the *applied* values, not the requested ones - if a dimension didn't land, its previous value is returned.
</Info>

## Path parameters

<ParamField path="id" type="string" required>
  Computer ID.
</ParamField>

## Body parameters

<ParamField body="vcpus" type="integer">
  New CPU count: `1`, `2`, `4`, `8`, or `16`. Capped by your plan's per-computer limit.
</ParamField>

<ParamField body="mem_gb" type="integer">
  New RAM in GB: `4`, `8`, `16`, or `32`. A live resize tops out at `32` GB (larger sizes are only available when the computer is first created). Also capped by your plan's per-computer limit.
</ParamField>

<ParamField body="disk_size_gb" type="integer">
  New disk size in GB. **Disk can only grow** - shrinking is not supported.
</ParamField>

<ParamField body="bandwidth_limit_mbps" type="integer">
  New bandwidth cap in Mbps. Capped by your plan limit.
</ParamField>

<ParamField body="auto_stop_minutes" type="integer">
  Optional: also update the auto-stop setting as part of the same call. `0` disables auto-stop.
</ParamField>

## Response

Returns the effective configuration after the resize attempt. Values reflect what the VM actually accepted, not what you asked for.

<ResponseField name="vcpus" type="integer">
  Effective CPU count.
</ResponseField>

<ResponseField name="mem_gb" type="integer">
  Effective RAM in GB.
</ResponseField>

<ResponseField name="disk_size_gb" type="integer">
  Effective disk size in GB.
</ResponseField>

<ResponseField name="bandwidth_limit_mbps" type="integer">
  Effective bandwidth limit in Mbps.
</ResponseField>

<ResponseField name="auto_stop_minutes" type="integer">
  Echoes the requested `auto_stop_minutes` if one was supplied.
</ResponseField>

<ResponseField name="results" type="object">
  Per-dimension result breakdown (`{requested, applied, ok, error}`). Only present if a resize operation ran.
</ResponseField>

<ResponseField name="partial" type="boolean">
  `true` if some dimensions failed while others succeeded.
</ResponseField>

### Status codes

* `200` - All requested dimensions applied successfully
* `207` - Mixed result - some dimensions applied, others failed (check `results`)
* `422` - All requested dimensions failed

## Example

<CodeGroup>
  ```bash cURL theme={null}
  curl -X PATCH https://www.orgo.ai/api/computers/a3bb189e-8bf9-3888-9912-ace4e6543002/resize \
    -H "Authorization: Bearer $ORGO_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "vcpus": 4,
      "mem_gb": 8,
      "disk_size_gb": 30
    }'
  ```

  ```python Python theme={null}
  import requests

  response = requests.patch(
      f"https://www.orgo.ai/api/computers/{computer_id}/resize",
      headers={
          "Authorization": f"Bearer {api_key}",
          "Content-Type": "application/json"
      },
      json={"vcpus": 4, "mem_gb": 8, "disk_size_gb": 30}
  )

  result = response.json()
  print(f"Now at {result['vcpus']} CPU, {result['mem_gb']} GB RAM")
  if response.status_code == 207:
      print("Partial success:", result["results"])
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(`https://www.orgo.ai/api/computers/${computerId}/resize`, {
    method: 'PATCH',
    headers: {
      'Authorization': `Bearer ${apiKey}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ vcpus: 4, mem_gb: 8, disk_size_gb: 30 })
  });

  const result = await response.json();
  console.log(`Now at ${result.vcpus} CPU, ${result.mem_gb} GB RAM`);
  if (response.status === 207) {
    console.log('Partial success:', result.results);
  }
  ```
</CodeGroup>

### Response

```json theme={null}
{
  "vcpus": 4,
  "mem_gb": 8,
  "disk_size_gb": 30,
  "bandwidth_limit_mbps": 1000,
  "results": {
    "vcpus": { "requested": 4, "applied": 4, "ok": true },
    "mem_mb": { "requested": 8192, "applied": 8192, "ok": true },
    "disk_gb": { "requested": 30, "applied": 30, "ok": true }
  },
  "partial": false
}
```

## Errors

* `400` - Invalid value (e.g. shrinking disk, value not in allowed list), or not a metal VM
* `401` - Invalid or missing API key
* `403` - Value exceeds your plan's per-computer limit, or no access
* `404` - Computer not found
* `409` - Computer is not running
* `422` - All requested dimensions failed to apply


## OpenAPI

````yaml PATCH /computers/{id}/resize
openapi: 3.1.0
info:
  title: Orgo API
  description: >-
    Launch cloud computers that AI agents can control and interact with. Create
    workspaces, provision computers, and control them programmatically.
  version: 2.0.0
  contact:
    name: Orgo Support
    email: spencer@orgo.ai
    url: https://orgo.ai
servers:
  - url: https://www.orgo.ai/api
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Workspaces
    description: Organize computers into named workspaces
  - name: Computers
    description: Provision and manage virtual computers
  - name: Computer Lifecycle
    description: Start, stop, and restart computers
  - name: Computer Actions
    description: Control mouse, keyboard, and execute commands
  - name: Streaming
    description: Stream computer display via RTMP
  - name: Files
    description: Upload and download files
  - name: Templates
    description: Author, build, and launch reproducible computers from templates
paths:
  /computers/{id}/resize:
    patch:
      tags:
        - Computers
      summary: Resize computer
      description: >-
        Live-resizes a running computer's CPU, RAM, disk, or bandwidth. All
        fields optional — only include what you want to change.
      operationId: resizeComputer
      parameters:
        - name: id
          in: path
          required: true
          description: Computer ID
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                vcpus:
                  type: integer
                  enum:
                    - 1
                    - 2
                    - 4
                    - 8
                    - 16
                  description: New CPU count. Capped by plan.
                mem_gb:
                  type: integer
                  enum:
                    - 4
                    - 8
                    - 16
                    - 32
                  description: >-
                    New RAM in GB. Live resize is capped at 32 GB (the VMM
                    boot-memory ceiling); larger sizes are only available at
                    create time. Also capped by your plan.
                disk_size_gb:
                  type: integer
                  description: New disk size in GB. Grow only — shrinking not supported.
                bandwidth_limit_mbps:
                  type: integer
                  description: New bandwidth cap in Mbps. Capped by plan.
      responses:
        '200':
          description: Resize complete
          content:
            application/json:
              schema:
                type: object
                properties:
                  vcpus:
                    type: integer
                  mem_gb:
                    type: integer
                  disk_size_gb:
                    type: integer
                  bandwidth_limit_mbps:
                    type: integer
        '400':
          description: Invalid value (e.g. shrinking disk)
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          description: Value exceeds plan limit
        '409':
          description: Computer is not running
components:
  responses:
    Unauthorized:
      description: Invalid or missing API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: Invalid API key
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
          description: Error message
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key authentication. Get your key at orgo.ai/workspaces

````