---
title: "Update Participant"
method: PATCH
path: "/conferences/{id}/participants/{participant}"
tags: ["Conferences > participants"]
---

# Update Participant

`PATCH /conferences/{id}/participants/{participant}`

## Request

- Base URL: `https://api.pinnacle.sh`
- URL: `https://api.pinnacle.sh/conferences/{id}/participants/{participant}`
- Auth: API key in header `PINNACLE-API-KEY`

Mute, hold, or whisper. Only the fields you send change, and only real changes are applied.

- `muted: true`: nobody hears them; they still hear everyone.
- `on_hold: true`: they hear hold audio; nobody hears them.
- `whisper_to: ["specialist"]`: only the specialist hears them. `null` goes back to everyone.

## Path parameters

- `id` string, required
- `participant` string, required

## Request body

- UpdateParticipantParams: Only the fields you send change.
  - `label` string, nullable
  - `muted` boolean
  - `on_hold` boolean
  - `whisper_to` string[]: Only these participants (call IDs or labels) can hear this one; it still hears everyone. `null` means everyone hears it (the default). Stored as call IDs, so relabeling someone doesn't change who hears a whisper.

## Response `200`

Updated participant.

- Participant: A call in a conference.
  - `call_id` string, required: The participant is this call; every call API works on it.
  - `conference_id` string, required
  - `label` string, nullable, required
  - `status` 'dialing' | 'ringing' | 'joined' | 'left' | 'failed', required: - `dialing`: A dialed participant whose call hasn't answered yet. - `ringing`: Answered and being connected (or hearing its `announce`). - `joined`: In the conference. - `left`: Hung up or was removed. - `failed`: Never connected (busy, no answer, rejected, or an error).
  - `from` string, nullable, required
  - `to` string, nullable, required
  - `muted` boolean, required: Nobody hears this participant; they still hear everyone.
  - `on_hold` boolean, required: They hear hold audio and nobody hears them.
  - `whisper_to` string[], nullable, required: Call IDs of the only participants who can hear this one, or `null` for everyone.
  - `end_conference_on_leave` boolean, required: When this participant leaves, the conference ends for everyone.
  - `joined_at` string, date-time, nullable, required
  - `left_at` string, date-time, nullable, required
  - `left_reason` 'hangup' | 'removed' | 'busy' | 'no_answer' | 'rejected' | 'failed' | 'conference_ended', required

## Other responses

- `400`: Validation failed. The payload has missing required fields and/or invalid types. <br> See https://zod.dev/error-formatting for more information.
- `401`: The request lacks valid authentication credentials or the provided credentials are invalid. <br> Ensure you're including a valid API key in the request headers and that your account has the necessary permissions to access this endpoint.
- `404`: The requested resource could not be found. <br> This may occur if the identifier is incorrect, the resource has been deleted, or you don't have permission to access it.
- `409`: This action cannot be completed right now because the resource is already being processed or is in a state that does not allow the requested change. Check the latest resource status and try again when it is ready.
- `500`: An unexpected error occurred on Pinnacle's servers while processing your request. <br> If this error persists, please contact support with the request details.
- `502`: One of Pinnacle's providers failed. Please try again later.

---

[API](https://skmtc.dev/pinnacle/apis/pinnacle-2.md) - [All operations](https://skmtc.dev/pinnacle/apis/pinnacle-2/llms.txt) - [OpenAPI document](https://skmtc.dev/pinnacle/apis/pinnacle-2/revisions/45416dadab79?raw)
