---
title: "Apply a staged voice-model upgrade. Platform-operator only: requires the wildcard admin key in addition to agents:write, so customer kc_live_* keys are always rejected. Fails closed today — no request body is accepted, no receipt is persisted, and no model or customer notification is changed."
method: POST
path: "/v1/model-upgrades"
---

# Apply a staged voice-model upgrade. Platform-operator only: requires the wildcard admin key in addition to agents:write, so customer kc_live_\* keys are always rejected. Fails closed today — no request body is accepted, no receipt is persisted, and no model or customer notification is changed.

`POST /v1/model-upgrades`

## Request

- Base URL: `https://www.kaicalls.com/api`
- URL: `https://www.kaicalls.com/api/v1/model-upgrades`
- Auth: HTTP bearer

## Query parameters

- `business_id` string, required

## Other responses

- `400`: business_id was not supplied.
- `403`: Not the operator principal, missing agents:write, or the business is not accessible.
- `503`: upgrade_bridge_unavailable — the executor is not implemented yet. Returned alongside the same capability contract as GET. This is the only outcome at present.

---

[API](https://skmtc.dev/kaicalls/apis/kaicalls-public-api.md) · [All operations](https://skmtc.dev/kaicalls/apis/kaicalls-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/kaicalls/apis/kaicalls-public-api/revisions/e607fc6cf36e?raw)
