Simplecast Podcasts API

List and retrieve podcasts (shows) in the authenticated account and read their related metadata - authors, categories and subcategories, keywords, seasons, distribution channels, and the generated RSS feed. Read-only over the podcasts and their nested collections.

OpenAPI Specification

simplecast-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Simplecast 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.
  - name: Episodes
    description: Episodes and their authors, keywords, markers, and audio.
  - name: Analytics
    description: Audience analytics for podcasts and episodes.
  - name: Distribution
    description: Distribution channels a podcast is syndicated to.
  - name: Metadata
    description: Account, categories, keywords, authors, and helper resources.
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'
  /podcasts/{podcast_id}/distribution_channels:
    get:
      operationId: listPodcastDistributionChannels
      tags: [Distribution]
      summary: List distribution channels for a podcast
      description: Lists the distribution channels the podcast is syndicated to.
      parameters:
        - $ref: '#/components/parameters/PodcastId'
      responses:
        '200':
          description: A collection of distribution channels.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Collection'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /podcasts/{podcast_id}/distribution_channels/{channel_id}:
    get:
      operationId: getPodcastDistributionChannel
      tags: [Distribution]
      summary: Retrieve a distribution channel for a podcast
      parameters:
        - $ref: '#/components/parameters/PodcastId'
        - $ref: '#/components/parameters/ChannelId'
      responses:
        '200':
          description: The requested distribution channel.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Resource'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /distribution_channels:
    get:
      operationId: listDistributionChannels
      tags: [Distribution]
      summary: List distribution channels
      responses:
        '200':
          description: A collection of distribution channels.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Collection'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /distribution_channels/{channel_id}:
    get:
      operationId: getDistributionChannel
      tags: [Distribution]
      summary: Retrieve a distribution channel
      parameters:
        - $ref: '#/components/parameters/ChannelId'
      responses:
        '200':
          description: The requested distribution channel.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Resource'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /episodes/{episode_id}:
    get:
      operationId: getEpisode
      tags: [Episodes]
      summary: Retrieve an episode
      parameters:
        - $ref: '#/components/parameters/EpisodeId'
      responses:
        '200':
          description: The requested episode.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Episode'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /episodes/{episode_id}/authors:
    get:
      operationId: listEpisodeAuthors
      tags: [Episodes]
      summary: List authors for an episode
      parameters:
        - $ref: '#/components/parameters/EpisodeId'
      responses:
        '200':
          description: A collection of authors.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Collection'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /episodes/{episode_id}/keywords:
    get:
      operationId: listEpisodeKeywords
      tags: [Episodes]
      summary: List keywords for an episode
      parameters:
        - $ref: '#/components/parameters/EpisodeId'
      responses:
        '200':
          description: A collection of keywords.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Collection'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /episodes/{episode_id}/keywords/{keyword_id}:
    get:
      operationId: getEpisodeKeyword
      tags: [Episodes]
      summary: Retrieve an episode keyword
      parameters:
        - $ref: '#/components/parameters/EpisodeId'
        - $ref: '#/components/parameters/KeywordId'
      responses:
        '200':
          description: The requested keyword.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Resource'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /episodes/{episode_id}/markers:
    get:
      operationId: listEpisodeMarkers
      tags: [Episodes]
      summary: List markers for an episode
      description: Lists the chapter markers defined on the episode.
      parameters:
        - $ref: '#/components/parameters/EpisodeId'
      responses:
        '200':
          description: A collection of markers.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Collection'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /episodes/{episode_id}/markers/{marker_id}:
    get:
      operationId: getEpisodeMarker
      tags: [Episodes]
      summary: Retrieve an episode marker
      parameters:
        - $ref: '#/components/parameters/EpisodeId'
        - name: marker_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The requested marker.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Resource'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /episodes/{episode_id}/audio:
    post:
      operationId: uploadEpisodeAudio
      tags: [Episodes]
      summary: Upload episode audio
      description: Uploads the audio file for an episode.
      parameters:
        - $ref: '#/components/parameters/EpisodeId'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
      responses:
        '200':
          description: The audio upload was accepted.
        '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'
  /analytics:
    get:
      operationId: getAnalytics
      tags: [Analytics]
      summary: Retrieve overview analytics
      description: Returns overview analytics, scoped by a podcast query parameter.
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Analytics data.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/downloads:
    get:
      operationId: getAnalyticsDownloads
      tags: [Analytics]
      summary: Retrieve download analytics
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Download analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/listeners:
    get:
      operationId: getAnalyticsListeners
      tags: [Analytics]
      summary: Retrieve listener analytics
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Listener analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/listeners/last_7:
    get:
      operationId: getAnalyticsListenersLast7
      tags: [Analytics]
      summary: Retrieve listeners over the last 7 days
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Listener analytics for the last seven days.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/episodes:
    get:
      operationId: getAnalyticsEpisodes
      tags: [Analytics]
      summary: Retrieve episode analytics
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Episode analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/episodes/average_downloads:
    get:
      operationId: getAnalyticsEpisodesAverageDownloads
      tags: [Analytics]
      summary: Retrieve average downloads per episode
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Average downloads analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/episodes/hours_listened:
    get:
      operationId: getAnalyticsEpisodesHoursListened
      tags: [Analytics]
      summary: Retrieve hours listened per episode
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Hours listened analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/episodes/listeners:
    get:
      operationId: getAnalyticsEpisodesListeners
      tags: [Analytics]
      summary: Retrieve listeners per episode
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Episode listener analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/episodes/top_10:
    get:
      operationId: getAnalyticsEpisodesTop10
      tags: [Analytics]
      summary: Retrieve the top 10 episodes
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Top episodes analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/podcasts/listeners:
    get:
      operationId: getAnalyticsPodcastsListeners
      tags: [Analytics]
      summary: Retrieve podcast-level listener analytics
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Podcast listener analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/location:
    get:
      operationId: getAnalyticsLocation
      tags: [Analytics]
      summary: Retrieve location analytics
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Location analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/time_of_week:
    get:
      operationId: getAnalyticsTimeOfWeek
      tags: [Analytics]
      summary: Retrieve time-of-week analytics
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Time-of-week analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/campaigns/{campaign_id}:
    get:
      operationId: getAnalyticsCampaign
      tags: [Analytics]
      summary: Retrieve campaign analytics
      parameters:
        - name: campaign_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Campaign analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/technology:
    get:
      operationId: getAnalyticsTechnology
      tags: [Analytics]
      summary: Retrieve technology analytics
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Technology analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/technology/applications:
    get:
      operationId: getAnalyticsTechnologyApplications
      tags: [Analytics]
      summary: Retrieve listening-application analytics
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Application analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/technology/browsers:
    get:
      operationId: getAnalyticsTechnologyBrowsers
      tags: [Analytics]
      summary: Retrieve browser analytics
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Browser analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/technology/device_class:
    get:
      operationId: getAnalyticsTechnologyDeviceClass
      tags: [Analytics]
      summary: Retrieve device-class analytics
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Device-class analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/technology/devices:
    get:
      operationId: getAnalyticsTechnologyDevices
      tags: [Analytics]
      summary: Retrieve device analytics
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Device analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/technology/listening_methods:
    get:
      operationId: getAnalyticsTechnologyListeningMethods
      tags: [Analytics]
      summary: Retrieve listening-method analytics
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Listening-method analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/technology/network_types:
    get:
      operationId: getAnalyticsTechnologyNetworkTypes
      tags: [Analytics]
      summary: Retrieve network-type analytics
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Network-type analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/technology/operating_systems:
    get:
      operationId: getAnalyticsTechnologyOperatingSystems
      tags: [Analytics]
      summary: Retrieve operating-system analytics
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Operating-system analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/technology/providers:
    get:
      operationId: getAnalyticsTechnologyProviders
      tags: [Analytics]
      summary: Retrieve provider analytics
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Provider analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/technology/web_players:
    get:
      operationId: getAnalyticsTechnologyWebPlayers
      tags: [Analytics]
      summary: Retrieve web-player analytics
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Web-player analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/embed:
    get:
      operationId: getAnalyticsEmbed
      tags: [Analytics]
      summary: Retrieve embed-player analytics
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Embed analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/embed/avg_completion:
    get:
      operationId: getAnalyticsEmbedAvgCompletion
      tags: [Analytics]
      summary: Retrieve average completion for the embed player
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Average completion analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/embed/episodes:
    get:
      operationId: getAnalyticsEmbedEpisodes
      tags: [Analytics]
      summary: Retrieve embed-player analytics by episode
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Embed episode analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/embed/heatmap:
    get:
      operationId: getAnalyticsEmbedHeatmap
      tags: [Analytics]
      summary: Retrieve embed-player heatmap analytics
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Heatmap analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/embed/listens:
    get:
      operationId: getAnalyticsEmbedListens
      tags: [Analytics]
      summary: Retrieve embed-player listens
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Listens analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/embed/locations:
    get:
      operationId: getAnalyticsEmbedLocations
      tags: [Analytics]
      summary: Retrieve embed-player location analytics
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Location analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/embed/speeds:
    get:
      operationId: getAnalyticsEmbedSpeeds
      tags: [Analytics]
      summary: Retrieve embed-player playback-speed analytics
      parameters:
        - $ref: '#/components/parameters/PodcastQuery'
      responses:
        '200':
          description: Playback-speed analytics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Analytics'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /categories:
    get:
      operationId: listCategories
      tags: [Metadata]
      summary: List categories
      responses:
        '200':
          description: A collection of categories.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Collection'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /authors/{author_id}:
    get:
      operationId: getAuthor
      tags: [Metadata]
      summary: Retrieve an author
      parameters:
        - name: author_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The requested author.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Resource'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /keywords/{keyword_id}:
    get:
      operationId: getKeyword
      tags: [Metadata]
      summary: Retrieve a keyword
      parameters:
        - $ref: '#/components/parameters/KeywordId'
      responses:
        '200':
          description: The requested keyword.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Resource'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /links/{link_id}:
    get:
      operationId: getLink
      tags: [Metadata]
      summary: Retrieve a link
      parameters:
        - name: link_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The requested link.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Resource'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /current_user:
    get:
      operationId: getCurrentUser
      tags: [Metadata]
      summary: Retrieve the current user
      description: Returns information about the authenticated user.
      responses:
        '200':
          description: The curren

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