curl \
--request PATCH \
--url "https://api.breeze.blue/v1/studio/projects/prj_example/clips/clp_example" \
--header "xi-api-key: $BREEZE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"expected_edit_token": "replace_with_current_edit_token",
"operation_id": "123e4567-e89b-42d3-a456-426614174000",
"script": "A new day begins.",
"trailing_silence_ms": null
}'from breeze_blue import BreezeBlue
client = BreezeBlue()
result = client.studio.clips.update("prj_example", "clp_example", {
"expected_edit_token": "replace_with_current_edit_token",
"operation_id": "123e4567-e89b-42d3-a456-426614174000",
"script": "A new day begins.",
"trailing_silence_ms": None,
})import { BreezeBlueClient } from "@breeze.blue/sdk";
const client = new BreezeBlueClient();
const result = await client.studio.clips.update("prj_example", "clp_example", {
expectedEditToken: "replace_with_current_edit_token",
operationId: "123e4567-e89b-42d3-a456-426614174000",
script: "A new day begins.",
trailingSilenceMs: null,
});{
"project": {
"id": "<string>",
"title": "<string>",
"description": "<string>",
"tts_settings": {
"model": "<string>",
"language": "<string>",
"generation_language": "<string>",
"guidance_scale": 123
},
"default_voice_id": "<string>",
"default_instructions": "<string>",
"default_silence_ms": 123,
"edit_token": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"chapter_count": 123,
"clip_count": 123
},
"edit_token": "<string>",
"client_refs": {},
"created_ids": [
"<string>"
]
}{
"code": "<string>",
"detail": "<string>",
"error": "<string>",
"ok": false,
"meta": {}
}{
"code": "<string>",
"detail": "<string>",
"error": "<string>",
"ok": false,
"meta": {}
}{
"code": "<string>",
"detail": "<string>",
"error": "<string>",
"ok": false,
"meta": {}
}{
"code": "<string>",
"detail": "<string>",
"error": "<string>",
"ok": false,
"meta": {}
}{
"code": "<string>",
"detail": "<string>",
"error": "<string>",
"ok": false,
"meta": {}
}Update a clip
Change a clip’s name, script, instructions, voice, playback, or trailing silence. Omitted fields are unchanged.
curl \
--request PATCH \
--url "https://api.breeze.blue/v1/studio/projects/prj_example/clips/clp_example" \
--header "xi-api-key: $BREEZE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"expected_edit_token": "replace_with_current_edit_token",
"operation_id": "123e4567-e89b-42d3-a456-426614174000",
"script": "A new day begins.",
"trailing_silence_ms": null
}'from breeze_blue import BreezeBlue
client = BreezeBlue()
result = client.studio.clips.update("prj_example", "clp_example", {
"expected_edit_token": "replace_with_current_edit_token",
"operation_id": "123e4567-e89b-42d3-a456-426614174000",
"script": "A new day begins.",
"trailing_silence_ms": None,
})import { BreezeBlueClient } from "@breeze.blue/sdk";
const client = new BreezeBlueClient();
const result = await client.studio.clips.update("prj_example", "clp_example", {
expectedEditToken: "replace_with_current_edit_token",
operationId: "123e4567-e89b-42d3-a456-426614174000",
script: "A new day begins.",
trailingSilenceMs: null,
});{
"project": {
"id": "<string>",
"title": "<string>",
"description": "<string>",
"tts_settings": {
"model": "<string>",
"language": "<string>",
"generation_language": "<string>",
"guidance_scale": 123
},
"default_voice_id": "<string>",
"default_instructions": "<string>",
"default_silence_ms": 123,
"edit_token": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"chapter_count": 123,
"clip_count": 123
},
"edit_token": "<string>",
"client_refs": {},
"created_ids": [
"<string>"
]
}{
"code": "<string>",
"detail": "<string>",
"error": "<string>",
"ok": false,
"meta": {}
}{
"code": "<string>",
"detail": "<string>",
"error": "<string>",
"ok": false,
"meta": {}
}{
"code": "<string>",
"detail": "<string>",
"error": "<string>",
"ok": false,
"meta": {}
}{
"code": "<string>",
"detail": "<string>",
"error": "<string>",
"ok": false,
"meta": {}
}{
"code": "<string>",
"detail": "<string>",
"error": "<string>",
"ok": false,
"meta": {}
}Continue building
Manage Studio projects
Update clips in bulk
Studio CLI
Authorizations
Breeze Developer API key.
Path Parameters
Studio project ID, such as prj_….
Clip ID, such as clp_….
Body
edit_token from your latest read or write of this project. A stale token returns 409.
1 - 128New UUID for each write. Retrying with the same ID and body returns the original result instead of repeating the write.
Clip label shown in the editor.
120Text to speak. Line breaks inside the text become spaces.
1000Delivery instructions for this clip. Empty uses the project's default_instructions. See Expressive controls, Voice instruction prompting.
1000Playback speed and volume.
Show child attributes
Show child attributes
Silence after the clip in milliseconds. null uses the project's default_silence_ms; 0 means no pause.
0 <= x <= 600000Response
The updated project.
The project after this request.
Show child attributes
Show child attributes
Current edit_token. Send it as expected_edit_token on the next write.
Import only: each client_ref mapped to its created ID.
Show child attributes
Show child attributes
IDs created by this request, in order.

