> ## Documentation Index
> Fetch the complete documentation index at: https://docs.particle.pro/llms.txt
> Use this file to discover all available pages before exploring further.

# particle_podcast_request_transcription

> Request the transcription of a back-catalogue episode, then poll the free status tool until it is transcribed.

Request the transcription of an episode discovered in its podcast's back catalogue: one in the show's feed that we have not transcribed. [`particle_podcast_list_episodes`](https://docs.particle.pro/mcp/tools/podcasts/podcast-list-episodes) lists them with `podcast_slug` and `transcript_status: "requestable"`, and [`particle_podcast_get_episode`](https://docs.particle.pro/mcp/tools/podcasts/podcast-get-episode) marks one requestable. Until it is transcribed, it has no transcript, speakers, entities, segments, clips or mentions.

The tool returns at once with the request's `state`:

* `queued`: waiting its turn.
* `admitted`: being transcribed.
* `transcribed`: the episode tools now serve its transcript.
* `failed`: it will not be transcribed. `failure_reason` says why, and the charge is refunded.

Transcription usually takes 5 to 10 minutes. Poll [`particle_podcast_get_transcription_request`](https://docs.particle.pro/mcp/tools/podcasts/podcast-get-transcription-request), which is free. Never call this tool again to poll. Once transcribed, the episode keeps its ID, and [`particle_podcast_get_episode`](https://docs.particle.pro/mcp/tools/podcasts/podcast-get-episode), [`particle_podcast_find_mentions`](https://docs.particle.pro/mcp/tools/podcasts/podcast-find-mentions) and [`particle_podcast_search_transcripts`](https://docs.particle.pro/mcp/tools/podcasts/podcast-search-transcripts) serve it.

This is the MCP form of [`POST /v1/podcasts/transcription/requests`](https://docs.particle.pro/api-reference/podcast-transcription/request-an-episodes-transcription). It bills exactly as that endpoint does.

## Billing

* **The request that queues the episode** is charged in USD at your plan's transcription price. It is never drawn from your included requests, so it is charged even with requests left and still works once they run out. It needs overage billing turned on. Without it the tool answers `overage_required` (or `billing_info_required` without a payment method on file), and nothing is charged.
* **Every other outcome is billed as an ordinary lookup.** That covers an episode your organization already requested (the existing request comes back), one another organization's request already queued (you get your own request, tracking it), and one we already hold (no request is created, and `state` says where its transcript stands).
* A request that fails, because the audio is gone or transcription timed out, is refunded.

The tool changes state and costs money, so confirm the charge with the user before calling it. It needs a connection that acts for an organization: a `pp_` API key, or an OAuth connection with the `write` scope. A keyless x402 payment cannot buy it, and the plugin connection does not offer it.

## Inputs

| Field | Type | Required | Default | Description |
| - | - | - | - | - |
| `episode_slug` | string | yes | — | The episode to transcribe: the `episode_slug` the episode tools give a requestable episode, which is its ID. |

## Output

A `## Transcription request` block with the episode and podcast, `**Episode slug:**`, `**Request ID:**` (absent for an episode we already hold), `**State:**`, `**Transcript:**`, `**Billed as:**` (`transcription` or `lookup`), the request's timestamps, and the next step to take. With `output_format: "json"` the same fields come back as JSON: `request_id`, `episode_id`, `episode_slug`, `state`, `transcript_status`, `failure_reason`, `created_at`, `admitted_at`, `completed_at`, `refunded_at` and `billed`.

## Errors

| Code | When |
| - | - |
| `overage_required` | Overage billing is off, so the organization cannot be charged in USD. |
| `billing_info_required` | No payment method is on file. |
| `episode_audio_unavailable` | The episode's audio cannot be fetched, so it cannot be transcribed. Not charged. |
| `api_key_required` | The connection acts for no organization. |
| `not_found` | No such episode. Re-list the podcast's episodes. |

## Example

```text theme={"dark"}
Agent calls: particle_podcast_request_transcription {
  "episode_slug": "5HZ8M9tlTQ0yTgtObZ5zJs"
}

Server returns:
## Transcription request

**Episode:** The Founder's Dilemma
**Podcast:** Example Show
**Podcast slug:** example-show
**Episode slug:** 5HZ8M9tlTQ0yTgtObZ5zJs
**Request ID:** 2VJr7kq3Hx0BfYc9tWm1aE
**State:** queued
**Transcript:** queued — its transcript has been requested and it is waiting to be transcribed
**Billed as:** transcription
**Requested:** 2026-10-23T21:04:11Z

Transcription usually finishes within 5 to 10 minutes. Poll particle_podcast_get_transcription_request (free) with this episode_slug; do not request it again.
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.