Transistor

Transistor is a podcast hosting and analytics platform that lets teams host unlimited shows, distribute episodes to Apple Podcasts, Spotify, and YouTube, run private (subscriber-only) podcasts, and measure downloads with advanced analytics. Transistor exposes a documented public REST API at https://api.transistor.fm/v1 that follows the JSON:API specification, is authenticated with an x-api-key header, and covers shows, episodes, analytics, private podcast subscribers, and event webhooks.

5 APIs 0 Features
PodcastingPodcast HostingAnalyticsMediaAudioJSON:API

APIs

Transistor Shows API

List and retrieve the podcasts (shows) in your Transistor account and update show metadata. Returns JSON:API resources for each show, including title, description, author, artwo...

Transistor Episodes API

Create, list, retrieve, update, and publish podcast episodes. Includes authorizing an audio-file upload, creating draft episodes, and publishing, scheduling, or unpublishing an ...

Transistor Analytics API

Retrieve download analytics for a show over a date range, aggregate analytics across all episodes of a show, and per-episode download analytics. Data is returned as JSON:API res...

Transistor Subscribers API

Manage private (subscriber-only) podcast subscribers - list, retrieve, add single or batch subscribers with optional email invitations, update a subscriber's email, and remove s...

Transistor Webhooks API

Subscribe to and manage event webhooks. Register HTTP callback URLs to receive server-to-server notifications for episode_created, episode_published, subscriber_created, and sub...

Collections

Pricing Plans

Transistor Plans Pricing

4 plans

PLANS

Rate Limits

Transistor Rate Limits

3 limits

RATE LIMITS

FinOps

Resources

🔗
TrustCenter
TrustCenter
🔗
VulnerabilityDisclosure
VulnerabilityDisclosure
🔗
DomainSecurity
DomainSecurity
🔑
Authentication
Authentication
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Transistor API
  version: '1.0'
request:
  auth:
    type: apikey
    apikey:
      key: x-api-key
      value: '{{apiKey}}'
      in: header
items:
- info:
    name: Account
    type: folder
  items:
  - info:
      name: Retrieve authenticated user.
      type: http
    http:
      method: GET
      url: https://api.transistor.fm/v1/
    docs: Returns details for the authenticated user associated with the API key.
- info:
    name: Shows
    type: folder
  items:
  - info:
      name: List shows.
      type: http
    http:
      method: GET
      url: https://api.transistor.fm/v1/shows
    docs: Returns a paginated list of the shows in your account.
  - info:
      name: Retrieve a show.
      type: http
    http:
      method: GET
      url: https://api.transistor.fm/v1/shows/:id
      params:
      - name: id
        value: ''
        type: path
        description: The show ID.
    docs: Returns a single show by ID.
  - info:
      name: Update a show.
      type: http
    http:
      method: PATCH
      url: https://api.transistor.fm/v1/shows/:id
      params:
      - name: id
        value: ''
        type: path
        description: The show ID.
      body:
        type: json
        data: '{ "show": { "description": "Updated show description" } }'
    docs: Updates metadata for a single show.
- info:
    name: Episodes
    type: folder
  items:
  - info:
      name: List episodes.
      type: http
    http:
      method: GET
      url: https://api.transistor.fm/v1/episodes
      params:
      - name: show_id
        value: ''
        type: query
        description: Filter by show.
      - name: status
        value: ''
        type: query
        description: Filter by episode status.
      - name: query
        value: ''
        type: query
        description: Full-text search.
    docs: Returns a paginated list of episodes, filterable by show, status, and full-text query.
  - info:
      name: Authorize an audio upload.
      type: http
    http:
      method: GET
      url: https://api.transistor.fm/v1/episodes/authorize_upload
      params:
      - name: filename
        value: ''
        type: query
        description: The audio file name to upload.
    docs: Returns a pre-signed upload URL and an audio_url for uploading an episode audio file.
  - info:
      name: Retrieve an episode.
      type: http
    http:
      method: GET
      url: https://api.transistor.fm/v1/episodes/:id
      params:
      - name: id
        value: ''
        type: path
        description: The episode ID.
    docs: Returns a single episode by ID.
  - info:
      name: Create an episode.
      type: http
    http:
      method: POST
      url: https://api.transistor.fm/v1/episodes
      body:
        type: json
        data: '{ "episode": { "show_id": "", "title": "My Episode", "audio_url": "" } }'
    docs: Creates a new draft episode.
  - info:
      name: Update an episode.
      type: http
    http:
      method: PATCH
      url: https://api.transistor.fm/v1/episodes/:id
      params:
      - name: id
        value: ''
        type: path
        description: The episode ID.
      body:
        type: json
        data: '{ "episode": { "title": "Updated title" } }'
    docs: Updates an existing episode.
  - info:
      name: Publish, schedule, or unpublish an episode.
      type: http
    http:
      method: PATCH
      url: https://api.transistor.fm/v1/episodes/:id/publish
      params:
      - name: id
        value: ''
        type: path
        description: The episode ID.
      body:
        type: json
        data: '{ "episode": { "status": "published" } }'
    docs: Changes an episode's publication status - publish, schedule, or unpublish.
- info:
    name: Analytics
    type: folder
  items:
  - info:
      name: Show analytics.
      type: http
    http:
      method: GET
      url: https://api.transistor.fm/v1/analytics/:id
      params:
      - name: id
        value: ''
        type: path
        description: The show ID.
      - name: start_date
        value: ''
        type: query
        description: Start of range (dd-mm-yyyy).
      - name: end_date
        value: ''
        type: query
        description: End of range (dd-mm-yyyy).
    docs: Returns downloads per day for a show (default last 14 days).
  - info:
      name: All-episodes analytics for a show.
      type: http
    http:
      method: GET
      url: https://api.transistor.fm/v1/analytics/:id/episodes
      params:
      - name: id
        value: ''
        type: path
        description: The show ID.
      - name: start_date
        value: ''
        type: query
        description: Start of range (dd-mm-yyyy).
      - name: end_date
        value: ''
        type: query
        description: End of range (dd-mm-yyyy).
    docs: Returns download analytics aggregated across all episodes of a show (default last 7 days).
  - info:
      name: Single-episode analytics.
      type: http
    http:
      method: GET
      url: https://api.transistor.fm/v1/analytics/episodes/:id
      params:
      - name: id
        value: ''
        type: path
        description: The episode ID.
      - name: start_date
        value: ''
        type: query
        description: Start of range (dd-mm-yyyy).
      - name: end_date
        value: ''
        type: query
        description: End of range (dd-mm-yyyy).
    docs: Returns download analytics for a single episode (default last 14 days).
- info:
    name: Subscribers
    type: folder
  items:
  - info:
      name: List subscribers.
      type: http
    http:
      method: GET
      url: https://api.transistor.fm/v1/subscribers
    docs: Returns a paginated list of private podcast subscribers.
  - info:
      name: Retrieve a subscriber.
      type: http
    http:
      method: GET
      url: https://api.transistor.fm/v1/subscribers/:id
      params:
      - name: id
        value: ''
        type: path
        description: The subscriber ID.
    docs: Returns a single private podcast subscriber by ID.
  - info:
      name: Add a subscriber.
      type: http
    http:
      method: POST
      url: https://api.transistor.fm/v1/subscribers
      body:
        type: json
        data: '{ "subscriber": { "show_id": "", "email": "listener@example.com" } }'
    docs: Adds a private podcast subscriber, optionally sending an email invitation.
  - info:
      name: Add subscribers in bulk.
      type: http
    http:
      method: POST
      url: https://api.transistor.fm/v1/subscribers/batch
      body:
        type: json
        data: '{ "show_id": "", "subscribers": [ { "email": "a@example.com" }, { "email": "b@example.com" } ] }'
    docs: Adds multiple private podcast subscribers in a single request.
  - info:
      name: Update a subscriber.
      type: http
    http:
      method: PATCH
      url: https://api.transistor.fm/v1/subscribers/:id
      params:
      - name: id
        value: ''
        type: path
        description: The subscriber ID.
      body:
        type: json
        data: '{ "subscriber": { "email": "new@example.com" } }'
    docs: Updates a private podcast subscriber's email address.
  - info:
      name: Remove a subscriber by ID.
      type: http
    http:
      method: DELETE
      url: https://api.transistor.fm/v1/subscribers/:id
      params:
      - name: id
        value: ''
        type: path
        description: The subscriber ID.
    docs: Removes a single private podcast subscriber by ID.
- info:
    name: Webhooks
    type: folder
  items:
  - info:
      name: List webhooks.
      type: http
    http:
      method: GET
      url: https://api.transistor.fm/v1/webhooks
    docs: Returns the webhook subscriptions in your account.
  - info:
      name: Subscribe to an event.
      type: http
    http:
      method: POST
      url: https://api.transistor.fm/v1/webhooks
      body:
        type: json
        data: '{ "event_name": "episode_published", "url": "https://example.com/webhook", "show_id": "" }'
    docs: Registers a webhook that POSTs to a callback URL when an event fires.
  - info:
      name: Unsubscribe a webhook.
      type: http
    http:
      method: DELETE
      url: https://api.transistor.fm/v1/webhooks/:id
      params:
      - name: id
        value: ''
        type: path
        description: The webhook ID.
    docs: Deletes a webhook subscription by ID.