# GET /v1/deployments/{deployment_id}/diff

> What changed between two versions (?from=&to=).

In [Deployments API](https://vestra.ai/developers/reference/api/deployments.md): How your Bash is set up, in versions: apply a whole vestra.yaml, promote, roll back, and the interview that drafts the file.

Send `Authorization: Bearer vk_test_...` on every call.

What changed between two versions (?from=&to=).

Your API key, scope `setup` or `all`. On the card: [`deploy`](https://vestra.ai/developers/deploy.md). Over HTTP it is made from the contract: fill in each {…} and every value.

## Request

Path:

- `deployment_id` (`string`, required): The deployment's id (`dep_...`). The /v1/deployments routes also take its name.

Query:

- `from` (`integer`, required): The version to compare from.
- `to` (`integer`, required): The version to compare to.

## Answers 200

- `object` (`"deployment_diff"`): Always `deployment_diff`.
- `deployment_id` (`string`): The deployment's id. Example: `dep_8f2k`.
- `from` (`integer`): The version compared from.
- `to` (`integer`): The version compared to.
- `changes` (`object[]`): Each setting that differs; empty when the two run the same.
  - `path` (`string`): The setting that changed, as a path such as `limits.spend_per_task_usd`.
  - `from` (`any`): Its value in the version compared from; absent when it was not set.
  - `to` (`any`): Its value in the version compared to; absent when it is not set.

## Code

**HTTP**

```bash
curl "$VESTRA_BASE_URL/v1/deployments/{deployment_id}/diff?from=...&to=..." \
  -H "Authorization: Bearer $VESTRA_API_KEY"
```

**TypeScript, Python, CLI, MCP**: No sample in your language for this route, so here it is over HTTP.
