---
title: "Create a podcast"
method: PUT
path: "/podcasts"
tags: ["Podcasts"]
---

# Create a podcast

`PUT /podcasts`

Create a podcast that can be used by anyone to stream media. Takes the url and catalog parameters.

## Query parameters

- `url` string
- `catalog` string

## Request body

- PodcastCreateRequest
  - `url` string, required — RSS URL for podcast
  - `catalog` string, required — Podcast catalog ID

## Response `200`

Podcast created

- PodcastObject
  - `id` string, required
  - `name` string, nullable, required
  - `description` string, required
  - `language` string, required
  - `copyright` string, required
  - `feed_url` string, required
  - `generator` string, required
  - `website` string, required
  - `build_date` string, required
  - `sync_date` string, required
  - `public_url` string, required
  - `art` string, nullable, required
  - `has_art` boolean, required
  - `flag` boolean, required
  - `rating` integer, nullable, required
  - `averagerating` number, nullable, required
  - `catalog` string, required
  - `podcast_episode` PodcastEpisodeObject[], required
    - `id` string, required
    - `title` string, nullable, required
    - `name` string, nullable, required
    - `podcast` object, required
      - `id` string, required
      - `name` string, required
    - `description` string, required
    - `category` string, nullable, required
    - `author` string, nullable, required
    - `author_full` string, nullable, required
    - `website` string, required
    - `pubdate` string, nullable, required
    - `state` string, required
    - `filelength` string, required
    - `filesize` string, required
    - `filename` string, required
    - `mime` string, nullable, required
    - `time` integer, required
    - `size` integer, required
    - `bitrate` integer, required
    - `stream_bitrate` integer, required
    - `rate` integer, required
    - `mode` string, nullable, required
    - `channels` integer, nullable, required
    - `public_url` string, required
    - `url` string, required
    - `catalog` string, required
    - `art` string, nullable, required
    - `has_art` boolean, required
    - `flag` boolean, required
    - `rating` integer, nullable, required
    - `averagerating` number, nullable, required
    - `playcount` integer, required
    - `last_played` string, nullable, required
    - `played` string, required

## Other responses

- `400` — HTTP 400 Bad Request (errors 4705, 4710).
- `401` — HTTP 401 Unauthorized (error 4701).
- `403` — HTTP 403 Forbidden (errors 4700, 4703, 4742).
- `500` — HTTP 500 Internal Server Error (error 4702).

## Changes

> 46 revisions in range; 8 could not be searched.

- **2026-07-29** `1e49346294e8` — 1 info
  - added the required property `catalog` to the response with the `200` status
- **2026-07-28** `48f80d018de4` — 1 info
  - added the required property `podcast_episode/items/last_played` to the response with the `200` status
- **2026-07-22** `e8e6b266ea29` — 7 info
  - api operation id `podcastCreate` was added
  - added optional request body
  - the `query` request parameter `catalog` became optional
  - the `query` request parameter `url` became optional
  - …3 more
- **2026-07-21** `2ff18e50dcc1` — 17 info
  - added the required property `art` to the response with the `200` status
  - added the required property `averagerating` to the response with the `200` status
  - added the required property `build_date` to the response with the `200` status
  - added the required property `copyright` to the response with the `200` status
  - …13 more
- **2026-06-25** `7ed7a764efd9` — 1 info
  - added the non-success response with the status `400`

[Full history](https://skmtc.dev/ampache/apis/ampache-rest-api/changes/podcasts/put.md)

---

[API](https://skmtc.dev/ampache/apis/ampache-rest-api.md) · [All operations](https://skmtc.dev/ampache/apis/ampache-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ampache/ampache-rest-api/revisions/42d304fb6867/schema)
