Podbean Analytics API

Download, engagement, and advertising reports.

OpenAPI Specification

podbean-analytics-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Podbean Analytics API
  description: The Podbean API lets third-party apps and integrations manage a user's podcast on the Podbean hosting, distribution, and monetization platform. It is a REST API over HTTPS authenticated with OAuth 2.0. Apps register at developers.podbean.com to obtain a Client ID and Secret, then acquire an access token via the Authorization Code flow (to act on behalf of another user's podcast), the Client Credentials flow (to manage their own podcast), or the Multiple Podcasts token flow (for agencies and networks managing many podcasts). Documented resources cover Podcasts, Episodes, media file upload authorization, oEmbed embedding, and Analytics reports. Write operations use POST with form-encoded bodies. This description is grounded in Podbean's public developer documentation; some request/response schemas are represented generically and should be reconciled against the live docs.
  version: '1.0'
  contact:
    name: Podbean Developer Platform
    url: https://developers.podbean.com
  license:
    name: Proprietary
    url: https://www.podbean.com/terms
servers:
- url: https://api.podbean.com/v1
  description: Podbean API v1
security:
- oauth2: []
tags:
- name: Analytics
  description: Download, engagement, and advertising reports.
paths:
  /analytics/podcastReports:
    get:
      operationId: getPodcastDownloadReports
      tags:
      - Analytics
      summary: Podcast download reports
      description: Returns download/listen counts for the authorized podcast over a date range.
      parameters:
      - $ref: '#/components/parameters/AccessTokenQuery'
      - name: start
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: end
        in: query
        required: false
        schema:
          type: string
          format: date
      responses:
        '200':
          description: Download report data.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/podcastEngagementReports:
    get:
      operationId: getPodcastEngagementReports
      tags:
      - Analytics
      summary: Podcast engagement reports
      description: Returns listener engagement data for the authorized podcast over a date range.
      parameters:
      - $ref: '#/components/parameters/AccessTokenQuery'
      - name: start
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: end
        in: query
        required: false
        schema:
          type: string
          format: date
      responses:
        '200':
          description: Engagement report data.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        '401':
          $ref: '#/components/responses/Unauthorized'
  /analytics/advertiseReports:
    get:
      operationId: getAdvertiseReports
      tags:
      - Analytics
      summary: Advertising reports
      description: Returns advertising/monetization report data for the authorized podcast.
      parameters:
      - $ref: '#/components/parameters/AccessTokenQuery'
      - name: start
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: end
        in: query
        required: false
        schema:
          type: string
          format: date
      responses:
        '200':
          description: Advertising report data.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  responses:
    Unauthorized:
      description: Missing or invalid access token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  parameters:
    AccessTokenQuery:
      name: access_token
      in: query
      required: false
      schema:
        type: string
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
        error_description:
          type: string
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth 2.0. Register an app at developers.podbean.com to obtain a Client ID and Secret.
      flows:
        authorizationCode:
          authorizationUrl: https://api.podbean.com/v1/dialog/oauth
          tokenUrl: https://api.podbean.com/v1/oauth/token
          refreshUrl: https://api.podbean.com/v1/oauth/token
          scopes:
            episode_publish: Publish and manage episodes.
            episode_read: Read episodes.
            podcast_read: Read podcast profile and settings.
        clientCredentials:
          tokenUrl: https://api.podbean.com/v1/oauth/token
          scopes:
            episode_publish: Publish and manage episodes.
            podcast_read: Read podcast profile and settings.