Audio Studio API
API Reference: View the complete Arc XP Audio API specification
The Audio Studio API produces studio audio: working pieces of audio such as Host Reads. This guide covers the generally available Studio operations: managing studio audio records, creating Host Reads (including using text-to-speech), uploading audio, and loudness normalization. It uses the same base URL and authentication as the rest of the Audio Center API; see the specification for exhaustive request and response fields.
Studio audio records
Manage studio audio records under /studio:
# List studio audiocurl -H "Authorization: Bearer YOUR_API_TOKEN" \ https://api.[org].arcpublishing.com/audiocenter/api/editorial/v1/studio/
# Get onecurl -H "Authorization: Bearer YOUR_API_TOKEN" \ https://api.[org].arcpublishing.com/audiocenter/api/editorial/v1/studio/{studio_audio_id}
# Delete onecurl -X DELETE https://api.[org].arcpublishing.com/audiocenter/api/editorial/v1/studio/{studio_audio_id} \ -H "Authorization: Bearer YOUR_API_TOKEN"Each record has a purpose (host_read or general) and follows the same processing_status lifecycle as audio clips. Records created through Host Reads default to host_read; records created any other way (including through normalization) default to general.
Host Reads (text-to-speech)
Create a Host Read from text in a single request. Provide input_text (up to 30,000 characters) and voice_id; name, purpose, and per-request pronunciation_ids are optional.
curl -X POST https://api.[org].arcpublishing.com/audiocenter/api/editorial/v1/studio/tts \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "Segment intro", "input_text": "The text to be narrated.", "voice_id": "voice_abc123" }'Retrieve available voices and preview them exactly as for clip text-to-speech (TTS); see Text-to-Speech for voices (/settings/voices), previews (/tts/preview), and pronunciation dictionaries. Generation is asynchronous: include Accept: text/event-stream to receive server-sent events (SSE) progress, or omit it for a 202 Accepted.
Upload studio audio
To upload audio you already have instead of generating it, create a studio audio record, then request a presigned URL and upload the bytes directly to it:
curl -X POST "https://api.[org].arcpublishing.com/audiocenter/api/editorial/v1/studio/{studio_audio_id}/upload/presigned?file_name=host-read.mp3" \ -H "Authorization: Bearer YOUR_API_TOKEN"The response includes an upload_url and a notification_url. Upload the bytes to the upload_url with a PUT, then subscribe to the notification_url for processing progress, the same presigned flow used for clips.
Loudness normalization
Normalization targets default to podcast-friendly values (lufs -16.0, true_peak -1.5 dBTP, loudness_range 11.0 LU); all are optional.
Normalize a clip or episode in place
Loudness-normalizes the source’s audio in place. Include Accept: text/event-stream for SSE progress, or omit it for a 202 Accepted.
curl -X POST https://api.[org].arcpublishing.com/audiocenter/api/editorial/v1/clips/{audio_id}/normalize \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "lufs": -16.0, "true_peak": -1.5, "loudness_range": 11.0 }'For episodes, use POST /podcasts/{podcast_id}/episodes/{episode_guid}/normalize.
Normalize into a new studio audio
To normalize without altering the source, create a new studio audio from it. Provide the source_id (and episode_guid if the source is a podcast episode); use_original defaults to true.
curl -X POST https://api.[org].arcpublishing.com/audiocenter/api/editorial/v1/studio/mix/normalize \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "source_id": "AUDIO_ID", "use_original": true, "lufs": -16.0 }'Returns 201 Created with a Location header pointing at the new studio audio record.