---
title: "Publish an episode"
method: POST
path: "/api/v1/episodes/{id}/publish"
---

# Publish an episode

`POST /api/v1/episodes/{id}/publish`

## Request

- Base URL: `https://podcaststotext.com`
- URL: `https://podcaststotext.com/api/v1/episodes/{id}/publish`
- Auth: HTTP bearer

Put an episode's transcript on a public, indexable page. Idempotent: republishing returns the same URL and changes nothing, which is what makes it safe to retry. Only for shows whose ownership has been verified, because it publishes under the user's name. Requires the "shows:write" scope. Takes an EPISODE id from a connected show, not a transcription id.

## Path parameters

- `id` string, required

## Response `200`

Public URL

- object
  - `url` string
  - `already_public` boolean
  - `title` string

## Other responses

- `400`: Unverified show, or no transcript yet
- `401`: Missing or invalid API key
- `403`: The account's plan does not allow this: either it includes no API access, or the requested scope needs write access. `error.code` is "plan_required". No plan is in that state today, so in practice you will see 402 insufficient_credits instead, which means the plan is fine and the balance is empty.

---

[API](https://skmtc.dev/podcaststotext/apis/podcaststotext-api.md) · [All operations](https://skmtc.dev/podcaststotext/apis/podcaststotext-api/llms.txt) · [OpenAPI document](https://skmtc.dev/podcaststotext/apis/podcaststotext-api/revisions/ef711acf4bc3?raw)
