# Replace test settings (/docs/api/voice-agents/agent-tests/replaceAgentTestSettings)

> For the complete documentation index, see [llms.txt](https://docs.tandemcx.ai/llms.txt). Any page on this site can be fetched as Markdown by appending `.md` to its URL.

`PUT /v1/agent-media/agents/{agentId}/test-settings`

Replace test settings

Replace the agent's test settings. Omitted fields take their defaults. Both models must be Bedrock models from the agent model catalog. A run reads the settings once, when it starts.

## Request

**Base URL:** `https://api.tandemcx.ai`

**Authentication:** `Authorization: Bearer <token>` — A Tandem bearer token. Requests are scoped to the organization the token belongs to; no organization header is required.

### Path parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `agentId` | string | Yes | The agent's unique ID. |

### Body (`application/json`) — required

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `simulatorModel` | string | No | The model that plays the caller in simulated tests. A Bedrock model `id` from the models endpoint. A model that accepts only a fixed temperature (Claude Haiku 5.5) can't be used. |
| `judgeModel` | string | No | The model that grades criteria. Same rule as `simulatorModel`. |
| `agentTemperature` | number | No | Overrides the agent's temperature for test turns only. Unset uses the version's own. Lowers variance; does not make runs identical. Not applied to a model that accepts only a fixed temperature (Claude Haiku 5.5), which runs at its own. |
| `defaultRepeat` | integer | No | — |

## Responses

### 200 — The saved settings, with defaults filled in.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `settings` | object | No | — |
| `settings.simulatorModel` | string | No | The model that plays the caller in simulated tests. A Bedrock model `id` from the models endpoint. A model that accepts only a fixed temperature (Claude Haiku 5.5) can't be used. |
| `settings.judgeModel` | string | No | The model that grades criteria. Same rule as `simulatorModel`. |
| `settings.agentTemperature` | number | No | Overrides the agent's temperature for test turns only. Unset uses the version's own. Lowers variance; does not make runs identical. Not applied to a model that accepts only a fixed temperature (Claude Haiku 5.5), which runs at its own. |
| `settings.defaultRepeat` | integer | No | — |

### 400 — `error` is `invalid_settings`, with `errors` naming each offending field; `unsupported_model`, with a `message`, when a model is not a Bedrock model from the catalog or accepts only a fixed temperature (Claude Haiku 5.5); or `invalid_agentId` for a malformed path.

Type: one of: object | object

### 401 — Missing, malformed, or expired bearer token.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `error` | string | No | A stable machine-readable code. |
| `message` | string | No | A human-readable explanation, safe to show to an end user. Present on errors an operator can act on; browser clients display this field in preference to a generic fallback. |
| `limit` | integer | No | Present on some errors (e.g. `prompt_too_long`) that reject a value against a fixed bound: the bound itself. |
| `length` | integer | No | Present on some errors (e.g. `prompt_too_long`) that reject a value against a fixed bound: the measured size of the rejected value. |
| `reason` | string | No | Present on some errors (e.g. `invalid_avatar_image`) that have more than one cause: which one applied. |

### 404 — `error` is `not_found`: the resource does not exist.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `error` | string | No | A stable machine-readable code. |
| `message` | string | No | A human-readable explanation, safe to show to an end user. Present on errors an operator can act on; browser clients display this field in preference to a generic fallback. |
| `limit` | integer | No | Present on some errors (e.g. `prompt_too_long`) that reject a value against a fixed bound: the bound itself. |
| `length` | integer | No | Present on some errors (e.g. `prompt_too_long`) that reject a value against a fixed bound: the measured size of the rejected value. |
| `reason` | string | No | Present on some errors (e.g. `invalid_avatar_image`) that have more than one cause: which one applied. |
