> For the complete documentation index, see [llms.txt](https://docs.podigee.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.podigee.com/documentation/start-here/ai-agents/mcp-tools/create-episode.md).

# create\_episode

Reference for the \`create\_episode\` MCP tool.

Create an episode draft. Prefer publish\_episode for end-to-end publishing.

## Contract

| Property                     | Value                |
| ---------------------------- | -------------------- |
| Required scopes              | `mcp:podcasts:write` |
| Read-only                    | `false`              |
| Destructive                  | `false`              |
| Idempotent                   | `true`               |
| May interact outside Podigee | `true`               |

The MCP annotations describe client behavior. The server still applies authorization, validation, preview, confirmation, ownership, and account boundaries at execution time.

## Example request

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_episode",
    "arguments": {
      "podcast_id": 42,
      "attributes": {
        "title": "A first field note"
      },
      "dry_run": true
    }
  }
}
```

The example uses placeholder IDs. Replace them with IDs returned for the connected account.

## Input schema

The structural schema below omits prose `description` fields so each line remains readable. The complete public descriptions follow the schema.

```json
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "podcast_id": {
      "type": "integer"
    },
    "attributes": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "title": {
          "type": "string"
        },
        "subtitle": {
          "type": "string"
        },
        "show_notes": {
          "type": "string"
        },
        "show_notes_md": {
          "type": "string"
        },
        "authors": {
          "type": "string"
        },
        "cover_image": {
          "type": "string",
          "format": "uri"
        },
        "facebook_image": {
          "type": "string",
          "format": "uri"
        },
        "number": {
          "type": "integer"
        },
        "season": {
          "type": "integer"
        },
        "slug": {
          "type": "string"
        },
        "explicit": {
          "type": "boolean"
        },
        "guid": {
          "type": "string"
        },
        "external_url": {
          "type": "string",
          "format": "uri"
        },
        "publication_type": {
          "type": "string",
          "enum": [
            "full",
            "trailer",
            "bonus"
          ]
        },
        "bypass_ad_insertion": {
          "type": "boolean"
        },
        "ad_provider": {
          "type": "string",
          "enum": [
            "podigee",
            "podigee_programmatic"
          ]
        },
        "intro_outro_include": {
          "type": "boolean"
        },
        "video_content_rating": {
          "type": "string",
          "enum": [
            "eighteen_plus",
            "unspecified"
          ]
        },
        "video_thumbnail_source": {
          "type": "string",
          "enum": [
            "auto",
            "custom"
          ]
        },
        "keywords": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "labels": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "contributor_ids": {
          "type": "array",
          "items": {
            "type": "integer"
          }
        },
        "chapter_marks": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "title": {
                "type": "string"
              },
              "start_time": {
                "type": "string",
                "pattern": "^\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?$"
              },
              "url": {
                "type": "string",
                "format": "uri"
              },
              "image": {
                "type": "string",
                "format": "uri"
              }
            }
          }
        },
        "transcription": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "start": {
                "type": "number"
              },
              "end": {
                "type": "number"
              },
              "text": {
                "type": "string"
              },
              "speaker_id": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "dry_run": {
      "type": "boolean"
    },
    "idempotency_key": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    }
  },
  "oneOf": [
    {
      "type": "object",
      "required": [
        "podcast_id",
        "attributes",
        "dry_run"
      ],
      "additionalProperties": false,
      "properties": {
        "podcast_id": {
          "type": "integer"
        },
        "attributes": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "title": {
              "type": "string"
            },
            "subtitle": {
              "type": "string"
            },
            "show_notes": {
              "type": "string"
            },
            "show_notes_md": {
              "type": "string"
            },
            "authors": {
              "type": "string"
            },
            "cover_image": {
              "type": "string",
              "format": "uri"
            },
            "facebook_image": {
              "type": "string",
              "format": "uri"
            },
            "number": {
              "type": "integer"
            },
            "season": {
              "type": "integer"
            },
            "slug": {
              "type": "string"
            },
            "explicit": {
              "type": "boolean"
            },
            "guid": {
              "type": "string"
            },
            "external_url": {
              "type": "string",
              "format": "uri"
            },
            "publication_type": {
              "type": "string",
              "enum": [
                "full",
                "trailer",
                "bonus"
              ]
            },
            "bypass_ad_insertion": {
              "type": "boolean"
            },
            "ad_provider": {
              "type": "string",
              "enum": [
                "podigee",
                "podigee_programmatic"
              ]
            },
            "intro_outro_include": {
              "type": "boolean"
            },
            "video_content_rating": {
              "type": "string",
              "enum": [
                "eighteen_plus",
                "unspecified"
              ]
            },
            "video_thumbnail_source": {
              "type": "string",
              "enum": [
                "auto",
                "custom"
              ]
            },
            "keywords": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "labels": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "contributor_ids": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            },
            "chapter_marks": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "title": {
                    "type": "string"
                  },
                  "start_time": {
                    "type": "string",
                    "pattern": "^\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?$"
                  },
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "image": {
                    "type": "string",
                    "format": "uri"
                  }
                }
              }
            },
            "transcription": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "start": {
                    "type": "number"
                  },
                  "end": {
                    "type": "number"
                  },
                  "text": {
                    "type": "string"
                  },
                  "speaker_id": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "dry_run": {
          "const": true
        },
        "idempotency_key": {
          "type": "string",
          "minLength": 1,
          "maxLength": 255
        }
      }
    },
    {
      "type": "object",
      "required": [
        "podcast_id",
        "attributes",
        "idempotency_key"
      ],
      "additionalProperties": false,
      "properties": {
        "podcast_id": {
          "type": "integer"
        },
        "attributes": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "title": {
              "type": "string"
            },
            "subtitle": {
              "type": "string"
            },
            "show_notes": {
              "type": "string"
            },
            "show_notes_md": {
              "type": "string"
            },
            "authors": {
              "type": "string"
            },
            "cover_image": {
              "type": "string",
              "format": "uri"
            },
            "facebook_image": {
              "type": "string",
              "format": "uri"
            },
            "number": {
              "type": "integer"
            },
            "season": {
              "type": "integer"
            },
            "slug": {
              "type": "string"
            },
            "explicit": {
              "type": "boolean"
            },
            "guid": {
              "type": "string"
            },
            "external_url": {
              "type": "string",
              "format": "uri"
            },
            "publication_type": {
              "type": "string",
              "enum": [
                "full",
                "trailer",
                "bonus"
              ]
            },
            "bypass_ad_insertion": {
              "type": "boolean"
            },
            "ad_provider": {
              "type": "string",
              "enum": [
                "podigee",
                "podigee_programmatic"
              ]
            },
            "intro_outro_include": {
              "type": "boolean"
            },
            "video_content_rating": {
              "type": "string",
              "enum": [
                "eighteen_plus",
                "unspecified"
              ]
            },
            "video_thumbnail_source": {
              "type": "string",
              "enum": [
                "auto",
                "custom"
              ]
            },
            "keywords": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "labels": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "contributor_ids": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            },
            "chapter_marks": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "title": {
                    "type": "string"
                  },
                  "start_time": {
                    "type": "string",
                    "pattern": "^\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?$"
                  },
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "image": {
                    "type": "string",
                    "format": "uri"
                  }
                }
              }
            },
            "transcription": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "start": {
                    "type": "number"
                  },
                  "end": {
                    "type": "number"
                  },
                  "text": {
                    "type": "string"
                  },
                  "speaker_id": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "dry_run": {
          "const": false
        },
        "idempotency_key": {
          "type": "string",
          "minLength": 1,
          "maxLength": 255
        }
      }
    }
  ]
}
```

### Input field descriptions

### `attributes.chapter_marks[].start_time`

Offset from the start of the episode as "HH:MM:SS", optionally with milliseconds: "00:12:30" or "00:12:30.500". Plain seconds are not accepted.

### `(oneOf 1).attributes.chapter_marks[].start_time`

Offset from the start of the episode as "HH:MM:SS", optionally with milliseconds: "00:12:30" or "00:12:30.500". Plain seconds are not accepted.

### `(oneOf 2).attributes.chapter_marks[].start_time`

Offset from the start of the episode as "HH:MM:SS", optionally with milliseconds: "00:12:30" or "00:12:30.500". Plain seconds are not accepted.

### Key constraints

* `attributes.publication_type` accepts: `full`, `trailer`, `bonus`.
* `attributes.ad_provider` accepts: `podigee`, `podigee_programmatic`.
* `attributes.video_content_rating` accepts: `eighteen_plus`, `unspecified`.
* `attributes.video_thumbnail_source` accepts: `auto`, `custom`.
* `idempotency_key` has minimum length 1 and maximum length 255.
* `request` requires: `podcast_id`, `attributes`, `dry_run`.
* `request` requires: `podcast_id`, `attributes`, `idempotency_key`.

## Output schema

The `structuredContent` object in a successful tool result matches this schema.

The structural schema below omits prose `description` fields. The complete public descriptions follow the schema.

```json
{
  "type": "object",
  "oneOf": [
    {
      "type": "object",
      "required": [
        "id",
        "podcast_id"
      ],
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "integer"
        },
        "podcast_id": {
          "type": "integer"
        },
        "title": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "subtitle": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "number": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ]
        },
        "season": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ]
        },
        "publication_type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "published_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ]
        },
        "explicit": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ]
        },
        "has_media": {
          "type": "boolean"
        },
        "created_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ]
        },
        "updated_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ]
        },
        "show_notes": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "show_notes_md": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "authors": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "guid": {
          "type": "string"
        },
        "external_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "keywords": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "null"
            }
          ]
        },
        "labels": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "null"
            }
          ]
        },
        "bypass_ad_insertion": {
          "type": "boolean"
        },
        "ad_provider": {
          "anyOf": [
            {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "string"
                }
              ]
            },
            {
              "type": "null"
            }
          ]
        },
        "intro_outro_include": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ]
        },
        "video_content_rating": {
          "type": "string"
        },
        "video_thumbnail_source": {
          "type": "string"
        },
        "production_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ]
        },
        "duration": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ]
        },
        "permalink": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "cover_image_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "chapter_marks": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "object",
                "required": [],
                "additionalProperties": false,
                "properties": {
                  "title": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "start_time": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "url": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                }
              }
            },
            {
              "type": "null"
            }
          ]
        },
        "transcription": {
          "type": "object",
          "required": [
            "available",
            "segment_count"
          ],
          "additionalProperties": false,
          "properties": {
            "available": {
              "type": "boolean"
            },
            "segment_count": {
              "type": "integer"
            },
            "updated_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "dry_run",
        "action",
        "attributes",
        "podcast_id"
      ],
      "additionalProperties": false,
      "properties": {
        "dry_run": {
          "const": true
        },
        "action": {
          "const": "create_episode"
        },
        "attributes": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "title": {
              "type": "string"
            },
            "subtitle": {
              "type": "string"
            },
            "show_notes": {
              "type": "string"
            },
            "show_notes_md": {
              "type": "string"
            },
            "authors": {
              "type": "string"
            },
            "cover_image": {
              "type": "string",
              "format": "uri"
            },
            "facebook_image": {
              "type": "string",
              "format": "uri"
            },
            "number": {
              "type": "integer"
            },
            "season": {
              "type": "integer"
            },
            "slug": {
              "type": "string"
            },
            "explicit": {
              "type": "boolean"
            },
            "guid": {
              "type": "string"
            },
            "external_url": {
              "type": "string",
              "format": "uri"
            },
            "publication_type": {
              "type": "string",
              "enum": [
                "full",
                "trailer",
                "bonus"
              ]
            },
            "bypass_ad_insertion": {
              "type": "boolean"
            },
            "ad_provider": {
              "type": "string",
              "enum": [
                "podigee",
                "podigee_programmatic"
              ]
            },
            "intro_outro_include": {
              "type": "boolean"
            },
            "video_content_rating": {
              "type": "string",
              "enum": [
                "eighteen_plus",
                "unspecified"
              ]
            },
            "video_thumbnail_source": {
              "type": "string",
              "enum": [
                "auto",
                "custom"
              ]
            },
            "keywords": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "labels": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "contributor_ids": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            },
            "chapter_marks": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "title": {
                    "type": "string"
                  },
                  "start_time": {
                    "type": "string",
                    "pattern": "^\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?$"
                  },
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "image": {
                    "type": "string",
                    "format": "uri"
                  }
                }
              }
            },
            "transcription": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "start": {
                    "type": "number"
                  },
                  "end": {
                    "type": "number"
                  },
                  "text": {
                    "type": "string"
                  },
                  "speaker_id": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "podcast_id": {
          "type": "integer"
        }
      }
    }
  ]
}
```

### Output field descriptions

### `(oneOf 1).has_media`

Whether playable audio or video is attached. An episode with has\_media false cannot be published: publish\_episode rejects it, and setting published\_at on it produces a dated episode that never goes out. Attach media first.

### `(oneOf 2).attributes.chapter_marks[].start_time`

Offset from the start of the episode as "HH:MM:SS", optionally with milliseconds: "00:12:30" or "00:12:30.500". Plain seconds are not accepted.

## Safety and retries

Use `dry_run: true` to inspect the normalized plan before any consequential change. Reuse one stable `idempotency_key` for retries of the same intended action. Use a new key for a different action.

Do not retry validation, authorization, plan, or ownership errors unchanged. Retry transient errors only when the response marks them as retryable. For durable work, use the returned operation ID instead of starting the same action again.

## Related guides

* [Create a draft episode](/documentation/start-here/ai-agents/manage-episodes/create-a-draft-episode.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.podigee.com/documentation/start-here/ai-agents/mcp-tools/create-episode.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
