Captivate Shows API

Read and update shows, upload artwork, get the RSS feed URL.

OpenAPI Specification

captivate-fm-shows-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Captivate Analytics Shows API
  version: '1.0'
  description: Public REST API for the Captivate podcast hosting, distribution, and analytics platform. Authenticate a user with their user ID and API token to obtain a Bearer token, then manage shows, episodes, and media and read detailed listening analytics (insights). Endpoints, paths, methods, and request fields in this document are transcribed from Captivate's public Postman documentation at https://docs.captivate.fm. Response schemas are modeled honestly - Captivate's public docs describe the requests and fields but do not publish full JSON response schemas, so response bodies below are generic objects and marked as modeled.
  contact:
    name: Captivate API Support
    email: api@captivate.fm
    url: https://docs.captivate.fm/
  x-endpoints-source: Paths and request fields confirmed from the public Captivate API Postman collection (docs.captivate.fm). Response bodies are modeled.
servers:
- url: https://api.captivate.fm
  description: Captivate production API
security:
- bearerAuth: []
tags:
- name: Shows
  description: Read and update shows, upload artwork, get the RSS feed URL.
paths:
  /shows/{id}/:
    get:
      operationId: getShow
      tags:
      - Shows
      summary: Get Show
      description: Get the show information by the show ID.
      parameters:
      - $ref: '#/components/parameters/ShowId'
      responses:
        '200':
          description: The show record (modeled).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /shows/{id}:
    put:
      operationId: updateShow
      tags:
      - Shows
      summary: Update Show
      description: Update the show's metadata.
      parameters:
      - $ref: '#/components/parameters/ShowId'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                title:
                  type: string
                  example: My Demo Show
                description:
                  type: string
                summary:
                  type: string
                subtitle:
                  type: string
                author:
                  type: string
                name:
                  type: string
                categories[0]:
                  type: string
                  description: Apple Podcasts category code, e.g. 01.00.
                itunes_email:
                  type: string
                copyright:
                  type: string
                explicit:
                  type: string
                  description: e.g. clean, explicit.
                order:
                  type: string
                  example: DESC
                limit:
                  type: string
                type:
                  type: string
                  description: e.g. episodic or serial.
                language:
                  type: string
                  example: en
                donation_link:
                  type: string
                link:
                  type: string
                third_party_analytics:
                  type: string
                  description: Third-party analytics prefix, e.g. a Chartable tracking URL.
      responses:
        '200':
          description: The updated show (modeled).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /shows/{id}/artwork:
    post:
      operationId: createShowArtwork
      tags:
      - Shows
      summary: Create Show Artwork
      description: Upload the show's artwork. The file must be a JPG or PNG in the RGB colorspace (not CMYK), completely square, with a minimum of 1400px height.
      parameters:
      - $ref: '#/components/parameters/ShowId'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
              - file
              properties:
                file:
                  type: string
                  format: binary
                  description: Square JPG or PNG artwork, RGB, minimum 1400px.
      responses:
        '200':
          description: Artwork accepted (modeled).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /shows/{id}/feed:
    get:
      operationId: getShowFeedUrl
      tags:
      - Shows
      summary: Get Show Feed URL
      description: Get the public RSS feed URL for this show.
      parameters:
      - $ref: '#/components/parameters/ShowId'
      responses:
        '200':
          description: The RSS feed URL (modeled).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  responses:
    Unauthorized:
      description: Missing or invalid Bearer token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GenericObject'
  schemas:
    GenericObject:
      type: object
      description: Modeled response object. Captivate's public documentation describes requests and fields but does not publish full JSON response schemas, so response bodies are represented generically.
      additionalProperties: true
  parameters:
    ShowId:
      name: id
      in: path
      required: true
      description: The show ID (UUID).
      schema:
        type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Bearer token obtained from POST /authenticate/token. Sent as Authorization: Bearer {token}.'
Where this information came from

This is an independent, third-party profile of Captivate Shows API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.