# Droid Computers API

Provision and manage Factory computers: create, inspect, refresh, restart, and delete.

## List computers

`GET /api/v0/computers`

Returns all persistent computer environments for the authenticated organization.

```bash
curl 'https://api.factory.ai/api/v0/computers' \
  -H 'Authorization: Bearer $FACTORY_API_KEY'
```

**Parameters**

- `hostId` (`string <uuid>`) - Query parameter
- `includeProvisioningSteps` (`string`) - Query parameter. Whether to include provisioning step details. Allowed values: true, false.

**Response:** `200` - Response for status 200

## Create a computer

`POST /api/v0/computers`

Creates a new persistent computer environment.

```bash
curl -X POST 'https://api.factory.ai/api/v0/computers' \
  -H 'Authorization: Bearer $FACTORY_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'
```

**Response:** `201` - Response for status 201

## Get a computer by name

`GET /api/v0/computers/name/{name}`

Returns details about a specific computer by name.

```bash
curl 'https://api.factory.ai/api/v0/computers/name/{name}' \
  -H 'Authorization: Bearer $FACTORY_API_KEY'
```

**Parameters**

- `name` (`string`, required) - Path parameter. Computer name

**Response:** `200` - Response for status 200

## Get a computer

`GET /api/v0/computers/{computerId}`

Returns details about a specific computer by ID.

```bash
curl 'https://api.factory.ai/api/v0/computers/{computerId}' \
  -H 'Authorization: Bearer $FACTORY_API_KEY'
```

**Parameters**

- `computerId` (`string`, required) - Path parameter. Computer ID

**Response:** `200` - Response for status 200

## Delete a computer

`DELETE /api/v0/computers/{computerId}`

Terminal deletion: sets `deletedAt`, revokes the API key, archives sessions, and tears down provider resources for managed computers. Cannot be undone.

```bash
curl -X DELETE 'https://api.factory.ai/api/v0/computers/{computerId}' \
  -H 'Authorization: Bearer $FACTORY_API_KEY'
```

**Parameters**

- `computerId` (`string`, required) - Path parameter. Computer ID

**Response:** `204` - Response for status 204

## Update a computer

`PATCH /api/v0/computers/{computerId}`

Updates a computer by ID.

```bash
curl -X PATCH 'https://api.factory.ai/api/v0/computers/{computerId}' \
  -H 'Authorization: Bearer $FACTORY_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ ... }'
```

**Parameters**

- `computerId` (`string`, required) - Path parameter. Computer ID

**Response:** `200` - Response for status 200

## Retry the install-dependencies step

`POST /api/v0/computers/{computerId}/install-deps`

Resets the install-deps provisioning step to Running and spawns a fresh install session. No-op (409) if a session is already running.

```bash
curl -X POST 'https://api.factory.ai/api/v0/computers/{computerId}/install-deps' \
  -H 'Authorization: Bearer $FACTORY_API_KEY'
```

**Parameters**

- `computerId` (`string`, required) - Path parameter. Computer ID

**Response:** `202` - Response for status 202

## Get computer metrics

`GET /api/v0/computers/{computerId}/metrics`

Returns CPU, memory, and disk usage metrics for an active E2B computer.

```bash
curl 'https://api.factory.ai/api/v0/computers/{computerId}/metrics' \
  -H 'Authorization: Bearer $FACTORY_API_KEY'
```

**Parameters**

- `computerId` (`string`, required) - Path parameter. Computer ID
- `start` (`string <date-time>`) - Query parameter. Start of time range (ISO 8601)

**Response:** `200` - Response for status 200

## Refresh a computer

`POST /api/v0/computers/{computerId}/refresh`

Refreshes a computer by re-configuring credentials and environment. Currently configures git credentials for all connected SCM integrations.

```bash
curl -X POST 'https://api.factory.ai/api/v0/computers/{computerId}/refresh' \
  -H 'Authorization: Bearer $FACTORY_API_KEY'
```

**Parameters**

- `computerId` (`string`, required) - Path parameter. Computer ID

**Response:** `200` - Response for status 200

## Restart a managed computer

`POST /api/v0/computers/{computerId}/restart`

Resumes a paused managed sandbox. No-op if the sandbox is already running.

```bash
curl -X POST 'https://api.factory.ai/api/v0/computers/{computerId}/restart' \
  -H 'Authorization: Bearer $FACTORY_API_KEY'
```

**Parameters**

- `computerId` (`string`, required) - Path parameter. Computer ID

**Response:** `200` - Response for status 200
