Simplecast Podcasts API
Podcasts (shows) and their related metadata.
Podcasts (shows) and their related metadata.
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}".'