Podcast Studio
API

Two on-ramps. One credit wallet.

Ounie accounts hit the REST endpoints with a bearer token. AI assistants — including the Ounie AI Team — connect over MCP and get a native tool surface. Both run the same generation and production pipeline the dashboard uses, and every call draws your shared Ounie credits (1 credit = 1¢), never overdrawing.

There is no x402 (keyless USDC) rail here: writing an episode is grounded in your own private Ounie brain, so agent access is always API keys / MCP with your credits.

Authentication · two rails
Send Authorization: Bearer <token> — or append ?api_key=<token>when a client can’t set headers. A shared .ounie.comcookie session works too (it’s the same route).
pod_live_…— this app’s key, minted on your dashboard

Reads, lists, edits, produces audio, and exports. It has no ounie.com credential, so it cannot reach your private brains — grounded actions return a clear 403 master_key_required.

ounie_live_…— your Ounie fleet MASTER key

Enable fleet access on ounie.com, then use your developer key here. It forwards upstream, so it can list your brains, create a show, and write cited scripts. Draws the same wallet.

MCP · for AI assistants and the Ounie AI Team
Streamable HTTP at /api/mcp (legacy SSE at /api/sse).
Endpoint  https://podcast.ounie.com/api/mcp
Header    Authorization: Bearer ounie_live_…   (or pod_live_…)

# If your MCP client can't set headers, append the key as a query param:
https://podcast.ounie.com/api/mcp?api_key=ounie_live_…
ToolWhat it doesCost
list_showsList your shows + their RSS feed URLs.free
list_brainsList the Ounie brains you can build from (master key).free
list_voicesThe narrator voices you can pick.public
create_showCreate a show from 1–5 brains + a voice (master key).free
get_showA show with all its episodes + RSS URL.free
generate_episodeWrite a cited episode SCRIPT from the show's brains (master key).10 credits
edit_episodeEdit an episode's words; recomputes narration.free
produce_episodeNarrate the script to audio + publish into RSS.~5/1k chars
get_episodeFull episode — script, narration, citations, audio URL (export).free
get_credit_balanceSpendable Ounie credits + monthly included.free
get_pricingPer-action pricing. No auth required.public
whoamiThe authenticated key's owner + whether it can ground.free

Connect the Ounie AI Team: add an HTTP MCP server pointing at https://podcast.ounie.com/api/mcp?api_key=ounie_live_…. Its tools appear automatically; grounded tools use your master key to reach your brains.

REST · the same endpoints the dashboard uses
Send the same bearer on any of these. Paths are relative to https://podcast.ounie.com.
GET/api/brainsYour brains

Master key or cookie — reads your private brains. A pod_live_ key gets 403.

GET/api/showsList shows

Free. Returns { shows }.

POST/api/showsCreate a show
{ "title": "This Week in AI", "brain_ids": ["<uuid>"], "voice_id": "21m00Tcm4TlvDq8ikWAM" }

Free. Master key / cookie only (validates the brains). Returns { show_id }.

GET/api/shows/{id}Show + episodes

Free. Returns { show, episodes }.

POST/api/shows/{id}/episodesGenerate a cited script
{ "topic": "this week in AI", "segments": 4, "minutes": 5 }

Bills 10 credits. Master key / cookie only. Thin material → 422, free. Returns { episode_id, chars }.

PATCH/api/episodes/{id}/copyEdit the words
{ "title": "…", "summary": "…", "intro": "…", "segments": [], "outro": "…" }

Free. Recomputes narration. Any key.

POST/api/episodes/{id}/produceNarrate to audio + publish

Bills ~5 credits per 1k narration chars. Any key. Returns { audio_url, credits_spent, chars }.

GET/api/episodes/{id}Export an episode

Free. Full script, narration, citations, and audio URL. Any key.

Shape of a generated episode
{
  "episode": {
    "id": "…",
    "title": "This Week in AI",
    "status": "draft",              // draft | produced
    "script": { "intro": "…", "segments": [{ "heading": "…", "body": "…" }], "outro": "…" },
    "narration": "The full spoken text, ready for TTS.",
    "citations": [                  // grounded in the show's brains
      { "brainId": "…", "slug": "…", "title": "…", "url": "https://ounie.com/…" }
    ],
    "audio_url": null,              // set after produce
    "credits_spent": 10
  }
}