Simplecast Podcasts API

Podcasts (shows) and their related metadata.

OpenAPI Specification

simplecast-podcasts-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Simplecast Analytics Podcasts API
  description: 'The Simplecast API lets you manage and read your podcasting data on the Simplecast platform - podcasts (shows), episodes, audience analytics, and distribution channels. The API is accessed at https://api.simplecast.com and is self-describing: each response returns the actions available to the authenticated user. Authentication uses a bearer token obtained from the Private Apps page in the Simplecast dashboard (authorization: Bearer {token}). List endpoints support limit and offset query parameters for pagination. The API is predominantly read-only (HTTP GET); a small number of write operations exist, such as uploading episode audio. Simplecast is owned by SiriusXM Media. Endpoint paths in this document are derived from Simplecast''s official public Postman collection and API documentation; request and response schemas are lightly modeled where the docs do not publish a formal schema.'
  version: '1.0'
  contact:
    name: Simplecast
    url: https://www.simplecast.com
servers:
- url: https://api.simplecast.com
  description: Simplecast production API
security:
- bearerAuth: []
tags:
- name: Podcasts
  description: Podcasts (shows) and their related metadata.
paths:
  /podcasts:
    get:
      operationId: listPodcasts
      tags:
      - Podcasts
      summary: List podcasts
      description: Lists the podcasts (shows) accessible to the authenticated account.
      parameters:
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Offset'
      responses:
        '200':
          description: A paged collection of podcasts.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Collection'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /podcasts/{podcast_id}:
    get:
      operationId: getPodcast
      tags:
      - Podcasts
      summary: Retrieve a podcast
      description: Retrieves a single podcast by its ID.
      parameters:
      - $ref: '#/components/parameters/PodcastId'
      responses:
        '200':
          description: The requested podcast.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Podcast'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /podcasts/{podcast_id}/episodes:
    get:
      operationId: listPodcastEpisodes
      tags:
      - Podcasts
      summary: List episodes for a podcast
      description: Lists the episodes belonging to the given podcast.
      parameters:
      - $ref: '#/components/parameters/PodcastId'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Offset'
      responses:
        '200':
          description: A paged collection of episodes.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Collection'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /podcasts/{podcast_id}/authors:
    get:
      operationId: listPodcastAuthors
      tags:
      - Podcasts
      summary: List authors for a podcast
      parameters:
      - $ref: '#/components/parameters/PodcastId'
      responses:
        '200':
          description: A collection of authors.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Collection'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /podcasts/{podcast_id}/categories:
    get:
      operationId: listPodcastCategories
      tags:
      - Podcasts
      summary: List categories for a podcast
      parameters:
      - $ref: '#/components/parameters/PodcastId'
      responses:
        '200':
          description: A collection of categories.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Collection'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /podcasts/{podcast_id}/categories/{category_id}:
    get:
      operationId: getPodcastCategory
      tags:
      - Podcasts
      summary: Retrieve a podcast category
      parameters:
      - $ref: '#/components/parameters/PodcastId'
      - $ref: '#/components/parameters/CategoryId'
      responses:
        '200':
          description: The requested category.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Resource'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /podcasts/{podcast_id}/categories/{category_id}/subcategories:
    get:
      operationId: listPodcastSubcategories
      tags:
      - Podcasts
      summary: List subcategories for a podcast category
      parameters:
      - $ref: '#/components/parameters/PodcastId'
      - $ref: '#/components/parameters/CategoryId'
      responses:
        '200':
          description: A collection of subcategories.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Collection'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /podcasts/{podcast_id}/categories/{category_id}/subcategories/{subcategory_id}:
    get:
      operationId: getPodcastSubcategory
      tags:
      - Podcasts
      summary: Retrieve a podcast subcategory
      parameters:
      - $ref: '#/components/parameters/PodcastId'
      - $ref: '#/components/parameters/CategoryId'
      - name: subcategory_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The requested subcategory.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Resource'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /podcasts/{podcast_id}/keywords:
    get:
      operationId: listPodcastKeywords
      tags:
      - Podcasts
      summary: List keywords for a podcast
      parameters:
      - $ref: '#/components/parameters/PodcastId'
      responses:
        '200':
          description: A collection of keywords.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Collection'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /podcasts/{podcast_id}/keywords/{keyword_id}:
    get:
      operationId: getPodcastKeyword
      tags:
      - Podcasts
      summary: Retrieve a podcast keyword
      parameters:
      - $ref: '#/components/parameters/PodcastId'
      - $ref: '#/components/parameters/KeywordId'
      responses:
        '200':
          description: The requested keyword.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Resource'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /podcasts/{podcast_id}/seasons:
    get:
      operationId: listPodcastSeasons
      tags:
      - Podcasts
      summary: List seasons for a podcast
      parameters:
      - $ref: '#/components/parameters/PodcastId'
      responses:
        '200':
          description: A collection of seasons.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Collection'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /podcasts/{podcast_id}/rss:
    get:
      operationId: getPodcastRss
      tags:
      - Podcasts
      summary: Retrieve a podcast RSS feed
      description: Returns the generated RSS feed for the podcast.
      parameters:
      - $ref: '#/components/parameters/PodcastId'
      responses:
        '200':
          description: The podcast RSS feed.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /seasons/{season_id}:
    get:
      operationId: getSeason
      tags:
      - Podcasts
      summary: Retrieve a season
      parameters:
      - $ref: '#/components/parameters/SeasonId'
      responses:
        '200':
          description: The requested season.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Resource'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /seasons/{season_id}/episodes:
    get:
      operationId: listSeasonEpisodes
      tags:
      - Podcasts
      summary: List episodes in a season
      parameters:
      - $ref: '#/components/parameters/SeasonId'
      responses:
        '200':
          description: A collection of episodes.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Collection'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    Podcast:
      type: object
      description: A podcast (show). Fields are modeled from documented responses.
      properties:
        id:
          type: string
        title:
          type: string
        description:
          type: string
        author:
          type: string
        href:
          type: string
    Collection:
      type: object
      description: A paged collection of resources. Fields are modeled; the API is self-describing.
      properties:
        collection:
          type: array
          items:
            $ref: '#/components/schemas/Resource'
        pages:
          type: object
          properties:
            total:
              type: integer
            limit:
              type: integer
            offset:
              type: integer
    Error:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
    Resource:
      type: object
      description: A generic Simplecast resource. The API is self-describing; exact fields vary by type.
      properties:
        id:
          type: string
        href:
          type: string
  parameters:
    Offset:
      name: offset
      in: query
      required: false
      description: Index at which to start the page of results.
      schema:
        type: integer
    SeasonId:
      name: season_id
      in: path
      required: true
      schema:
        type: string
    KeywordId:
      name: keyword_id
      in: path
      required: true
      schema:
        type: string
    CategoryId:
      name: category_id
      in: path
      required: true
      schema:
        type: string
    Limit:
      name: limit
      in: query
      required: false
      description: Maximum number of objects to return.
      schema:
        type: integer
    PodcastId:
      name: podcast_id
      in: path
      required: true
      schema:
        type: string
  responses:
    Unauthorized:
      description: Missing or invalid bearer token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Bearer token generated from the Private Apps page in the Simplecast dashboard. Sent as "authorization: Bearer {token}".'