Developer guide

Create an audio episode with the REST API

Send a finished script to Brandscast, generate its audio, then review and publish the draft. The same workflow is also available through the MCP server.

Authentication

Create a personal API token in Settings → Integrationsin the Brandscast app. Copy it when it appears; it cannot be viewed again. Send it in the Authorization: Bearer header. The token holder must have access to the Track and podcasts:write permission. For users in multiple accounts, set X-Brandscast-Account-Id to the account ID if you need to select a different account.

Keep the token private. You can revoke it at any time in Integrations. Do not send it as a URL parameter.

POST /api/episodes/from-script

Request URL: https://app.brandscast.com/api/episodes/from-script

Use the Track ID returned by the MCP list_podcaststool for podcastId.

JSON fieldTypeDescription
podcastIdstringRequired Track ID.
titlestringRequired episode title.
scriptstringRequired finished script, up to 100,000 characters.
voicestringOptional: nova (default), shimmer, alloy, echo, fable, or onyx.

Example request:

curl -X POST https://app.brandscast.com/api/episodes/from-script \
  -H "Authorization: Bearer bcast_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "podcastId": "YOUR_TRACK_ID",
    "title": "This week's update",
    "script": "Hello team. Here is this week's update...",
    "voice": "nova"
  }'

Replace the token and Track ID with your own values. The script is narrated without an AI rewrite. Audio generation uses your account's shared AI minutes.

Response and publishing

A successful request returns HTTP 202 Accepted with a JSON response like this:

{
  "episodeId": "EPISODE_ID",
  "slug": "this-weeks-update",
  "generationStatus": "queued",
  "publishStatus": "draft"
}

Generation runs asynchronously. Check progress in the Brandscast app or with the MCP get_episode tool. When generationStatus is done, review the episode and publish it in the app or with the MCP publish_episode tool. This REST endpoint creates drafts; it does not publish them.

Errors are JSON: 400 for malformed or invalid input, 401 for missing, invalid, or expired tokens, 403 for insufficient permission or a read-only account, 404 when the Track is unavailable, and 422 for generation limits such as insufficient AI minutes or an unsupported voice.