---
title: "Podcast Episode Schema · Unhead"
canonical_url: "https://unhead.unjs.io/docs/nuxt/schema-org/api/schema/podcast-episode"
last_updated: "2026-09-11T19:32:10.930Z"
meta:
  description: "Use definePodcastEpisode() to describe a podcast episode, including its title, audio, dates, duration, transcript, and parent series."
  "og:description": "Use definePodcastEpisode() to describe a podcast episode, including its title, audio, dates, duration, transcript, and parent series."
  "og:title": "Podcast Episode Schema · Unhead"
---

Home

`
Unhead on GitHub

Switch to NuxtSwitch to TypeScriptSwitch to VueSwitch to ReactSwitch to SvelteSwitch to Solid.jsSwitch to Angular

**Schema**

# **Podcast Episode Schema**

[Copy for LLMs](https://raw.githubusercontent.com/unjs/unhead/refs/heads/main/docs/schema-org/5.api/9.schema/podcast-episode.md)

## Schema.org PodcastEpisode

**Type**: `definePodcastEpisode<T extends Record<string, any>>(input?: PodcastEpisode & T)`

Describes an individual podcast episode.

## Useful Links

- [**~~PodcastEpisode - Schema.org~~**](https://schema.org/PodcastEpisode)

## Required properties

- **name** `**string**`  
  The name/title of the podcast episode.

## Recommended properties

- **url** `**string**`  
  The URL of the episode page.
- **audio** `**string**`  
  The URL of the audio file for the episode.
- **description** `**string**`  
  A description of the episode.
- **duration** `**string**`  
  The duration of the episode in ISO 8601 format (e.g., "PT45M" for 45 minutes).
- **datePublished** `**ResolvableDate**`  
  The date the episode was published.
- **partOfSeries** `**NodeRelation<any>**`  
  Reference to the podcast series this episode belongs to. Use `**definePodcastSeries()**` for a nested object if you want Unhead to attach the `**PodcastSeries**` resolver.

## Defaults

- **@type**: `**PodcastEpisode**`
- **@id**: `**${canonicalUrl}#/schema/podcast-episode/{n}**`
- **inLanguage**: `**inLanguage**` from resolved page metadata *(see: [**~~Schema.org Params~~**](https://unhead.unjs.io/docs/schema-org/guides/core-concepts/params))*

## Examples

### Minimal

```
definePodcastEpisode({
  name: 'Episode 1: Getting Started',
  url: 'https://example.com/podcast/episode-1',
  audio: 'https://example.com/podcast/ep1.mp3',
})
```

### Detailed example

```
definePodcastEpisode({
  name: 'Episode 42: The Answer to Everything',
  description: 'In this episode, we explore the meaning of life, the universe, and everything.',
  url: 'https://example.com/podcast/episode-42',
  audio: 'https://example.com/podcast/ep42.mp3',
  episodeNumber: 42,
  duration: 'PT45M30S', // 45 minutes 30 seconds
  datePublished: new Date(2024, 5, 15),
  image: 'https://example.com/episode-42-cover.jpg',
  transcript: 'https://example.com/podcast/ep42-transcript',
  partOfSeries: definePodcastSeries({
    name: 'The Example Podcast',
  }),
  author: {
    name: 'Jane Doe',
  },
})
```

## Types

```
export interface PodcastEpisodeSimple extends Thing {
  name: string
  description?: string
  url?: string
  episodeNumber?: number | string
  partOfSeries?: NodeRelation<any>
  partOfSeason?: NodeRelation<any>
  author?: NodeRelations<Person | Organization | string>
  audio?: NodeRelation<any | string>
  duration?: string
  image?: NodeRelations<string | ImageObject>
  thumbnailUrl?: string
  datePublished?: ResolvableDate
  uploadDate?: ResolvableDate
  transcript?: string
  inLanguage?: string
  aggregateRating?: NodeRelation<AggregateRating>
  review?: NodeRelations<Review>
  keywords?: Arrayable<string>
}
```

## Related Schemas

- [**~~PodcastSeries~~**](https://unhead.unjs.io/docs/schema-org/api/schema/podcast-series): Parent series
- [**~~Person~~**](https://unhead.unjs.io/docs/schema-org/api/schema/person): Host, guests

[Edit this page](https://github.com/unjs/unhead/edit/main/docs/schema-org/5.api/9.schema/podcast-episode.md)

[Markdown For LLMs](https://raw.githubusercontent.com/unjs/unhead/refs/heads/main/docs/schema-org/5.api/9.schema/podcast-episode.md)

**Did this page help you? **

[**Person Schema** Use definePerson() to add Person structured data. Establish author identity for articles and content with name, image, and social profile links.](https://unhead.unjs.io/docs/schema-org/api/schema/person) [**Podcast Season Schema** Use definePodcastSeason() to add PodcastSeason structured data. Organize podcast episodes by season with episode counts and dates.](https://unhead.unjs.io/docs/schema-org/api/schema/podcast-season)

**On this page **

- [Schema.org PodcastEpisode](#schemaorg-podcastepisode)
- [Useful Links](#useful-links)
- [Required properties](#required-properties)
- [Recommended properties](#recommended-properties)
- [Defaults](#defaults)
- [Examples](#examples)
- [Types](#types)
- [Related Schemas](#related-schemas)