Spreaker Shows API

Podcast shows, favorites, and reference data.

OpenAPI Specification

spreaker-shows-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Spreaker Advertising Shows API
  description: The Spreaker API (v2) is a REST API for the Spreaker podcast hosting, distribution, and monetization platform, owned by iHeartMedia. It lets developers manage users and their social graph, podcast shows, episodes (including uploads, playback, messages, chapters, and ad cuepoints), analytics and statistics, search and discovery, and the advertising campaign stack. All access is over HTTPS at api.spreaker.com. GET requests are public unless otherwise noted; all PUT, POST, and DELETE requests must be authenticated with an OAuth2 Bearer token. Responses are paginated with a default of 50 items per page (up to 100 via the limit parameter) and a next_url property for the following page.
  version: '2.0'
  contact:
    name: Spreaker for Developers
    url: https://developers.spreaker.com
  license:
    name: Proprietary
    url: https://www.spreaker.com/terms-of-service
servers:
- url: https://api.spreaker.com/v2
  description: Spreaker API v2
security:
- oauth2: []
tags:
- name: Shows
  description: Podcast shows, favorites, and reference data.
paths:
  /shows:
    post:
      operationId: createShow
      tags:
      - Shows
      summary: Create a show
      description: Creates a new podcast show for the authenticated user.
      responses:
        '200':
          description: The created show.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /shows/{show_id}:
    parameters:
    - $ref: '#/components/parameters/ShowId'
    get:
      operationId: getShow
      tags:
      - Shows
      summary: Retrieve a show
      responses:
        '200':
          description: A show.
    post:
      operationId: updateShow
      tags:
      - Shows
      summary: Update a show
      responses:
        '200':
          description: The updated show.
        '401':
          $ref: '#/components/responses/Unauthorized'
    delete:
      operationId: deleteShow
      tags:
      - Shows
      summary: Delete a show
      responses:
        '200':
          description: The show was deleted.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /users/{user_id}/shows:
    parameters:
    - $ref: '#/components/parameters/UserId'
    get:
      operationId: listUserShows
      tags:
      - Shows
      summary: Retrieve a user's shows
      responses:
        '200':
          description: A paginated list of the user's shows.
  /users/{user_id}/favorites:
    parameters:
    - $ref: '#/components/parameters/UserId'
    get:
      operationId: listFavorites
      tags:
      - Shows
      summary: Retrieve a user's favorite shows
      responses:
        '200':
          description: A paginated list of favorite shows.
  /users/{user_id}/favorites/{show_id}:
    parameters:
    - $ref: '#/components/parameters/UserId'
    - $ref: '#/components/parameters/ShowId'
    put:
      operationId: addFavorite
      tags:
      - Shows
      summary: Add a show to favorites
      responses:
        '200':
          description: The show was favorited.
        '401':
          $ref: '#/components/responses/Unauthorized'
    delete:
      operationId: removeFavorite
      tags:
      - Shows
      summary: Remove a show from favorites
      responses:
        '200':
          description: The show was unfavorited.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /show-categories:
    get:
      operationId: listShowCategories
      tags:
      - Shows
      summary: List show categories
      responses:
        '200':
          description: The list of show categories.
  /show-languages:
    get:
      operationId: listShowLanguages
      tags:
      - Shows
      summary: List show languages
      responses:
        '200':
          description: The list of supported languages.
components:
  parameters:
    UserId:
      name: user_id
      in: path
      required: true
      schema:
        type: integer
      description: The user ID.
    ShowId:
      name: show_id
      in: path
      required: true
      schema:
        type: integer
      description: The show ID.
  responses:
    Unauthorized:
      description: The request was not authenticated with a valid OAuth2 token.
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth2. Authorize at https://www.spreaker.com/oauth2/authorize and exchange or refresh tokens at https://api.spreaker.com/oauth2/token. Access tokens are sent as a Bearer token in the Authorization header.
      flows:
        authorizationCode:
          authorizationUrl: https://www.spreaker.com/oauth2/authorize
          tokenUrl: https://api.spreaker.com/oauth2/token
          refreshUrl: https://api.spreaker.com/oauth2/token
          scopes:
            basic: Basic access to the Spreaker API on behalf of the user.