Publishing

Update a publishing series.

Its title, cover, feed fields, timezone (the show's one clock), status, and the show's standing approval (standingApprovalKeyId). Binding a key requires userConfirmed: true; the app holding it makes the show from then on (one producer per show), so a show Sleeper was making turns off. Null revokes the approval. A show's setup and its on/off are its own resource: /publishing-series/{seriesId}/show. A series that holds a standing approval, or a show that is on, stays audio.

patch/publishing-series/{seriesId}

Request

  • Base URL: https://docs.sleeperhit.studio/api/v1
  • URL: https://docs.sleeperhit.studio/api/v1/publishing-series/{seriesId}
  • Auth: HTTP bearer

Request body

titlestring
slugstring
descriptionstring nullable
medium'audio' | 'video' | 'short_form' | 'text' | 'mixed'
formatstring
status'draft' | 'active' | 'paused' | 'archived'
timezonestring
languagestring
rating'clean' | 'explicit' | 'unknown'
explicitContentboolean
podcastType'episodic' | 'serial'
podcastCategorystring
podcastSubcategorystring nullable
coverArtUrlstring uri nullable
websiteUrlstring uri nullable
copyrightstring nullable
syntheticDisclosurestring

The show's synthetic-media line (legal gap G8a): it ends the feed's description and every episode's notes, is the feed's podcast:txt (purpose synthetic-media) and shows on the show's pages. Reword it; it can never be empty (default: "Voices and music in this show are synthetic."). Null or empty is refused.

ownerNamestring nullable
ownerEmailstring nullable
promptDirectionstring nullable
metadataobject nullable
visibility'public' | 'unlisted' | 'private'

What the show's slug exposes: public (landing page, archive, and the podcast feed), unlisted (shared episode links and the podcast feed, reached by link: never indexed, and the feed asks podcast directories not to list it), or private (nothing; the feed answers 404). A draft show's feed is served too.

standingApprovalKeyIdstring nullable

Grant the show's standing approval to ONE API key (its id, or "self" for the calling key; an OAuth connection or a CLI/app sign-in key cannot hold one, so use a named API key): the app holding it makes the show from then on, and a show Sleeper was making turns off. Null revokes it. Granting requires userConfirmed: true; audio series only.

userConfirmedtrue

Required when the request grants a standing approval (standingApprovalKeyId set), after the user explicitly agrees the app may approve and publish episodes without asking each time.

Example request

{
  "format": "podcast",
  "podcastCategory": "Fiction",
  "podcastSubcategory": "Drama"
}

Response

Publishing series envelope.

Example response

{
  "series": {
    "format": "podcast",
    "podcastCategory": "Fiction",
    "podcastSubcategory": "Drama"
  }
}

Changes

No recorded changes to this operation across all 2 revisions of this API.