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 field | Type | Description |
|---|---|---|
podcastId | string | Required Track ID. |
title | string | Required episode title. |
script | string | Required finished script, up to 100,000 characters. |
voice | string | Optional: 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.