S3 Integration - Episodes

Pod Engine can sync episode data via an S3 file based integration. This is available for our enterprise customers.

How Schema Versioning Works

All documents will always include the following fields:

schema_versionnumberrequired

The numeric version of the schema. Starts at 1, and increments with each new version.

Schema Versions

Version Release Date Description
4 3/4/2026 Added sentence-level VTT content Go to Details
3 10/6/2025 Added denormalized podcast title and external IDs Go to Details
2 9/28/2025 Added sponsors and guest data Go to Details
1 7/2/2025 Initial release with basic metadata Go to Details

Schema Versions Details

Version 4Latest
Released on 3/4/2026

Changelog

  • Added transcript_sentence_vtt
schema_versionnumberrequired

The numeric version of the schema. Starts at 1, and increments with each new version.

The date the episode was created in the Pod Engine database. This is when we first saw the episode and typically is close to episode_rss_published_at but can diverge especially when a podcast is first created/seen by Pod Engine.

The generated short description of the episode

episode_duration_secondsnumberrequirednullable

The duration of the episode in seconds

episode_enclosure_urlstringrequired

The url of the episode enclosure

episode_guests_and_hostsarray of objectrequirednullable5 fields

Guests and hosts data. Null means it hasn been analyzed

namestringrequired

The name of the guest.

typeenumrequired

How the person appears in the episode: guest, host, unknown, or mentioned.

hostguestunknownmentioned
rolesarray of stringrequired

An array of possible job roles and titles

organizationsarray of stringrequired

An array of organizations the guest is affiliated with.

image_urlstringrequirednullableurl

The URL of the guest image, if available.

episode_has_transcriptbooleanrequired

Whether the episode has a transcript

episode_image_urlstringrequirednullable

The url of the episode image. Null means the episode doesnt have a specific image

The description of the episode

The published date of the episode

episode_rss_titlestringrequired

The title of the episode

episode_sponsors_and_advertisersarray of objectrequirednullable4 fields

Sponsors and advertisers data. Null means it hasn been analyzed

namestringrequired

The name of the sponsor.

urlsarray of stringrequired

An array of URLs associated with the sponsor.

snippetstringrequired

A brief snippet or description of the sponsor.

coupon_codesstringrequirednullable

Any coupon codes provided by the sponsor, if applicable.

podcast_apple_idnumberrequired

The Apple Podcasts ID of the podcast

Whether the episode will be automatically transcribed or not. This is a podcast level setting. Note that the document will not be updated if this value changes before the transcript is available

The latest title of the podcast from the RSS feed. This can change over time and if it is changed on the podcast this wont trigger an episode document update. This denormalized field is included so if the podcast isn already created at episode ingestion it can be

The original title of the podcast from the RSS feed. This is the first podcast title Pod Engine ever dected and will not change. This denormalized field is included so if the podcast isn already created at episode ingestion it can be

podcast_spotify_idstringrequirednullable

The Spotify ID of the podcast. This is used to link to the Spotify page for the podcast and can be used to fetch additional metadata about the podcast. Null means the podcast is not on Spotify or Pod Engine does not have a valid Spotify ID for it

podengine_episode_idstringrequireduuid

The podengine unique id for the individual episode

The podengine unique slug for the individual episode

podengine_podcast_idstringrequireduuid

The podengine unique id for the podcast

The podengine unique slug for the podcast

transcript_sentence_vttstringrequirednullable

The sentence-level VTT content. Null means no sentence VTT is available (e.g. old transcripts or episodes without transcripts)

transcript_textstringrequirednullable

The text of the transcript. Null means the episode doesnt have a transcript

Version 3
Released on 10/6/2025

Changelog

  • Added podcast_rss_title_latest
  • Added podcast_rss_title_original
  • Added podcast_apple_id
  • Added podcast_spotify_id
schema_versionnumberrequired

The numeric version of the schema. Starts at 1, and increments with each new version.

The date the episode was created in the Pod Engine database. This is when we first saw the episode and typically is close to episode_rss_published_at but can diverge especially when a podcast is first created/seen by Pod Engine.

The generated short description of the episode

episode_duration_secondsnumberrequirednullable

The duration of the episode in seconds

episode_enclosure_urlstringrequired

The url of the episode enclosure

episode_guests_and_hostsarray of objectrequirednullable5 fields

Guests and hosts data. Null means it hasn been analyzed

namestringrequired

The name of the guest.

typeenumrequired

How the person appears in the episode: guest, host, unknown, or mentioned.

hostguestunknownmentioned
rolesarray of stringrequired

An array of possible job roles and titles

organizationsarray of stringrequired

An array of organizations the guest is affiliated with.

image_urlstringrequirednullableurl

The URL of the guest image, if available.

episode_has_transcriptbooleanrequired

Whether the episode has a transcript

episode_image_urlstringrequirednullable

The url of the episode image. Null means the episode doesnt have a specific image

The description of the episode

The published date of the episode

episode_rss_titlestringrequired

The title of the episode

episode_sponsors_and_advertisersarray of objectrequirednullable4 fields

Sponsors and advertisers data. Null means it hasn been analyzed

namestringrequired

The name of the sponsor.

urlsarray of stringrequired

An array of URLs associated with the sponsor.

snippetstringrequired

A brief snippet or description of the sponsor.

coupon_codesstringrequirednullable

Any coupon codes provided by the sponsor, if applicable.

podcast_apple_idnumberrequired

The Apple Podcasts ID of the podcast

Whether the episode will be automatically transcribed or not. This is a podcast level setting. Note that the document will not be updated if this value changes before the transcript is available

The latest title of the podcast from the RSS feed. This can change over time and if it is changed on the podcast this wont trigger an episode document update. This denormalized field is included so if the podcast isn already created at episode ingestion it can be

The original title of the podcast from the RSS feed. This is the first podcast title Pod Engine ever dected and will not change. This denormalized field is included so if the podcast isn already created at episode ingestion it can be

podcast_spotify_idstringrequirednullable

The Spotify ID of the podcast. This is used to link to the Spotify page for the podcast and can be used to fetch additional metadata about the podcast. Null means the podcast is not on Spotify or Pod Engine does not have a valid Spotify ID for it

podengine_episode_idstringrequireduuid

The podengine unique id for the individual episode

The podengine unique slug for the individual episode

podengine_podcast_idstringrequireduuid

The podengine unique id for the podcast

The podengine unique slug for the podcast

transcript_textstringrequirednullable

The text of the transcript. Null means the episode doesnt have a transcript

Version 2
Released on 9/28/2025

Changelog

  • Added episode_sponsors_and_advertisers
  • Added episode_guests_and_hosts
  • Added podcast_is_auto_transcribed
schema_versionnumberrequired

The numeric version of the schema. Starts at 1, and increments with each new version.

The date the episode was created in the Pod Engine database. This is when we first saw the episode and typically is close to episode_rss_published_at but can diverge especially when a podcast is first created/seen by Pod Engine.

The generated short description of the episode

episode_duration_secondsnumberrequirednullable

The duration of the episode in seconds

episode_enclosure_urlstringrequired

The url of the episode enclosure

episode_guests_and_hostsarray of objectrequirednullable5 fields

Guests and hosts data. Null means it hasn been analyzed

namestringrequired

The name of the guest.

typeenumrequired

How the person appears in the episode: guest, host, unknown, or mentioned.

hostguestunknownmentioned
rolesarray of stringrequired

An array of possible job roles and titles

organizationsarray of stringrequired

An array of organizations the guest is affiliated with.

image_urlstringrequirednullableurl

The URL of the guest image, if available.

episode_has_transcriptbooleanrequired

Whether the episode has a transcript

episode_image_urlstringrequirednullable

The url of the episode image. Null means the episode doesnt have a specific image

The description of the episode

The published date of the episode

episode_rss_titlestringrequired

The title of the episode

episode_sponsors_and_advertisersarray of objectrequirednullable4 fields

Sponsors and advertisers data. Null means it hasn been analyzed

namestringrequired

The name of the sponsor.

urlsarray of stringrequired

An array of URLs associated with the sponsor.

snippetstringrequired

A brief snippet or description of the sponsor.

coupon_codesstringrequirednullable

Any coupon codes provided by the sponsor, if applicable.

Whether the episode will be automatically transcribed or not. This is a podcast level setting. Note that the document will not be updated if this value changes before the transcript is available

podengine_episode_idstringrequireduuid

The podengine unique id for the individual episode

The podengine unique slug for the individual episode

podengine_podcast_idstringrequireduuid

The podengine unique id for the podcast

The podengine unique slug for the podcast

transcript_textstringrequirednullable

The text of the transcript. Null means the episode doesnt have a transcript

Version 1
Released on 7/2/2025
schema_versionnumberrequired

The numeric version of the schema. Starts at 1, and increments with each new version.

The date the episode was created in the Pod Engine database. This is when we first saw the episode and typically is close to episode_rss_published_at but can diverge especially when a podcast is first created/seen by Pod Engine.

The generated short description of the episode

episode_duration_secondsnumberrequirednullable

The duration of the episode in seconds

episode_enclosure_urlstringrequired

The url of the episode enclosure

episode_has_transcriptbooleanrequired

Whether the episode has a transcript

episode_image_urlstringrequirednullable

The url of the episode image. Null means the episode doesnt have a specific image

The description of the episode

The published date of the episode

episode_rss_titlestringrequired

The title of the episode

Whether the episode will be automatically transcribed or not. This is a podcast level setting. Note that the document will not be updated if this value changes before the transcript is available

podengine_episode_idstringrequireduuid

The podengine unique id for the individual episode

The podengine unique slug for the individual episode

podengine_podcast_idstringrequireduuid

The podengine unique id for the podcast

The podengine unique slug for the podcast

transcript_textstringrequirednullable

The text of the transcript. Null means the episode doesnt have a transcript

Get started with the API and MCP server

One plan, everything included

  • Full Pod Engine web app access
  • Full API access — same data, programmatic
  • MCP server
  • 10,000 searches / mo
  • 10,000 podcast and episode lookups / mo
  • 1,000 transcripts / mo
  • Historical podcast charts
  • Contacts, emails, social & YouTube data
  • 30 alerts

Get Started

$100 / month

Pay monthly. Cancel anytime.

Available Discounts

We believe great tools should be accessible to everyone building amazing things.

Eligible for a discount? Contact us to learn more.

Bootstrapped Startups

50% off first year

Students & Educators

50% off first year

Nonprofits

50% off first year

Pay Annually

2 months free

Need Guest Booking, an Agency plan, or higher limits?

See the full pricing page for addons and Agency options, or schedule a call.

Need more than 10,000 searches / mo? Get in touch and we'll tailor a plan.