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

# Update an environment

> Update the properties of an environment, such as name, description, or configuration.

`POST /api/v1/cloud/environments/{environment_id}`

Updates the properties of the specified environment (name, description, configuration, and so on).

## Headers

| Header          | Required | Description        |
| --------------- | -------- | ------------------ |
| `Authorization` | Yes      | `Bearer <PAT>`     |
| `Content-Type`  | Yes      | `application/json` |

## Path parameters

| Parameter        | Type   | Required | Description                                            |
| ---------------- | ------ | -------- | ------------------------------------------------------ |
| `environment_id` | string | Yes      | Environment unique identifier (with the `env_` prefix) |

## Request body

Only the fields included in the request are updated; omitted fields remain unchanged.

| Field         | Type                                                                            | Required | Description                                                                               |
| ------------- | ------------------------------------------------------------------------------- | -------- | ----------------------------------------------------------------------------------------- |
| `name`        | string                                                                          | No       | Environment name                                                                          |
| `description` | string                                                                          | No       | Environment description                                                                   |
| `config`      | [Environment config](/cloud-agents/api/environments/schemas#environment-config) | No       | Replaces the stored environment configuration                                             |
| `metadata`    | object                                                                          | No       | Metadata patch. String values upsert keys; `null` values delete keys from stored metadata |

## Example request

```bash theme={null}
curl -s -X POST 'https://api.qoder.com/api/v1/cloud/environments/env_019e3bb39b6774d8878cd0b9d237574b' \
  -H "Authorization: Bearer $QODER_PAT" \
  -H 'Content-Type: application/json' \
  -d '{
    "description": "Environment used for API documentation testing"
  }'
```

## Example response

**HTTP 200 OK**

```json theme={null}
{
  "id": "env_019e3bb39b6774d8878cd0b9d237574b",
  "type": "environment",
  "name": "doc-test-env",
  "description": "Environment used for API documentation testing",
  "config": {
    "type": "cloud",
    "networking": {
      "type": "limited",
      "allowed_hosts": [],
      "allow_package_managers": false,
      "allow_mcp_servers": false
    },
    "packages": {
      "type": "packages",
      "apt": ["curl"],
      "npm": [],
      "pip": []
    }
  },
  "metadata": {},
  "archived_at": null,
  "created_at": "2026-05-18T15:28:07.017808Z",
  "updated_at": "2026-05-18T15:28:08.093156Z"
}
```

## Response fields

| Field         | Type                                                                            | Description                                       |
| ------------- | ------------------------------------------------------------------------------- | ------------------------------------------------- |
| `id`          | string                                                                          | Environment unique identifier                     |
| `type`        | string                                                                          | Always `"environment"`                            |
| `name`        | string                                                                          | Environment name                                  |
| `description` | string                                                                          | Updated description                               |
| `config`      | [Environment config](/cloud-agents/api/environments/schemas#environment-config) | Environment configuration                         |
| `metadata`    | [Metadata object](/cloud-agents/api/conventions/schemas#metadata-object)        | Custom metadata                                   |
| `archived_at` | string\|null                                                                    | Archive time (ISO 8601), `null` when not archived |
| `created_at`  | string                                                                          | Creation time (ISO 8601)                          |
| `updated_at`  | string                                                                          | Last update time (refreshed)                      |

## Errors

| HTTP | Type                    | Trigger                                             |
| ---- | ----------------------- | --------------------------------------------------- |
| 400  | `invalid_request_error` | Invalid request body, `config`, or `metadata` value |
| 401  | `authentication_error`  | PAT invalid or expired                              |
| 403  | `permission_error`      | Not authorized for this resource                    |
| 404  | `not_found_error`       | Environment with the given ID does not exist        |

See [Errors](/cloud-agents/api/conventions/errors) for the full error envelope.

## Notes

* Omitted fields remain unchanged.
* When `config` is provided, it replaces the stored configuration.
* When `metadata` is provided, string values are merged into the stored metadata object and `null` values delete existing keys.

## Related

<CardGroup cols={2}>
  <Card title="Cloud environment setup" icon="server" href="/cloud-agents/environments">
    Choose the container, network, and dependencies your agent runs in.
  </Card>
</CardGroup>
