PodcastIndex Episodes API

Find details about one or more episodes of a podcast or podcasts.

OpenAPI Specification

podcastindex-episodes-api-openapi.yml Raw ↑
openapi: 3.0.2
info:
  version: 1.12.1
  title: PodcastIndex.org Add Episodes API
  termsOfService: https://github.com/Podcastindex-org/legal/blob/main/TermsOfService.md
  contact:
    email: info@podcastindex.org
    url: https://podcastindex.org/
  license:
    name: MIT
    url: https://github.com/Podcastindex-org/docs-api/blob/master/LICENSE
  x-logo:
    url: logo.svg
    href: /
  description: "Download the openapi spec in [json](pi_api.json) or [yaml](pi_api.yaml) format.\n\n# Overview\n\nThe Podcast Index (Podcast Index LLC) is a software developer focused partnership that provides tools and data to\nanyone who aspires to create new and exciting Podcast experiences without the heavy lifting of indexing,\naggregation and data management.\n\n# Example Code\n\nUsers have provided example code for working the API in the following languages:\n\n  - [AWS Lambda - python](https://github.com/tbowers/python-podcastindex-org-lambda)\n  - [Bash](https://github.com/suorcd/Bash-podcastindex-org-example)\n  - [C#](https://github.com/ComicStrip/csharp-podcastindex-org-example)\n  - [Elisp](https://github.com/sabexx/elisp-example)\n  - [Flutter/Dart](https://github.com/crediblecreative/flutter-dart-podcastindex-org-example)\n  - [Go](https://github.com/ComicStrip/Go-podcastindex-org-example)\n  - [Go](https://github.com/kilobit/podcast-index-client)\n  - [Java](https://github.com/ComicStrip/Java-podcastindex-org-example)\n  - [Java](https://github.com/stucoates/PodcastIndexJavaClient)\n  - [Node.js](https://github.com/ComicStrip/node.js-podcastindex-org-example)\n  - [PHP](https://github.com/Podcastindex-org/example-code)\n  - [Python](https://github.com/tbowers/python-podcastindex-org-example)\n  - [Swift](https://github.com/ComicStrip/Swift-podcastindex-org-example)\n  - ... [More](https://github.com/Podcastindex-org-Examples)\n\nDon't see your desired language, create an example repo and create a\n[Pull Request](https://github.com/Podcastindex-org/docs-api/pulls) with a link to your example code project!\n\n# Libraries\n\nUser created libraries for working with the API:\n\n  - Java\n      - [podcast4j](https://github.com/yusufyilmazfr/podcast4j)\n  - .NET\n      - [PodcastIndexSharp](https://www.nuget.org/packages/PodcastIndexSharp)\n  - Node.js/npm/yarn\n      - [podcast-index-api](https://www.npmjs.com/package/podcast-index-api)\n      - [podcastdx-client](https://www.npmjs.com/package/podcastdx-client)\n  - PHP\n      - [podcastindex-php](https://github.com/LowSociety/podcastindex-php)\n  - Python/pip\n      - [python-podcastindex](https://pypi.org/project/python-podcastindex/)\n  - R\n      - [podindexr](https://github.com/rpodcast/podindexr)\n  - Ruby\n      - [podcast-index](https://github.com/jasonyork/podcast-index)\n  - Swift\n      - [PodcastIndexKit](https://github.com/SparrowTek/PodcastIndexKit)\n  - Kotlin\n      - [PodcastIndex-SDK](https://github.com/mr3y-the-programmer/PodcastIndex-SDK)\n  - Go\n      - [podcastindex](https://github.com/jjgmckenzie/podcastindex)\n      - [podcastindex-go](https://github.com/koalahl/podcastindex-go)\n\nAre we missing a library? Did you create one for a different language? Create a\n[Pull Request](https://github.com/Podcastindex-org/docs-api/pulls) with a link to the new library!\n\n# Postman\n\nA collection file for use in the [Postman](https://www.postman.com/) application is available for this API.\n\n  1. Download the contents of the [Postman Docs](https://github.com/Podcastindex-org/docs-api/tree/master/Postman%20Docs) folder.\n  2. Import the `PodcastIndex.postman_collection.json` collection to Postman\n  3. Import the `PodcastIndexOrgEnvironment.postman_environment.json` to Postman\n  4. Click \"Environments\" on the left sidebar\n  5. Select the checkbox next to the PodcastIndexOrgEnvironment entry\n  6. Set `AuthKey` and `SeceretKey` values under the \"Current Value\" column using your API information\n  7. Click \"Collections\" from the sidebar\n  8. Select PodcastIndex\n  9. Select and run the endpoint to test\n\n# Contributing\n\nThe source for this API documentation is available at\n[https://github.com/Podcastindex-org/docs-api](https://github.com/Podcastindex-org/docs-api).\nSubmit an Issue or create a Pull Request.\n\n# Authentication Details\n\nSending an API request is easy. We use an Amazon-style request authorization token to secure each request.\n\n\nRegister for a free API key at https://api.podcastindex.org/\n\n\nThese headers parameters are required for each request: `User-Agent`, `X-Auth-Date`, `X-Auth-Key`, `Authorization`\n\n\nSee [Authentication](#auth) for description of parameters.\n\n# Legal\n\nLegal\n\n  - [Privacy Policy](https://github.com/Podcastindex-org/legal/blob/main/PrivacyPolicy.md)\n  - [Terms of Service](https://github.com/Podcastindex-org/legal/blob/main/TermsOfService.md)\n  - [License](https://github.com/Podcastindex-org/docs-api/blob/master/LICENSE)\n"
servers:
- url: https://api.podcastindex.org/api/1.0
tags:
- name: Episodes
  description: 'Find details about one or more episodes of a podcast or podcasts.

    '
paths:
  /episodes/byfeedid:
    get:
      tags:
      - Episodes
      summary: By Feed ID
      description: "This call returns all the episodes we know about for this feed from the PodcastIndex ID.\nEpisodes are in reverse chronological order.\n\n\nWhen using the `enclosure` parameter, only the episode matching the URL is returned.\n\n\nExamples:\n\n  - https://api.podcastindex.org/api/1.0/episodes/byfeedid?id=75075&pretty\n  - https://api.podcastindex.org/api/1.0/episodes/byfeedid?id=41504,920666&pretty\n  - https://api.podcastindex.org/api/1.0/episodes/byfeedid?id=75075&newest&pretty\n  - https://api.podcastindex.org/api/1.0/episodes/byfeedid?id=41504,920666&newest&pretty\n  - Includes `persons`: https://api.podcastindex.org/api/1.0/episodes/byfeedid?id=169991&pretty\n  - Includes `value`: https://api.podcastindex.org/api/1.0/episodes/byfeedid?id=4058673&pretty\n  - Using `enclosure`: https://api.podcastindex.org/api/1.0/episodes/byfeedid?id=41504&enclosure=https://op3.dev/e/mp3s.nashownotes.com/NA-1551-2023-04-30-Final.mp3&pretty\n"
      operationId: episodes/byfeedid
      security:
      - API-Key: []
        User-Agent: []
        Date: []
        Authorization: []
      parameters:
      - $ref: '#/components/parameters/id_feed_episode_pi'
      - $ref: '#/components/parameters/since'
      - $ref: '#/components/parameters/max'
      - $ref: '#/components/parameters/enclosure'
      - $ref: '#/components/parameters/fulltext'
      - $ref: '#/components/parameters/newest'
      - $ref: '#/components/parameters/pretty'
      responses:
        '200':
          $ref: '#/components/responses/episodes_byfeedid'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
  /episodes/byfeedurl:
    get:
      tags:
      - Episodes
      summary: By Feed URL
      description: "This call returns all the episodes we know about for this feed from the feed URL.\nEpisodes are in reverse chronological order.\n\n\nExamples:\n\n  - https://api.podcastindex.org/api/1.0/episodes/byfeedurl?url=https://feeds.theincomparable.com/batmanuniversity&pretty\n  - Includes `persons`: https://api.podcastindex.org/api/1.0/episodes/byfeedurl?url=https://engineered.network/pragmatic/feed/index.xml&pretty\n  - Includes `value`: https://api.podcastindex.org/api/1.0/episodes/byfeedurl?url=https://closing-the-loop.github.io/feed.xml&pretty\n"
      operationId: episodes/byfeedurl
      security:
      - API-Key: []
        User-Agent: []
        Date: []
        Authorization: []
      parameters:
      - $ref: '#/components/parameters/url'
      - $ref: '#/components/parameters/since'
      - $ref: '#/components/parameters/max'
      - $ref: '#/components/parameters/fulltext'
      - $ref: '#/components/parameters/pretty'
      responses:
        '200':
          $ref: '#/components/responses/episodes_byfeedurl'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
  /episodes/bypodcastguid:
    get:
      tags:
      - Episodes
      summary: By Podcast GUID
      description: 'This call returns all the episodes we know about for this feed from the [Podcast GUID](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#guid).

        Episodes are in reverse chronological order.



        Example: https://api.podcastindex.org/api/1.0/episodes/bypodcastguid?guid=856cd618-7f34-57ea-9b84-3600f1f65e7f&pretty

        '
      operationId: episodes/bypodcastguid
      security:
      - API-Key: []
        User-Agent: []
        Date: []
        Authorization: []
      parameters:
      - $ref: '#/components/parameters/guid_feed_podcast'
      - $ref: '#/components/parameters/since'
      - $ref: '#/components/parameters/max'
      - $ref: '#/components/parameters/fulltext'
      - $ref: '#/components/parameters/pretty'
      responses:
        '200':
          $ref: '#/components/responses/episodes_byfeedurl'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
  /episodes/byitunesid:
    get:
      tags:
      - Episodes
      summary: By iTunes ID
      description: "This call returns all the episodes we know about for this feed from the iTunes ID.\nEpisodes are in reverse chronological order.\n\n\nWhen using the `enclosure` parameter, only the episode matching the URL is returned.\n\n\nExamples:\n\n  - https://api.podcastindex.org/api/1.0/episodes/byitunesid?id=1441923632&pretty\n  - Using `enclosure`: https://api.podcastindex.org/api/1.0/episodes/byitunesid?id=269169796&enclosure=https://op3.dev/e/mp3s.nashownotes.com/NA-1551-2023-04-30-Final.mp3&pretty\n"
      operationId: episodes/byitunesid
      security:
      - API-Key: []
        User-Agent: []
        Date: []
        Authorization: []
      parameters:
      - $ref: '#/components/parameters/id_feed_podcast_itunes'
      - $ref: '#/components/parameters/since'
      - $ref: '#/components/parameters/max'
      - $ref: '#/components/parameters/enclosure'
      - $ref: '#/components/parameters/fulltext'
      - $ref: '#/components/parameters/pretty'
      responses:
        '200':
          $ref: '#/components/responses/episodes_byitunesid'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
  /episodes/byid:
    get:
      tags:
      - Episodes
      summary: By ID
      description: 'Get all the metadata for a single episode by passing its id.



        Example: https://api.podcastindex.org/api/1.0/episodes/byid?id=16795090&pretty

        '
      operationId: episodes/byid
      security:
      - API-Key: []
        User-Agent: []
        Date: []
        Authorization: []
      parameters:
      - $ref: '#/components/parameters/id_episode_pi'
      - $ref: '#/components/parameters/fulltext'
      - $ref: '#/components/parameters/pretty'
      responses:
        '200':
          $ref: '#/components/responses/episodes_byid'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
  /episodes/byguid:
    get:
      tags:
      - Episodes
      summary: By GUID
      description: "Get all the metadata for a single episode by passing its guid and the feed id or URL.\n\n\nThe `feedid`, `feedurl`, or `podcastguid` is required.\n\n\nExamples: \n\n  - Search using Podcast Index feed ID: https://api.podcastindex.org/api/1.0/episodes/byguid?guid=PC2084&feedid=920666&pretty\n  - Search using feed URL: https://api.podcastindex.org/api/1.0/episodes/byguid?guid=PC2084&feedurl=http://mp3s.nashownotes.com/pc20rss.xml&pretty\n"
      operationId: episodes/byguid
      security:
      - API-Key: []
        User-Agent: []
        Date: []
        Authorization: []
      parameters:
      - $ref: '#/components/parameters/guid_episode'
      - $ref: '#/components/parameters/feedurl'
      - $ref: '#/components/parameters/feedid'
      - $ref: '#/components/parameters/podcastguid_optional'
      - $ref: '#/components/parameters/fulltext'
      - $ref: '#/components/parameters/pretty'
      responses:
        '200':
          $ref: '#/components/responses/episodes_byguid'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
  /episodes/live:
    get:
      tags:
      - Episodes
      summary: Live
      description: "Get all episodes that have been found in the [podcast:liveitem](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#live-item) from the feeds.\n\n\nExamples: \n\n  - https://api.podcastindex.org/api/1.0/episodes/live?pretty\n"
      operationId: episodes/live
      security:
      - API-Key: []
        User-Agent: []
        Date: []
        Authorization: []
      parameters:
      - $ref: '#/components/parameters/max'
      - $ref: '#/components/parameters/pretty'
      responses:
        '200':
          $ref: '#/components/responses/episodes_live'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
  /episodes/random:
    get:
      tags:
      - Episodes
      summary: Random
      description: "This call returns a random batch of episodes, in no specific order.\n\n\nExamples:\n\n  - https://api.podcastindex.org/api/1.0/episodes/random?notcat=News,Religion&lang=en,es&pretty\n  - https://api.podcastindex.org/api/1.0/episodes/random?max=2&pretty\n"
      operationId: episodes/random
      security:
      - API-Key: []
        User-Agent: []
        Date: []
        Authorization: []
      parameters:
      - $ref: '#/components/parameters/max_random'
      - $ref: '#/components/parameters/lang'
      - $ref: '#/components/parameters/cat'
      - $ref: '#/components/parameters/notcat'
      - $ref: '#/components/parameters/fulltext'
      - $ref: '#/components/parameters/pretty'
      responses:
        '200':
          $ref: '#/components/responses/episodes_random'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
components:
  parameters:
    newest:
      name: newest
      in: query
      description: 'If present, returns only the most recent (newest) episode for each specified feed id.



        Parameter shall not have a value

        '
      schema:
        type: boolean
      allowEmptyValue: true
    pretty:
      name: pretty
      in: query
      description: 'If present, makes the output “pretty” to help with debugging.



        Parameter shall not have a value

        '
      schema:
        type: boolean
      allowEmptyValue: true
    max:
      name: max
      in: query
      description: 'Maximum number of results to return.

        '
      schema:
        type: integer
        minimum: 1
        maximum: 1000
      example: 10
    id_episode_pi:
      name: id
      in: query
      description: 'The PodcastIndex episode ID to search for.

        '
      required: true
      schema:
        type: integer
      example: 16795089
    id_feed_podcast_itunes:
      name: id
      in: query
      description: 'The iTunes Feed ID to search for

        '
      required: true
      schema:
        type: integer
      examples:
        id_only:
          value: 1441923632
          description: iTunes ID without any prefix
        prefix:
          value: id1441923632
          description: iTunes ID with optional "id" prefix
    feedurl:
      name: feedurl
      in: query
      description: 'The Feed URL

        '
      required: false
      schema:
        type: string
      example: http://mp3s.nashownotes.com/pc20rss.xml
    max_random:
      name: max
      in: query
      description: 'Maximum number of results to return.

        '
      schema:
        type: integer
        default: 1
        minimum: 1
        maximum: 1000
      example: 2
    guid_feed_podcast:
      name: guid
      in: query
      description: 'The GUID from the `podcast:guid` tag in the feed. This value is a unique, global identifier for the podcast.



        See the namespace spec for

        [guid](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#guid) for details.

        '
      required: true
      schema:
        type: string
      example: 9b024349-ccf0-5f69-a609-6b82873eab3c
    lang:
      name: lang
      in: query
      description: 'Specifying a language code (like "en") will return only episodes having that specific language.



        You can specify multiple languages by separating them with commas.



        If you also want to return episodes that have no language given, use the token "unknown". (ex. en,es,ja,unknown).



        Values are not case sensitive.

        '
      schema:
        type: string
      examples:
        single:
          value: en
          description: Single ID
        multiple:
          value: en,es
          description: Multiple IDs
    guid_episode:
      name: guid
      in: query
      description: "The guid value for the episode to retrieve.\n\n\n  This value is the value specified in the feed's `<guid>` field.\n"
      required: true
      schema:
        type: string
      example: PC2084
    notcat:
      name: notcat
      in: query
      description: 'Use this argument to specify categories of episodes to **NOT** show in the results.



        Separate multiple categories with commas.



        You may specify either the Category ID and/or the Category Name.



        Values are not case sensitive.



        The `cat` and `notcat` filters can be used together to fine tune a very specific result set.



        Category numbers and names can be found in the

        [Podcast Namespace documentation](https://github.com/Podcastindex-org/podcast-namespace/blob/main/categories.json)

        '
      schema:
        type: string
      examples:
        single_name:
          value: News
          description: Single Category Name
        single_id:
          value: 65
          description: Single Category ID
        multiple_name:
          value: News,Religion
          description: Multiple Category Names
        multiple_id_:
          value: 55,65
          description: Multiple Category IDs
        multiple_mixed:
          value: News,65
          description: Multiple Categories Mixed Format
    since:
      name: since
      in: query
      description: 'Return items since the specified epoch timestamp.

        '
      schema:
        type: integer
      example: 1612125785
    feedid:
      name: feedid
      in: query
      description: 'The PodcastIndex Feed ID

        '
      required: false
      schema:
        type: string
      example: '920666'
    fulltext:
      name: fulltext
      in: query
      description: 'If present, return the full text value of any text fields (ex: `description`).

        If not provided, field value is truncated to 100 words.



        Parameter shall not have a value

        '
      schema:
        type: boolean
      allowEmptyValue: true
    id_feed_episode_pi:
      name: id
      in: query
      description: 'The PodcastIndex Feed ID or IDs to search for.



        If searching for multiple IDs, separate values with a comma. A maximum of 200 IDs can be provided.

        '
      required: true
      schema:
        type: string
      examples:
        single:
          value: 75075
          description: Single ID
        multiple:
          value: 41504,920666
          description: Multiple IDs
    url:
      name: url
      in: query
      description: 'Podcast feed URL

        '
      required: true
      allowReserved: true
      schema:
        type: string
      example: https://feeds.theincomparable.com/batmanuniversity
    podcastguid_optional:
      name: podcastguid
      in: query
      description: 'The GUID from the `podcast:guid` tag in the feed. This value is a unique, global identifier for the podcast.



        See the namespace spec for

        [guid](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#guid) for details.

        '
      schema:
        type: string
      example: 917393e3-1b1e-5cef-ace4-edaa54e1f810
    cat:
      name: cat
      in: query
      description: 'Use this argument to specify that you **ONLY** want episodes with these categories in the results.



        Separate multiple categories with commas.



        You may specify either the Category ID and/or the Category Name.



        Values are not case sensitive.



        The `cat` and `notcat` filters can be used together to fine tune a very specific result set.



        Category numbers and names can be found in the

        [Podcast Namespace documentation](https://github.com/Podcastindex-org/podcast-namespace/blob/main/categories.json)

        '
      schema:
        type: string
      examples:
        single_name:
          value: News
          description: Single Category Name
        single_id:
          value: 65
          description: Single Category ID
        multiple_name:
          value: News,Religion
          description: Multiple Category Names
        multiple_id_:
          value: 55,65
          description: Multiple Category IDs
        multiple_mixed:
          value: News,65
          description: Multiple Categories Mixed Format
    enclosure:
      name: enclosure
      in: query
      description: 'The URL for the episode enclosure to get the information for.

        '
      required: false
      schema:
        type: string
      example: https://op3.dev/e/mp3s.nashownotes.com/NA-1551-2023-04-30-Final.mp3
  responses:
    episodes_random:
      description: Success
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                $ref: '#/components/schemas/status'
              episodes:
                $ref: '#/components/schemas/episodes_random_array'
              count:
                $ref: '#/components/schemas/count'
              max:
                $ref: '#/components/schemas/max'
              description:
                $ref: '#/components/schemas/description_response'
    '400':
      description: Invalid request
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                $ref: '#/components/schemas/status'
              description:
                $ref: '#/components/schemas/description_response'
          example:
            status: 'false'
            description: Invalid parameters
    episodes_byfeedid:
      description: Success
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                $ref: '#/components/schemas/status'
              liveItems:
                $ref: '#/components/schemas/liveItems_podcast'
              items:
                $ref: '#/components/schemas/items_podcast'
              count:
                $ref: '#/components/schemas/count'
              query:
                oneOf:
                - $ref: '#/components/schemas/query_podcast_id_single'
                - $ref: '#/components/schemas/query_podcast_id_multiple'
              description:
                $ref: '#/components/schemas/description_response'
    episodes_byguid:
      description: Success
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                $ref: '#/components/schemas/status'
              id:
                $ref: '#/components/schemas/feedid_query'
              url:
                $ref: '#/components/schemas/feedurl_query'
              podcastGuid:
                $ref: '#/components/schemas/podcastguid'
              guid:
                $ref: '#/components/schemas/guid_query'
              episode:
                $ref: '#/components/schemas/episode_object'
              description:
                $ref: '#/components/schemas/description_response'
    episodes_byfeedurl:
      description: Success
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                $ref: '#/components/schemas/status'
              items:
                $ref: '#/components/schemas/items_podcast'
              count:
                $ref: '#/components/schemas/count'
              query:
                $ref: '#/components/schemas/query_url'
              description:
                $ref: '#/components/schemas/description_response'
    episodes_byitunesid:
      description: Success
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                $ref: '#/components/schemas/status'
              items:
                $ref: '#/components/schemas/items_itunesId'
              count:
                $ref: '#/components/schemas/count'
              query:
                $ref: '#/components/schemas/id_query'
              description:
                $ref: '#/components/schemas/description_response'
    episodes_live:
      description: Success
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                $ref: '#/components/schemas/status'
              items:
                $ref: '#/components/schemas/items_live'
              count:
                $ref: '#/components/schemas/count'
              max:
                $ref: '#/components/schemas/max'
              description:
                $ref: '#/components/schemas/description_response'
    episodes_byid:
      description: Success
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                $ref: '#/components/schemas/status'
              id:
                $ref: '#/components/schemas/id_episode'
              episode:
                $ref: '#/components/schemas/episode_object'
              description:
                $ref: '#/components/schemas/description_response'
    '401':
      description: Not authenticated
      content:
        application/json:
          schema:
            type: string
          example: Authorization header value either not set or blank.
  schemas:
    person:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/id_person'
        name:
          $ref: '#/components/schemas/name_person'
        role:
          $ref: '#/components/schemas/role'
        group:
          $ref: '#/components/schemas/group'
        href:
          $ref: '#/components/schemas/href'
        img:
          $ref: '#/components/schemas/img'
    enclosureLength:
      description: 'The length of the item specified by the `enclosureUrl` in bytes

        '
      type: integer
      format: bytes
      example: 26385472
    id_person:
      description: 'The internal PodcastIndex.org person ID.

        '
      type: integer
      example: 411960
    max:
      description: 'Value of `max` parameter passed to request.

        '
      type: integer
      nullable: true
      example: 2
    type_v4v:
      description: 'Payment type

        '
      type: string
      enum:
      - lightning
      - hive
      - webmonetization
      example: lightning
    address_destination:
      description: 'Address of node to receive payment

        '
      type: string
      example: 03ae9f91a0cb8ff43840e3c322c4c61f019d8c1c3cea15a25cfc425ac605e61a4a
    items_itunesId:
      description: 'List of episodes matching request

        '
      type: array
      items:
        $ref: '#/components/schemas/item_itunesId'
    protocol_socialInteract:
      description: "The protocol in use for interacting with the comment root post. \n\n\nFor the most up-to-date list of options, see https://github.com/Podcastindex-org/podcast-namespace/blob/main/socialprotocols.txt\n"
      type: string
      enum:
      - disabled
      - activitypub
      - twitter
      - lightning
      example: activitypub
    persons:
      description: 'List of people with an interest in this episode. May not be reported.



        See the [podcast namespace spec](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#person) for more information.

        '
      type: array
      nullable: true
      items:
        $ref: '#/components/schemas/person'
    socialInteract_item:
      type: object
      properties:
        url:
          $ref: '#/components/schemas/url_socialInteract'
        protocol:
          $ref: '#/components/schemas/protocol_socialInteract'
        accountId:
          $ref: '#/components/schemas/accountId_socialInteract'
        accountUrl:
          $ref: '#/components/schemas/accountUrl_socialInteract'
        priority:
          $ref: '#/components/schemas/priority_socialInteract'
    title_feed:
      description: 'Name of the feed

        '
      type: string
      example: Batman University
    accountUrl_socialInteract:
      description: 'The public url (on the commenting platform) of the account that created this root post.

        '
      type: string
      format: URL
      example: https://podcastindex.social/users/dave
    guid:
      description: 'The unique identifier for the episode

        '
      type: string
      example: incomparable/batman/19
    model_v4v:
      description: 'Description of the method for providing "Value for Value" payments

        '
      type: object
      properties:
        type:
          $ref: '#/components/schemas/type_v4v'
        method:
          $ref: '#/components/schemas/method_v4v'
        suggested:
          $ref: '#/components/schemas/suggested_v4v'
    soundbites:
      description: 'Soundbites for episode. May not be reported.

        '
      type: array
      nullable: true
      items:
        $ref: '#/components/schemas/soundbite'
    liveitem_podcast:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/id_episode'
        title:
          $ref: '#/components/schemas/title_feed'
        link:
          $ref: '#/components/schemas/link_feed'
        description:
          $ref: '#/components/schemas/description_episode'
        guid:
          $ref: '#/components/schemas/guid'
        datePublished:
          $ref: '#/components/schemas/datePublished'
        datePublishedPretty:
          $ref: '#/components/schemas/datePublishedPretty'
        dateCrawled:
          $ref: '#/components/schemas/dateCrawled'
        enclosureUrl:
          $ref: '#/components/schemas/enclosureUrl'
        enclosureType:
          $ref: '#/components/schemas/enclosureType'
        enclosureLength:
          $ref: '#/components/schemas/enclosureLength'
        startTime:
          $ref: '#/components/schemas/startTime_live'
        endTime:
          $ref: '#/components/schemas/endTime_live'
        status:
          $ref: '#/components/schemas/status_live'
        contentLink:
          $ref: '#/components/schemas/contentLink'
        duration:
          $ref: '#/components/schemas/duration'
        explicit:
          $ref: '#/components/schemas/explicit_episode'
        episode:
          $ref: '#/components/schemas/episode_number'
        episodeType:
          $ref: '#/components/schemas/episodeType'
        season:
          $ref: '#/components/schemas/season'
        image:
          $ref: '#/components/schemas/image_episode'
        feedItunesId:
          $ref: '#/components/schemas/itunesId_feed'
        feedImage:
          $ref: '#/components/schemas/image_feed'
        feedId:
          $ref: '#/components/schemas/id_feed'
        feedLanguage:
          $ref: '#/components/schemas/language'
        feedDead:
          $ref: '#/components/schemas/dead'
        feedDuplicateOf:
          $ref: '#/components/schemas/duplicateOf'
        chaptersUrl:
          $ref: '#/components/schemas/chaptersUrl'
        transcriptUrl:
          $ref: '#/components/schemas/transcriptUrl'
    episode_object:
      description: 'Episode data

        '
      type: object
      properties:
        id:
          $ref: '#/components/schemas/id_episode'
        title:
          $ref: '#/components/schemas/title_feed'
        link:
          $ref: '#/components/schemas/link_feed'
        description:
          $ref: '#/components/schemas/description_episode'
        guid:
          $ref: '#/components/schem

# --- truncated at 32 KB (59 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/podcastindex/refs/heads/main/openapi/podcastindex-episodes-api-openapi.yml