Appearance
KeyedEpisode
Type: object, no additional properties
created_at(required):string | null, format:date-time, pattern:^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$description(required):string | nullPlain text.
duration_seconds(required):number | nullepisode_number(required):integer | null, minimum:-9007199254740991, maximum:9007199254740991episode_type(required):string | nullexplicit(required):booleanid(required):string, format:uuid, pattern:^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$media(required): KeyedEpisodeMedia |nullOnly for a published episode whose publish time has passed; null otherwise.
podcast_id(required):string, format:uuid, pattern:^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$published_at(required):string | null, format:date-time, pattern:^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$rss_guid(required):string | nullThe GUID in the show's public RSS feed, which for imported episodes is usually the original GUID. Null unless status is published and published_at has passed, or when unknown or withheld by credential restrictions.
scheduled_for(required):string | null, format:date-time, pattern:^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$season_number(required):integer | null, minimum:-9007199254740991, maximum:9007199254740991show_notes(required):string | nullPlain text.
show_notes_html(required):string | nullSanitised HTML (p, br, strong, em, u, a, ul, ol, li, h1 to h6, blockquote; links https, http or mailto only). Still untrusted: sanitise again before rendering.
slug(required):string | nullsource(required):object, no additional propertiesOne-way import matching fingerprints from the earliest completed snapshot or stored external metadata. Native episodes without either have null fields. Apply the published normalisation rules before hashing candidate values; the contract includes parity vectors.
enclosure_sha256(required):string | null, pattern:^[0-9a-f]{64}$SHA-256 of the normalised source enclosure URL. Null when unknown, invalid, without an import/external source, or before publication. No raw source URL is returned. Full normalisation rules and parity vectors are in info.description.
guid_sha256(required):string | null, pattern:^[0-9a-f]{64}$SHA-256 of the original source GUID after trimming surrounding whitespace only. Available for authorised reads of unpublished episodes too. Null when unknown or there is no import/external source. This field returns only a fingerprint.
status(required):string | null, possible values:"pending_confirmation", "draft", "scheduled", "published", "archived"subtitle(required):string | nulltitle(required):string