# Factory Environments API

Manage Factory Environments, provider sources, default selection, and build status and diagnostics.

## List Factory Environments visible to the caller

`GET /api/v0/environments`

List Factory Environments visible to the caller.

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

**Parameters**

- `serviceAccountId` (`string`) - Query parameter

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

## Create a Factory Environment

`POST /api/v0/environments`

Create a Factory Environment.

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

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

## List current Factory Environment build statuses

`GET /api/v0/environments/build-statuses`

List current Factory Environment build statuses.

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

**Parameters**

- `environmentIds` (`string[]`, required) - Query parameter
- `serviceAccountId` (`string`) - Query parameter

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

## Provision the organization default Factory Environment if none exists

`POST /api/v0/environments/default`

Provision the organization default Factory Environment if none exists.

```bash
curl -X POST 'https://api.factory.ai/api/v0/environments/default' \
  -H 'Authorization: Bearer $FACTORY_API_KEY'
```

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

## Set the organization default Factory Environment

`PUT /api/v0/environments/default`

Set the organization default Factory Environment.

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

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

## List available Factory Environment sources

`GET /api/v0/environments/source-options`

List available Factory Environment sources.

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

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

## Get a Factory Environment

`GET /api/v0/environments/{environmentId}`

Get a Factory Environment.

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

**Parameters**

- `environmentId` (`string`, required) - Path parameter

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

## Delete a Factory Environment

`DELETE /api/v0/environments/{environmentId}`

Delete a Factory Environment.

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

**Parameters**

- `environmentId` (`string`, required) - Path parameter

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

## Update a Factory Environment

`PATCH /api/v0/environments/{environmentId}`

Update a Factory Environment.

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

**Parameters**

- `environmentId` (`string`, required) - Path parameter

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

## Get Factory Environment Build Diagnostics

`GET /api/v0/environments/{environmentId}/build-diagnostics`

Get Factory Environment Build Diagnostics.

```bash
curl 'https://api.factory.ai/api/v0/environments/{environmentId}/build-diagnostics' \
  -H 'Authorization: Bearer $FACTORY_API_KEY'
```

**Parameters**

- `environmentId` (`string`, required) - Path parameter

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

## Retry a Factory Environment Build

`POST /api/v0/environments/{environmentId}/builds`

Retry a Factory Environment Build.

```bash
curl -X POST 'https://api.factory.ai/api/v0/environments/{environmentId}/builds' \
  -H 'Authorization: Bearer $FACTORY_API_KEY'
```

**Parameters**

- `environmentId` (`string`, required) - Path parameter

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

## Cancel a Factory Environment Build

`POST /api/v0/environments/{environmentId}/builds/{buildId}/cancel`

Cancel a Factory Environment Build.

```bash
curl -X POST 'https://api.factory.ai/api/v0/environments/{environmentId}/builds/{buildId}/cancel' \
  -H 'Authorization: Bearer $FACTORY_API_KEY'
```

**Parameters**

- `environmentId` (`string`, required) - Path parameter
- `buildId` (`string`, required) - Path parameter

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

## Get Factory Environment Build Diagnostics

`GET /api/v0/environments/{environmentId}/builds/{buildId}/diagnostics`

Get Factory Environment Build Diagnostics.

```bash
curl 'https://api.factory.ai/api/v0/environments/{environmentId}/builds/{buildId}/diagnostics' \
  -H 'Authorization: Bearer $FACTORY_API_KEY'
```

**Parameters**

- `environmentId` (`string`, required) - Path parameter
- `buildId` (`string`, required) - Path parameter

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