Blubrry API Episode API

Read, create, and update episodes for shows hosted on Blubrry.

Operations 7

GET /episode/{keyword}/ List episodes #
GET /episode/{keyword}/{episode_id}/ Get an episode #
POST /episode/{keyword}/add Create an episode #
POST /episode/{keyword}/update/{episode_id}/ Update an episode #
PUT /episode/{keyword}/update-image/{episode_id}/ Update episode image #
DELETE /episode/{keyword}/delete-image/{episode_id}/ Delete episode image #
GET /episode/{keyword}/?limit={limit}&offset={offset} Get episode list #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/blubrry-api-restful-api-for-podcast-publishing-statistics-episode-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

blubrry-api-restful-api-for-podcast-publishing-statistics-episode-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Blubrry Api Restful Api For Podcast Publishing Statistics…
  version: '1.0'
  description: 'Operations tagged Episode across 2 of this provider''s published API definitions: blubrry-api-restful-api-for-podcast-publishing-statistics-openapi.yml, blubrry-api-restful-api-for-podcast-publishing-statistics-podcaster-openapi.yaml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.blubrry.com/2
  description: Production
tags:
- name: Episode
  description: Read, create, and update episodes for shows hosted on Blubrry.
paths:
  /episode/{keyword}/:
    get:
      tags:
      - Episode
      summary: List episodes
      description: Returns a list of most recent episodes for a show identified by its program keyword.
      operationId: listEpisodes
      parameters:
      - $ref: '#/components/parameters/Keyword'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Offset'
      responses:
        '200':
          description: Episode list returned.
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
      - OAuth2: []
    servers:
    - url: https://api.blubrry.com/2
      description: Production
  /episode/{keyword}/{episode_id}/:
    get:
      tags:
      - Episode
      summary: Get an episode
      operationId: getEpisode
      parameters:
      - $ref: '#/components/parameters/Keyword'
      - $ref: '#/components/parameters/EpisodeId'
      responses:
        '200':
          description: Episode returned.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: Episode not found.
      security:
      - OAuth2: []
    servers:
    - url: https://api.blubrry.com/2
      description: Production
  /episode/{keyword}/add:
    post:
      tags:
      - Episode
      summary: Create an episode
      description: Publish, schedule, or save a new episode as draft for a show.
      operationId: createEpisode
      parameters:
      - $ref: '#/components/parameters/Keyword'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/EpisodeInput'
      responses:
        '201':
          description: Episode created.
        '400':
          description: Validation error.
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
      - OAuth2: []
    servers:
    - url: https://api.blubrry.com/2
      description: Production
  /episode/{keyword}/update/{episode_id}/:
    post:
      tags:
      - Episode
      summary: Update an episode
      operationId: updateEpisode
      parameters:
      - $ref: '#/components/parameters/Keyword'
      - $ref: '#/components/parameters/EpisodeId'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/EpisodeInput'
      responses:
        '200':
          description: Episode updated.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: Episode not found.
      security:
      - OAuth2: []
    servers:
    - url: https://api.blubrry.com/2
      description: Production
  /episode/{keyword}/update-image/{episode_id}/:
    put:
      tags:
      - Episode
      summary: Update episode image
      operationId: updateEpisodeImage
      parameters:
      - $ref: '#/components/parameters/Keyword'
      - $ref: '#/components/parameters/EpisodeId'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                image:
                  type: string
                  format: binary
      responses:
        '200':
          description: Image updated.
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
      - OAuth2: []
    servers:
    - url: https://api.blubrry.com/2
      description: Production
  /episode/{keyword}/delete-image/{episode_id}/:
    delete:
      tags:
      - Episode
      summary: Delete episode image
      operationId: deleteEpisodeImage
      parameters:
      - $ref: '#/components/parameters/Keyword'
      - $ref: '#/components/parameters/EpisodeId'
      responses:
        '204':
          description: Image deleted.
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
      - OAuth2: []
    servers:
    - url: https://api.blubrry.com/2
      description: Production
  /episode/{keyword}/?limit={limit}&offset={offset}:
    get:
      tags:
      - Episode
      summary: Get episode list
      description: 'Returns a list of most recent episodes


        >URL: https://api.blubrry.com/2/episode/keyword/


        >Format: __JSON__


        >Method: __GET__'
      operationId: getEpisodes
      parameters:
      - $ref: '#/components/parameters/ProgramKeyword'
      - $ref: '#/components/parameters/Limit_2'
      - $ref: '#/components/parameters/Offset_2'
      x-code-samples:
      - lang: PHP
        label: PHP
        source:
          $ref: ../examples/php/episode/list
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/EpisodeListObjectArray'
                  record_count:
                    type: integer
                    example: 100
                    description: The number of episodes returned in the query
                  limit:
                    type: integer
                    example: 10
                    description: The number of results that are limited to
                  offset:
                    type: integer
                    example: 0
                    description: The number of episodes to skip within a list of episodes
        '400':
          description: 'Error: episode_show_invalid'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EpisodeKeywordError'
    servers:
    - url: https://api.blubrry.com/2
components:
  parameters:
    EpisodeId:
      name: episode_id
      in: path
      required: true
      schema:
        type: integer
    Keyword:
      name: keyword
      in: path
      required: true
      description: Program keyword that identifies the show.
      schema:
        type: string
    Offset:
      name: offset
      in: query
      schema:
        type: integer
        default: 0
    Limit:
      name: limit
      in: query
      schema:
        type: integer
        default: 10
    EpisodeId_2:
      name: episode_id
      in: path
      description: Required - Episode ID
      required: true
      schema:
        type: integer
    ProgramKeyword:
      name: keyword
      in: path
      description: Required - Program keyword
      required: true
      schema:
        type: string
    Offset_2:
      name: offset
      in: query
      description: Optional - Number of results to skip
      required: false
      schema:
        type: integer
        minimum: 0
        default: 0
    Limit_2:
      name: limit
      in: query
      description: Optional - Number of results returned
      required: false
      schema:
        type: integer
        minimum: 1
        maximum: 50
        default: 10
  schemas:
    EpisodeInput:
      type: object
      description: Episode fields. Send the subset you want to set or update.
      properties:
        title:
          type: string
        subtitle:
          type: string
        summary:
          type: string
        link:
          type: string
          format: uri
        author:
          type: string
        explicit:
          type: string
          enum:
          - clean
          - true
          - 'no'
        media_url:
          type: string
          format: uri
        duration:
          type: string
          description: HH:MM:SS
        publish_date:
          type: string
          format: date-time
        status:
          type: string
          enum:
          - publish
          - draft
          - future
    EpisodeListObject:
      type: object
      properties:
        id:
          type: integer
          example: 111853976
          description: ID corresponding to a podcast episode
        title:
          type: string
          example: Hired Help For Your Podcast – PCI 357
          description: Title of episode
        program_id:
          type: string
          example: 809313
          description: ID corresponding to a podcast listing
        program_title:
          type: string
          example: Podcast Insider
          description: The name of the podcast show
        program_keyword:
          type: string
          example: podcastinsider
          description: A unique string ID for a podcast
        filename:
          type: string
          example: PCI-2023-8-3.mp3
          description: Filename of source media
        duration:
          type: integer
          example: 1188
          description: Length of episode in seconds
        description:
          type: string
          example: '<strong>Are you considering hired help for your podcast?</strong> <p><img class="alignleft size-full wp-image-87656" src="https://blubrry.com/wp-content/uploads/2023/08/Consultant_150x100.jpg" alt="Two women sitting at conference table facing each other" width="150" height="100" />In today’s episode we’ll be discussing eight factors to consider when hiring a paid podcast consultant for your podcast. Often times the podcast host is a jack of all trades for their show, which while admirable can be improved with hired help. If you’re looking to expand your podcast team, look no further to decide if that may be a good idea. First things first, what exactly do we mean when we say podcast consultant – read below for our explanation.</p> <p><strong>Podcast Consultant:</strong> A podcast pro that provides guidance and expertise related to podcasting. Encompassing but not limited to: technical, developmental, and creative know-how; can be across the board or more dedicated to a specific aspect or task such as equipment and setup or audience growth tactics.</p> <strong>Today’s Hosts: Mike Dell and MacKenzie Bennett</strong> <strong>When hiring a podcast consultant, you should consider the following factors:</strong> <p><strong>Budget:</strong> Be upfront about what you are wanting to spend and make sure you can sustain that budget for the long run.</p> <p><strong>Experience:</strong> How much experience does the consultant have with podcasting? Have they worked on successful podcasts before? Their past experience can provide you with a sense of their skills and capabilities.</p> <p><strong>Knowledge of the Industry:</strong> The podcasting industry is constantly changing. A good consultant should be up-to-date with current trends, technologies, and strategies in podcasting. They should understand the podcasting market and the specific niche that your podcast falls into.</p> <p><strong>Technical Skills:</strong> Podcasting involves both content creation and technical setup. Your consultant should have knowledge about podcast recording, editing, equipment, software, and hosting platforms. They should also be familiar with podcast distribution and analytics.</p> <p><strong>Marketing and Promotion:</strong> It’s not enough to just create a podcast, you need to get it heard. Your consultant should know how to effectively promote a podcast, including social media strategies, SEO for podcasts, and partnerships or sponsorships.</p> <p><strong>Good Communication Skills:</strong> The consultant should be able to communicate clearly and effectively. They should be able to understand your vision for the podcast and help you achieve it. Regular updates and feedback are essential for a successful working relationship.</p> <p><strong>References and Reviews:</strong> Check the consultant’s references and reviews from previous clients. This can give you a sense of their reliability and effectiveness.</p> <p><strong>A Passion for Podcasting:</strong> Finally, a good podcast consultant should be passionate about podcasting. This passion will drive them to stay updated on industry changes, put in the extra effort to ensure the success of your podcast, and provide the energy needed to keep your project moving forward.</p> <p>Just a tip…Make sure YOU keep all admin logins/passwords for your site, your hosting plan and make sure YOU are paying the hosting bills directly.</p> <p class="p4">The best place for support with any Blubrry product or service is our <a href="https://blubrry.com/support/">ticket system</a>. Tickets give the whole team access vs. direct emails or calls.</p> <p class="p5">Fill out our listener survey at <a href="https://surveys.blubrry.com/podcastinsider">surveys.blubrry.com/podcastinsider.</a></p> <ul class="ul1"><li class="li6">Hosting customers can schedule a one-on-one call with Todd or a tech checkup with Mike. <ul class="ul2"><li class="li7">todd@blubrry.com and mike@blubrry.com</li> </ul></li> </ul>

            '
          description: Podcast description with HTML
        summary:
          type: string
          example: "Are you considering hired help for your podcast? In today's episode we'll be discussing eight factors to consider when hiring a paid podcast consultant for your podcast. Often times the podcast host is a jack of all trades for their show, which while admirable can be improved with hired help. If you're looking to expand your podcast team, look no further to decide if that may be a good idea. First things first, what exactly do we mean when we say podcast consultant - read below for our explanation. Podcast Consultant: A podcast pro that provides guidance and expertise related to podcasting. Encompassing but not limited to: technical, developmental, and creative know-how; can be across the board or more dedicated to a specific aspect or task such as equipment and setup or audience growth tactics. Today's Hosts: Mike Dell and MacKenzie Bennett When hiring a podcast consultant, you should consider the following factors: Budget: Be upfront about what you are wanting to spend and make sure you can sustain that budget for the long run. Experience: How much experience does the consultant have with podcasting? Have they worked on successful podcasts before? Their past experience can provide you with a sense of their skills and capabilities. Knowledge of the Industry: The podcasting industry is constantly changing. A good consultant should be up-to-date with current trends, technologies, and strategies in podcasting. They should understand the podcasting market and the specific niche that your podcast falls into. Technical Skills: Podcasting involves both content creation and technical setup. Your consultant should have knowledge about podcast recording, editing, equipment, software, and hosting platforms. They should also be familiar with podcast distribution and analytics. Marketing and Promotion: It's not enough to just create a podcast, you need to get it heard. Your consultant should know how to effectively promote a podcast, including social media strategies, SEO for podcasts, and partnerships or sponsorships. Good Communication Skills: The consultant should be able to communicate clearly and effectively. They should be able to understand your vision for the podcast and help you achieve it. Regular updates and feedback are essential for a successful working relationship. References and Reviews: Check the consultant's references and reviews from previous clients. This can give you a sense of their reliability and effectiveness. A Passion for Podcasting: Finally, a good podcast consultant should be passionate about podcasting. This passion will drive them to stay updated on industry changes, put in the extra effort to ensure the success of your podcast, and provide the energy needed to keep your project moving forward. Just a tip...Make sure YOU keep all admin logins/passwords for your site, your hosting plan and make sure YOU are paying the hosting bills directly. The best place for support with any Blubrry product or service is our  ticket system. Tickets give the whole team access vs. direct emails or calls. Fill out our listener survey at surveys.blubrry.com/podcastinsider.\n \tHosting customers can schedule a one-on-one call with Todd or a tech checkup with Mike.\n \ttodd@blubrry.com and mike@blubrry.com\n"
          description: Podcast summary as text
        post_date:
          type: string
          example: 21:54:10 2023-08-03
          description: Post date in H:i:s Y-m-d
        media_url:
          type: string
          example: https://media.blubrry.com/podcastinsider/d/content.blubrry.com/podcastinsider/PCI-2023-8-3.mp3
          description: URL for media
        player_url:
          type: string
          example: https://player.blubrry.com/?podcast_id=111853976
          description: URL for player
        listing_url:
          type: string
          example: https://blubrry.com/podcastinsider/111853976/hired-help-for-your-podcast-pci-357/
          description: URL for blubrry directory
        itunes_title:
          type: string
          example: Podcast Insider
          description: The name of the podcast show
        itunes_episode:
          type: string
          example: Hired Help For Your Podcast – PCI 357
          description: Title of episode
        itunes_season:
          type: integer
          example: 2
          description: Itunes season number
        podcast_link:
          type: string
          example: https://blubrry.com/podcastinsider/111853976/hired-help-for-your-podcast-pci-357/
          description: Link to episode webpage
        episode_type:
          type: string
          example: trailer, bonus, or full
          description: Episode type
        itunes_image:
          type: string
          example: https://geeknewscentral.com/wp-content/uploads/2025/01/ai_im_2-5.jpg
          description: Episode image
        location:
          type: string
          example: city;Columbus;geo;geo:39.7837304,-100.445882;osm;R148838;
          description: Episode location
        itunes_episode_number:
          type: integer
          example: 2
          description: Itunes episode number
        itunes_order:
          type: integer
          example: 2
          description: Order number for iTunes
        credits:
          type: array
          example: '[{ ''person'' => ''Joe Podcast'', ''role'' => ''host'', ''img'' => ''https://image.com/joepodcast.png'', ''link'' => ''https://aboutjoepodcast.com/'' }, ...]'
          description: Episode credits
    DeleteEpisodeImageSuccess:
      type: object
      properties:
        status:
          type: string
          example: Success
        success:
          type: bool
          example: true
        msg:
          type: string
          example: Episode image file deleted successfully.
        updated_at:
          type: string
          example: Mon, 03 Feb 2020 19:06:58 +0000
        episode_id:
          type: integer
          example: '88676548'
        listing_url:
          type: string
          example: https://blubrry.com/keyword/88676548/api-update-test-post/
        player_url:
          type: string
          example: https://player.blubrry.com/?podcast_id=88676548
    UpdateEpisodeImageSuccess:
      type: object
      properties:
        status:
          type: string
          example: Success
        success:
          type: bool
          example: true
        msg:
          type: string
          example: Deleted existing episode image. Episode image file uploaded successfully.
        updated_at:
          type: string
          example: Mon, 03 Feb 2020 19:06:58 +0000
        episode_id:
          type: integer
          example: '88676548'
        listing_url:
          type: string
          example: https://blubrry.com/keyword/88676548/api-update-test-post/
        player_url:
          type: string
          example: https://player.blubrry.com/?podcast_id=88676548
        episode_image_url:
          type: string
          example: https://assets.blubrry.com/coverart/episode/747632/orig/88676548-1747687088.jpg
        episode_image_url_resized:
          type: string
          example: https://assets.blubrry.com/coverart/episode/747632/160/88676548-1747687088.jpg
    EpisodeListObjectArray:
      type: array
      items:
        $ref: '#/components/schemas/EpisodeListObject'
    AddEpisodeSuccess:
      type: object
      properties:
        status:
          type: string
          example: Success
        success:
          type: string
          example: Episode Posted Successfully
        created_at:
          type: string
          example: Mon, 03 Feb 2020 19:06:58 +0000
        created_at_timestamp:
          type: string
          example: '1580756818'
        episode_id:
          type: integer
          example: '22976504'
        listing_url:
          type: string
          example: https://blubrry.com/{keyword}/22976504/title/ (Note that this URL may not be live if the episode is in a draft state)
    AddEpisode:
      type: object
      required:
      - status
      - filename
      - title
      - content
      properties:
        status:
          description: Set to draft (0) or public (1)
          type: integer
          format: tinyint
          enum:
          - 0
          - 1
        filename:
          description: Podcast filename
          type: string
          example: GNC-2017-12-19.mp3
        title:
          description: Title of podcast
          type: string
          example: New Podcast Title!
        content:
          description: Podcast description or limited HTML version of show notes
          type: string
          example: Podcast description or limited HTML version of show notes
        explicit:
          description: Clean (2), Explicit (1), or None (0)
          type: integer
          format: tinyint
          enum:
          - 0
          - 1
          - 2
        itunes_title:
          description: Episode title for iTunes
          type: string
          example: Episode title for iTunes
        itunes_episode:
          description: (Deprecated) Episode title for iTunes
          type: string
          example: Episode Title for iTunes
        itunes_season:
          description: Season number for iTunes
          type: integer
          example: Season number for iTunes
        itunes_order:
          description: Order number for iTunes
          type: integer
          example: Order number for iTunes
        itunes_episode_number:
          description: Episode number for iTunes
          type: integer
          example: Episode number for iTunes
        release_date:
          description: Alternate post date
          type: integer
          example: 1694647124
        episode_type:
          description: Episode type
          type: string
          example: trailer, bonus, or full
        itunes_image:
          description: Episode image
          type: string
          example: Episode image
        podcast_link:
          description: Episode webpage
          type: string
          example: Episode webpage
        location:
          description: Episode location
          type: string
          example: city;Columbus;geo;geo:39.7837304,-100.445882;osm;R148838;
        credits:
          description: Episode credits
          type: array
          example: '[{ ''person'' => ''Joe Podcast'', ''role'' => ''host'', ''img'' => ''https://image.com/joepodcast.png'', ''link'' => ''https://aboutjoepodcast.com/'' }, ...]'
        podcast_subtitle:
          description: Podcast subtitle (Limited to 250 characters)
          type: string
          example: My podcast subtitle
    UpdateEpisode:
      type: object
      properties:
        status:
          description: Set to draft (0) or public (1)
          type: integer
          format: tinyint
          enum:
          - 0
          - 1
        filename:
          description: Podcast filename
          type: string
          example: http://media.blubrry.com/geeknewscentral/content.blubrry.com/geeknewscentral/GNC-2017-01-23.mp3
        title:
          description: Title of podcast
          type: string
          example: Title of podcast
        content:
          description: Podcast description or limited HTML version of show notes
          type: string
          example: Podcast description or limited HTML version of show notes
        explicit:
          description: Clean (2), Explicit (1), or None (0)
          type: integer
          format: tinyint
          enum:
          - 0
          - 1
          - 2
        itunes_title:
          description: Episode title for iTunes
          type: string
          example: Episode title for iTunes
        itunes_episode:
          description: (Deprecated) Episode title for iTunes
          type: integer
          example: Episode Title for iTunes
        itunes_season:
          description: Season number for iTunes
          type: integer
          example: Season number for iTunes
        itunes_order:
          description: Order number for iTunes
          type: integer
          example: Order number for iTunes
        itunes_episode_number:
          description: Episode number for iTunes
          type: integer
          example: Episode number for iTunes
        release_date:
          description: Alternate post date
          type: integer
          example: 1694647124
        itunes_image:
          description: Episode image
          type: string
          example: Episode image
        podcast_link:
          description: Episode webpage
          type: string
          example: Episode webpage
        location:
          description: Episode location
          type: string
          example: city;Columbus;geo;geo:39.7837304,-100.445882;osm;R148838;
        podcast_subtitle:
          description: Podcast subtitle (Limited to 250 characters)
          type: string
          example: My podcast subtitle
        credits:
          description: Episode credits
          type: array
          example: '[{ ''person'' => ''Joe Podcast'', ''role'' => ''host'', ''img'' => ''https://image.com/joepodcast.png'', ''link'' => ''https://aboutjoepodcast.com/'' }, ...]'
    UpdateEpisodeSuccess:
      type: object
      properties:
        status:
          type: string
          example: Success
        success:
          type: string
          example: Episode Updated Successfully
        updated_at:
          type: string
          example: Mon, 03 Feb 2020 19:06:58 +0000
        episode_id:
          type: integer
          example: '22976504'
    EpisodeKeywordError:
      properties:
        error:
          type: string
          example: show keyword invalid
        code:
          type: string
          example: episode_show_invalid
  responses:
    Unauthorized:
      description: Missing or invalid access token.
  securitySchemes:
    OAuth2:
      type: oauth2
      description: 'OAuth 2.0 Bearer token. Contact Blubrry to receive a client_id and

        secret. Tokens expire after one hour; refresh tokens do not expire.

        '
      flows:
        authorizationCode:
          authorizationUrl: https://api.blubrry.com/oauth2/authorize
          tokenUrl: https://api.blubrry.com/oauth2/token
          refreshUrl: https://api.blubrry.com/oauth2/token
          scopes: {}
x-refined-from:
- blubrry-api-restful-api-for-podcast-publishing-statistics-openapi.yml
- blubrry-api-restful-api-for-podcast-publishing-statistics-podcaster-openapi.yaml