For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Status
OverviewProductsManageAPI ReferenceTutorialsClient Libraries
OverviewProductsManageAPI ReferenceTutorialsClient Libraries
  • Voices
    • Overview
    • List Voices
    • Get Voice
    • Delete Voice
  • Recordings
    • Overview
    • List Recordings
    • Get Recording
    • Create Recording
    • Update Recording
    • Delete Recording
  • Projects & Clips
      • Overview
      • List Clips
      • Get Clip
      • Update Clip
      • Delete Clip
      • Clip Timestamps
  • Voice Settings
    • Overview
    • List Presets
    • Get Preset
    • Create Preset
    • Update Preset
    • Delete Preset
  • Custom Pronunciations
    • Overview
    • Create Pronunciation
    • Bulk Create from ZIP
    • List Pronunciations
    • Get Pronunciation
    • Toggle Active Status
    • Delete Pronunciation
  • Account & Billing
    • Overview
    • Get Account
    • Teams
    • Billing Usage
Status
LogoLogo
On this page
  • Request Body
  • Example Request
  • Responses
Projects & ClipsClips

Update Clip

Was this page helpful?
Previous

Delete Clip

Next
Built with

PATCH https://app.resemble.ai/api/v2/projects/{project_uuid}/clips/{clip_uuid} or PUT https://app.resemble.ai/api/v2/projects/{project_uuid}/clips/{clip_uuid}

Request Body

FieldTypeRequiredNotes
titlestring❌Clip title (max 256 characters).
bodystring❌Text to synthesize.
voice_uuidstring❌UUID of voice to use.
is_archivedboolean❌Whether clip is archived.
callback_uristring✅HTTPS URL for async callback (required for updates).
sample_rateinteger❌Audio sample rate: 8000, 16000, 22050, 24000, 32000, 44100, or 48000. Default: 22050.
precisionstring❌Audio precision: PCM_16, PCM_24, or PCM_32. Default: PCM_32.
output_formatstring❌Output format: wav, mp3, ogg, flac, etc. Default: wav.

Note: Update operations are asynchronous. A callback_uri is required to receive the synthesized result.

Example Request

$curl --request PUT 'https://app.resemble.ai/api/v2/projects/PROJECT_UUID/clips/CLIP_UUID' \
> -H 'Authorization: Bearer YOUR_API_TOKEN' \
> -H 'Content-Type: application/json' \
> --data '{
> "title": "Narration Intro",
> "body": "Welcome to the product update",
> "voice_uuid": "VOICE_UUID",
> "is_archived": false,
> "callback_uri": "https://example.com/webhooks/resemble",
> "include_timestamps": true
> }'

Responses

  1. Immediate response:
1{
2 "success": true,
3 "item": {
4 "uuid": "CLIP_UUID",
5 "title": "Narration Intro",
6 "body": "Welcome to the product update",
7 "voice_uuid": "VOICE_UUID",
8 "is_archived": false,
9 "created_at": "2024-01-15T10:30:00Z",
10 "updated_at": "2024-01-15T10:30:00Z"
11 }
12}
  1. Callback payload (POST {callback_uri}):
1{
2 "id": "CLIP_UUID",
3 "project_id": "PROJECT_UUID",
4 "url": "https://...", // expires after 1 hour
5 "audio_timestamps": {
6 "graph_chars": ["W", "e", ...],
7 "graph_times": [[0, 120], ...],
8 "phon_chars": ["W", "EH", ...],
9 "phon_times": [[0, 120], ...]
10 },
11 "issues": []
12}

Use tools like webhook.site to inspect callback payloads during development.