curl \
--request POST \
--url "https://api.breeze.blue/v1/studio/projects/prj_example/clips" \
--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."
}'from breeze_blue import BreezeBlue
client = BreezeBlue()
result = client.studio.clips.create("prj_example", {
"expected_edit_token": "replace_with_current_edit_token",
"operation_id": "123e4567-e89b-42d3-a456-426614174000",
"script": "A new day begins.",
})import { BreezeBlueClient } from "@breeze.blue/sdk";
const client = new BreezeBlueClient();
const result = await client.studio.clips.create("prj_example", {
expectedEditToken: "replace_with_current_edit_token",
operationId: "123e4567-e89b-42d3-a456-426614174000",
script: "A new day begins.",
});{
"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": {}
}Create a clip
Add a clip after after_clip_id, or at the end of the chapter. Without chapter_id, the clip goes to the first active chapter. Without voice_id, the clip uses the project’s default voice. Its ID is returned in created_ids.
curl \
--request POST \
--url "https://api.breeze.blue/v1/studio/projects/prj_example/clips" \
--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."
}'from breeze_blue import BreezeBlue
client = BreezeBlue()
result = client.studio.clips.create("prj_example", {
"expected_edit_token": "replace_with_current_edit_token",
"operation_id": "123e4567-e89b-42d3-a456-426614174000",
"script": "A new day begins.",
})import { BreezeBlueClient } from "@breeze.blue/sdk";
const client = new BreezeBlueClient();
const result = await client.studio.clips.create("prj_example", {
expectedEditToken: "replace_with_current_edit_token",
operationId: "123e4567-e89b-42d3-a456-426614174000",
script: "A new day begins.",
});{
"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_….
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.
Your label for this chapter or clip, unique within an import. Import maps it to the created ID in client_refs.
1 - 128\SClip 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 <= 600000Target chapter. Defaults to the first active chapter.
Insert after this clip in the target chapter. Omit to append.
1 - 128\SResponse
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.

