Blubrry API Statistics API

Podcast download statistics.

Business capability
Content Performance Analytics BC-3770.30

Operations 13

GET /stats/index.{format} List shows with statistics access #
GET /stats/{keyword}/summary.{format} Show statistics summary #
GET /stats/{keyword}/show-episodes/ Episode-level download counts for a show #
GET /stats/{keyword}/ Monthly download breakdown for a show #
GET /stats/{keyword}/countries/ Show downloads by country #
GET /stats/{keyword}/app-types/ Show downloads by application type #
GET /stats/{keyword}/apps/ Show downloads by application #
GET /stats/{keyword}/episodes/ List episodes with stats #
GET /stats/{keyword}/{episode_id}/countries/ Episode downloads by country #
GET /stats/{keyword}/{episode_id}/app-types/ Episode downloads by application type #
GET /stats/{keyword}/{episode_id}/apps/ Episode downloads by application #
GET /stats/{keyword}/widget/preview.json Stats widget preview #
GET /stats/{keyword}/totals.json Lifetime totals for a show #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/blubrry-api-restful-api-for-podcast-publishing-statistics-statistics-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

blubrry-api-restful-api-for-podcast-publishing-statistics-statistics-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Blubrry Api Restful Api For Podcast Publishing Statistics…
  version: '1.0'
  description: 'Operations tagged Statistics across 2 of this provider''s published API definitions: blubrry-api-restful-api-for-podcast-publishing-statistics-openapi.yml, blubrry-api-restful-api-for-podcast-publishing-statistics-podcaster-openapi.yaml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.blubrry.com/2
  description: Production
tags:
- name: Statistics
  description: Podcast download statistics.
paths:
  /stats/index.{format}:
    get:
      tags:
      - Statistics
      summary: List shows with statistics access
      operationId: listStatsShows
      parameters:
      - $ref: '#/components/parameters/Format'
      responses:
        '200':
          description: Shows returned.
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
      - OAuth2: []
    servers:
    - url: https://api.blubrry.com/2
      description: Production
  /stats/{keyword}/summary.{format}:
    get:
      tags:
      - Statistics
      summary: Show statistics summary
      description: Overall download summary for a show.
      operationId: getShowStatsSummary
      parameters:
      - $ref: '#/components/parameters/Keyword'
      - $ref: '#/components/parameters/Format'
      responses:
        '200':
          description: Summary returned.
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
      - OAuth2: []
    servers:
    - url: https://api.blubrry.com/2
      description: Production
  /stats/{keyword}/show-episodes/:
    get:
      tags:
      - Statistics
      summary: Episode-level download counts for a show
      operationId: getShowEpisodeStats
      parameters:
      - $ref: '#/components/parameters/Keyword'
      responses:
        '200':
          description: Episode stats returned.
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
      - OAuth2: []
    servers:
    - url: https://api.blubrry.com/2
      description: Production
  /stats/{keyword}/:
    get:
      tags:
      - Statistics
      summary: Monthly download breakdown for a show
      operationId: getShowMonthlyStats
      parameters:
      - $ref: '#/components/parameters/Keyword'
      responses:
        '200':
          description: Monthly stats returned.
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
      - OAuth2: []
    servers:
    - url: https://api.blubrry.com/2
      description: Production
  /stats/{keyword}/countries/:
    get:
      tags:
      - Statistics
      summary: Show downloads by country
      operationId: getShowCountryStats
      parameters:
      - $ref: '#/components/parameters/Keyword'
      responses:
        '200':
          description: Country stats returned.
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
      - OAuth2: []
    servers:
    - url: https://api.blubrry.com/2
      description: Production
  /stats/{keyword}/app-types/:
    get:
      tags:
      - Statistics
      summary: Show downloads by application type
      operationId: getShowAppTypeStats
      parameters:
      - $ref: '#/components/parameters/Keyword'
      responses:
        '200':
          description: App type stats returned.
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
      - OAuth2: []
    servers:
    - url: https://api.blubrry.com/2
      description: Production
  /stats/{keyword}/apps/:
    get:
      tags:
      - Statistics
      summary: Show downloads by application
      operationId: getShowAppStats
      parameters:
      - $ref: '#/components/parameters/Keyword'
      responses:
        '200':
          description: App stats returned.
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
      - OAuth2: []
    servers:
    - url: https://api.blubrry.com/2
      description: Production
  /stats/{keyword}/episodes/:
    get:
      tags:
      - Statistics
      summary: List episodes with stats
      operationId: listStatsEpisodes
      parameters:
      - $ref: '#/components/parameters/Keyword'
      responses:
        '200':
          description: Episode list returned.
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
      - OAuth2: []
    servers:
    - url: https://api.blubrry.com/2
      description: Production
  /stats/{keyword}/{episode_id}/countries/:
    get:
      tags:
      - Statistics
      summary: Episode downloads by country
      operationId: getEpisodeCountryStats
      parameters:
      - $ref: '#/components/parameters/Keyword'
      - $ref: '#/components/parameters/EpisodeId'
      responses:
        '200':
          description: Country stats returned.
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
      - OAuth2: []
    servers:
    - url: https://api.blubrry.com/2
      description: Production
  /stats/{keyword}/{episode_id}/app-types/:
    get:
      tags:
      - Statistics
      summary: Episode downloads by application type
      operationId: getEpisodeAppTypeStats
      parameters:
      - $ref: '#/components/parameters/Keyword'
      - $ref: '#/components/parameters/EpisodeId'
      responses:
        '200':
          description: App type stats returned.
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
      - OAuth2: []
    servers:
    - url: https://api.blubrry.com/2
      description: Production
  /stats/{keyword}/{episode_id}/apps/:
    get:
      tags:
      - Statistics
      summary: Episode downloads by application
      operationId: getEpisodeAppStats
      parameters:
      - $ref: '#/components/parameters/Keyword'
      - $ref: '#/components/parameters/EpisodeId'
      responses:
        '200':
          description: App stats returned.
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
      - OAuth2: []
    servers:
    - url: https://api.blubrry.com/2
      description: Production
  /stats/{keyword}/widget/preview.json:
    get:
      tags:
      - Statistics
      summary: Stats widget preview
      operationId: getStatsWidgetPreview
      parameters:
      - $ref: '#/components/parameters/Keyword'
      responses:
        '200':
          description: Widget preview returned.
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
      - OAuth2: []
    servers:
    - url: https://api.blubrry.com/2
      description: Production
  /stats/{keyword}/totals.json:
    get:
      tags:
      - Statistics
      summary: Lifetime totals for a show
      operationId: getShowStatsTotals
      parameters:
      - $ref: '#/components/parameters/Keyword'
      responses:
        '200':
          description: Totals returned.
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
      - OAuth2: []
    servers:
    - url: https://api.blubrry.com/2
      description: Production
components:
  parameters:
    Format:
      name: format
      in: path
      required: true
      description: Response serialization format.
      schema:
        type: string
        enum:
        - json
        - xml
    EpisodeId:
      name: episode_id
      in: path
      required: true
      schema:
        type: integer
    Keyword:
      name: keyword
      in: path
      required: true
      description: Program keyword that identifies the show.
      schema:
        type: string
    StartDate:
      name: startDate
      in: query
      description: Optional - Specifies the start date range
      required: false
      schema:
        type: string
        example: '2023-12-01'
    EndDate:
      name: endDate
      in: query
      description: Optional - Specifies the end date range
      required: false
      schema:
        type: string
        example: '2023-12-31'
  responses:
    Unauthorized:
      description: Missing or invalid access token.
  schemas:
    EpisodesResult:
      type: object
      properties:
        record_count:
          type: integer
          example: 1
        results:
          type: array
          items:
            $ref: '#/components/schemas/EpisodeObject'
    ShowEpisodesResult:
      type: object
      properties:
        record_count:
          type: integer
          example: 1
        title:
          type: string
          example: Your Show Title
        keyword:
          type: string
          example: your_show_keyword
        total:
          type: integer
          example: 5000
        results:
          type: array
          items:
            $ref: '#/components/schemas/EpisodeObject'
    Apps:
      type: object
      properties:
        record_count:
          type: integer
          example: 2
        144:
          type: object
          properties:
            client_name:
              type: string
              example: Apple Podcasts
            client_class_id:
              type: integer
              example: 5
            total:
              type: integer
              example: 5000
        207:
          type: object
          properties:
            client_name:
              type: string
              example: Firefox
            client_class_id:
              type: integer
              example: 2
            total:
              type: integer
              example: 5000
    AllHosted:
      type: array
      items:
        $ref: '#/components/schemas/Hosted'
      xml:
        name: program
    Summary:
      type: object
      properties:
        stats_url:
          type: string
          example: https://stats.blubrry.com
        program_id:
          type: integer
          example: '12345'
        overall:
          type: object
          properties:
            total:
              type: integer
              example: '5000'
            unique:
              type: integer
              example: '4000'
            unique_repeat:
              type: integer
              example: '4000'
        current_month:
          type: object
          properties:
            total:
              type: integer
              example: '1000'
            unique:
              type: integer
              example: '1700'
            unique_repeat:
              type: integer
              example: '1250'
        last_month:
          type: object
          properties:
            total:
              type: integer
              example: '600'
            unique:
              type: integer
              example: '450'
            unique_repeat:
              type: integer
              example: '300'
        media:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
                example: '1234567'
              title:
                type: string
                example: The Greatest Podcast Episode Ever
              filename:
                type: string
                example: ep1-greatest-ep-2020-01-05.mp3
              date:
                type: string
                example: Mon, 01 Apr 2019 03:20:15 +0000
              overall:
                type: integer
                example: '750'
              current_month:
                type: integer
                example: '120'
    AppTypes:
      type: object
      properties:
        record_count:
          type: integer
          example: 1
        5:
          type: object
          properties:
            client_class_name:
              type: string
              example: Mobile Applications
            total:
              type: integer
              example: 5000
        2:
          type: object
          properties:
            client_class_name:
              type: string
              example: Web browsers
            total:
              type: integer
              example: 5000
    KeywordResult:
      type: object
      properties:
        record_count:
          type: integer
          example: 1
        results:
          type: object
          properties:
            title:
              type: string
              example: Your Show Title
            keyword:
              type: string
              example: your_show_keyword
            total:
              type: integer
              example: 5000
            full_downloads:
              type: integer
              example: 5000
            partial_25:
              type: integer
              example: 5000
            partial_50:
              type: integer
              example: 5000
            partial_75:
              type: integer
              example: 5000
            partial_99:
              type: integer
              example: 5000
            id:
              type: string
              example: '1234567'
    EpisodeObject:
      type: object
      properties:
        episode_id:
          type: string
          example: '12345'
        episode_label:
          type: string
          example: 'Episode 1: Pilot'
        episode_filename:
          type: string
          example: episode1.mp3
        episode_date:
          type: string
          example: 04/25/2021
        duration_in_seconds:
          type: string
          example: '3600'
        total:
          type: string
          example: '1000'
        full_downloads:
          type: string
          example: '1000'
        partial_25:
          type: integer
          example: 5000
        partial_50:
          type: integer
          example: 5000
        partial_75:
          type: integer
          example: 5000
        partial_99:
          type: integer
          example: 5000
    StatsWidget:
      type: object
      properties:
        program_keyword:
          type: string
        widget_title:
          type: string
        scale_min:
          type: number
        scale_max:
          type: integer
        scale_step:
          type: integer
        program_total:
          type: integer
        month_average:
          type: integer
        day_total_data:
          type: object
          description: An associative array containing the totals for each of the most recent seven days
    Countries:
      type: object
      properties:
        record_count:
          type: integer
          example: 2
        114:
          type: object
          properties:
            country_name:
              type: string
              example: Cambodia
            total:
              type: integer
              example: 5000
        223:
          type: object
          properties:
            country_name:
              type: string
              example: Vietnam
            total:
              type: integer
              example: 5000
    Hosted:
      type: object
      properties:
        program_title:
          type: string
          description: The title of the program or podcast. This is the display name as it appears in directories or on user-facing interfaces.
          example: The Daily Podcast
        program_keyword:
          type: string
          description: A unique keyword identifier for older programs, typically used in feed URLs. Deprecated for new programs in favor of 'program_id'.
          example: daily_podcast_keyword
        program_id:
          type: integer
          description: The unique identifier for a program or podcast, used as the primary reference for media or stats related operations.
          example: 12345
        podcast_id:
          type: integer
          description: The unique identifier for a program or podcast, used as the primary reference for media-related operations.
          example: 12345
        stats_program_id:
          type: integer
          description: The unique identifier for a program or podcast, used as the primary reference for stats-related operations.
          example: 78987
        feed_url:
          type: string
          description: The URL of the program's RSS feed. This can vary based on whether the feed is hosted with Blubrry, PowerPress, or a custom domain.
          example: https://feeds.blubrry.com/feeds/the_daily.xml
    Total:
      type: object
      properties:
        recordCount:
          type: integer
          example: '1'
        results:
          type: object
          properties:
            episode:
              type: string
              example: episode1-2020-01-22.mp3
            date:
              type: string
              example: '2020-04-18'
            url:
              type: string
              example: https://content.blubrry.com/keyword/episode1-2020-01-22.mp3
            title:
              type: string
              example: Episode 1
            downloads:
              type: string
              example: '856'
  headers:
    xTotalHosted:
      schema:
        type: integer
        description: Number of programs that are available to query
  securitySchemes:
    OAuth2:
      type: oauth2
      description: 'OAuth 2.0 Bearer token. Contact Blubrry to receive a client_id and

        secret. Tokens expire after one hour; refresh tokens do not expire.

        '
      flows:
        authorizationCode:
          authorizationUrl: https://api.blubrry.com/oauth2/authorize
          tokenUrl: https://api.blubrry.com/oauth2/token
          refreshUrl: https://api.blubrry.com/oauth2/token
          scopes: {}
x-refined-from:
- blubrry-api-restful-api-for-podcast-publishing-statistics-openapi.yml
- blubrry-api-restful-api-for-podcast-publishing-statistics-podcaster-openapi.yaml