Skip to content

Edit Producer lyrics and audio

GuideAvailability varies by operation

These operations are enabled individually and can return 503 until available. Reads require task:read; writes require task:create. Use resources authorized for your account. See resource access and recovery.

Supply exactly one of lyricsId or lyrics, plus the requested change in prompt. The result is a new text resource; the previous lyrics are retained.

Unknown fields are not accepted.

Required applies within the containing object or alternative. Expand nested objects only when supplying that value.

Field and typeRequirementDescription and constraints
promptstring Required Requested changes to the selected lyrics.Minimum characters: 1. Maximum characters: 3000.
configobject Optional Standard task configuration: priority, tags, metadata, and webhookUrl.
config.metadataobject Optional Free-form caller metadata, echoed back on read. Stored as opaque JSON; the server never mutates it.
config.prioritynumber Optional Task priority 1-10 (higher = sooner). Default 5.Minimum: 1. Maximum: 10. Default: 5.
config.tagsarray<string> Optional Free-form labels for filtering. Up to 20, 100 chars each.Maximum items: 20.
config.tags[]string Each item Maximum characters: 100.
config.webhookUrlstring Optional URL to receive task.* lifecycle events via the central webhook service.Format: uri.
lyricsstring Optional Original lyrics text. Supply exactly one of lyrics and lyricsId.Minimum characters: 1. Maximum characters: 3000.
lyricsIdstring Optional Authorized Producer resource ID from your completed Task or song library.Minimum characters: 1. Maximum characters: 255.

For each new operation, save a fresh key once. Keep that same key and body when recovering the operation after a timeout.

Terminal window
export REQUEST_KEY="$(uuidgen)"
curl -X POST https://api.omnapi.com/api/v1/producer/lyrics/edit \
-H "x-api-key: $OMNAPI_KEY" \
-H "Idempotency-Key: $REQUEST_KEY" \
-H "Content-Type: application/json" \
-d '{"lyrics":"[Verse]\nWe watched the harbor lights","prompt":"Add a hopeful chorus"}'

POST /api/v1/producer/audio/stems accepts songId. Completion requires all four distinct outputs: vocals, drums, bass, and other, exposed as resources[].metadata.stemType. A partial set does not count as a completed package.

Unknown fields are not accepted.

Required applies within the containing object or alternative. Expand nested objects only when supplying that value.

Field and typeRequirementDescription and constraints
endnumber Required End time in seconds, no later than the source duration.Maximum: 900. Exclusive lower bound: 0.
songIdstring Required Authorized Producer resource ID from your completed Task or song library.Minimum characters: 1. Maximum characters: 255.
startnumber Required Start time in seconds, before end.Minimum: 0.
configobject Optional Standard task configuration: priority, tags, metadata, and webhookUrl.
config.metadataobject Optional Free-form caller metadata, echoed back on read. Stored as opaque JSON; the server never mutates it.
config.prioritynumber Optional Task priority 1-10 (higher = sooner). Default 5.Minimum: 1. Maximum: 10. Default: 5.
config.tagsarray<string> Optional Free-form labels for filtering. Up to 20, 100 chars each.Maximum items: 20.
config.tags[]string Each item Maximum characters: 100.
config.webhookUrlstring Optional URL to receive task.* lifecycle events via the central webhook service.Format: uri.
titlestring Optional Title for the new or updated resource.Minimum characters: 1. Maximum characters: 200.

For trim, times are seconds and must satisfy 0 <= start < end <= min(song.duration, 900). The result is a new song resource. A trimmed song is not guaranteed to support subsequent generative transforms; inspect its remixEligible state and handle a rejected transform.