Skip to main content
You can use the API to replace the AI-generated audio on an existing content item with your own audio file. This is useful if you want to switch to a human-recorded version while keeping the same content item, player embeds, distributions, and analytics intact. The same workflow applies whether you’re replacing a single item or doing it in bulk.
To replace audio through the dashboard instead, go to Content → Items, click ••• → Replace alongside the item, and follow the steps in Upload audio.

Replace audio on an existing content item

To replace audio on an existing content item, send a PUT request to Update content with "type": "audio_upload". This switches the content item’s processing type and replaces its audio with the file you provide. The audio_url must be a publicly accessible URL. BeyondWords fetches the file from that URL when it processes the request — the file is not uploaded directly in the request body.
{
  "type": "audio_upload",
  "auto_segment_updates_enabled": false,
  "segments": [
    {
      "section": "title",
      "content_type": "audio",
      "audio_url": "https://example.com/your-replacement-audio.mp3"
    }
  ]
}
The {id} path parameter accepts either the content UUID or the original source_id you set when creating the item.
Set "auto_segment_updates_enabled": false to prevent future text edits from triggering AI regeneration and overwriting your uploaded audio. Without this, editing the title, summary, or body of the item will queue a new AI generation run.

Create a new content item with uploaded audio

If you’re creating a new content item from scratch with an audio file rather than replacing an existing one, use POST /projects/{project_id}/content with "type": "audio_upload":
{
  "type": "audio_upload",
  "title": "My article title",
  "body": "Article body text",
  "source_id": "your-cms-article-id",
  "published": true,
  "segments": [
    {
      "section": "title",
      "content_type": "audio",
      "audio_url": "https://example.com/your-audio-file.mp3"
    }
  ]
}
See Processing types for more on the audio_upload type.

Upload a file to BeyondWords first

If your audio file isn’t already hosted at a public URL, use Upload file to upload it to BeyondWords storage first. That endpoint returns a URL you can then pass as audio_url.