Table of contents

Podcast Industry Statistics and Data API

Using the API

Overview

Method: GET (unless otherwise stated)

API base URL: https://api.podcastindustryinsights.com

Your API key:

Please join or log in to reveal your API key

Authentication

All API calls must be authenticated with your API key in the API-Key request header.

API-Key: YOURKEY

Your API key will never change and you will have access for as long as your membership is active.

Response codes

API requests may return one of the following response codes.

Response codeDescription
200Successful request and response.
400Bad request. Something was missing or malformed in your request.
401Access denied. Missing authentication token.
403Access denied. Your access has expired or your membership role does not include this access.
429Too many requests. You've exceeded the rate-limit on this API.
5xxServer error. We might already be on it, but you may contact support just in case.

Time and date

All time and date fields accepted and returned are in UTC.

Date formats

While the date field will always follow standard UTC datetime format, some endpoints allow you to get an additional formattedDate field using the formatting you specify in the dateFormat parameter. Here are the supported options.

InputExample outputDescription
YY212-digit year
YYYY20214-digit year
M1-12Month
MM01–122-digit month
MMMJan–DecAbbreviated name of the month
MMMMJanuary–DecemberFull name of the month
D1–31Day of the month
DD01–312-digit day of the month
Z-05:00Offset from UTC
ZZ-05002-digit compact offset from UTC
AAM PMPost or ante meridiem, uppercase
aam pmPost or ante meridiem, lowercase
Do1st … 31stDay of the month with ordinal

Examples

Not all data or possible parameters are demonstrated in the examples below. Example results may be edited, truncated, or filled with placeholder data to reflect only a sample of the data such API requests would return. This page does not use live data.

Please log in to have your API key inserted in example requests.

All curl examples pipe their output through jq for your convenience.

Platforms

Our Platforms data API will give you a big-picture look at the core current statistics from all platforms we track.

Overview

Endpoint: /v1/platforms

Returns overview stats from all platforms we track.

Example request:

curl -H 'API-Key: YOURKEY' 'https://api.podcastindustryinsights.com/v1/platforms' | jq

Example response:

{
  "resultCount": 2,
  "results": {
    "applepodcasts": {
      "date": "2020-12-08T03:30:00.000Z",
      "total": 1692538,
      "active": 698446,
      "episodes": 41946837,
      "inactive": 994092,
      "url": "https://api.podcastindustryinsights.com/v1/applepodcasts"
    },
    "spotify": {
      "date": "2020-12-08T03:30:00.000Z",
      "total": 1830463,
      "active": 3451456,
      "episodes": 1234154,
      "inactive": 12346,
      "url": "https://api.podcastindustryinsights.com/v1/spotify"
    }
  }
}
ParameterFormatDescription
dateYYYY-MM-DDA specific date (in UTC) to show data from
resultsOnlybooleanReturn only the results array/object (default: false)

Apple Podcasts

Our Apple Podcasts data will give you more in-depth current and historical statistics from what we track in Apple Podcasts.

Overview

Endpoint: /v1/applepodcasts

Returns historical deep stats from Apple Podcasts.

Example request:

curl -H 'API-Key: YOURKEY' 'https://api.podcastindustryinsights.com/v1/applepodcasts' | jq

Example response:

{
  "resultCount": 10,
  "results": [
    {
      "date": "2020-12-08T03:30:00.000Z",
      "added": 7223,
      "reactivated": 39,
      "removed": -123,
      "total": 1692538,
      "active": 698446,
      "episodeAges": {
        "0-7 days": 242392,
        "8-30 days": 212498,
        "31-90 days": 243406,
        "91-365 days": 560399,
        "1-2 years": 166026,
        "3-4 years": 89067,
        "4-5 years": 41869,
        "5+ years": 28209
      },
      "episodeCounts": {
        "1 episode": {
          "total": 412839,
          "active": 116059,
          "inactive": 296780
        },
        "2 episodes": {
          "total": 175281,
          "active": 51440,
          "inactive": 123841
        },
        "3 episodes": {
          "total": 114036,
          "active": 35179,
          "inactive": 78857
        },
        "4 episodes": {
          "total": 86590,
          "active": 29065,
          "inactive": 57525
        },
        "5 episodes": {
          "total": 74749,
          "active": 25459,
          "inactive": 49290
        },
        "6 episodes": {
          "total": 58758,
          "active": 22182,
          "inactive": 36576
        },
        "7 episodes": {
          "total": 48833,
          "active": 19316,
          "inactive": 29517
        },
        "8 episodes": {
          "total": 42741,
          "active": 17714,
          "inactive": 25027
        },
        "9 episodes": {
          "total": 37925,
          "active": 16419,
          "inactive": 21506
        },
        "10+ episodes": {
          "total": 640730,
          "active": 365601,
          "inactive": 275129
        }
      },
      "episodeCountsCond": {
        "1 episode": 412839,
        "2 episodes": 175281,
        "3 episodes": 114036,
        "4-5 episodes": 161339,
        "6-7 episodes": 107591,
        "8-9 episodes": 80666,
        "10+ episodes": 640730
      },
      "episodes": 41946837,
      "inactive": 994092,
      "url": "https://api.podcastindustryinsights.com/v1/applepodcasts/?date=2020-12-07"
    },
    {
      "date": "2020-12-07T03:30:00.000Z",
      "added": 2,
      "reactivated": 4,
      "removed": -81,
      "total": 1685399,
      "active": 694533,
      "episodeAges": {
        "0-7 days": 244534,
        "8-30 days": 205514,
        "31-90 days": 244343,
        "91-365 days": 557831,
        "1-2 years": 165671,
        "3-4 years": 88931,
        "4-5 years": 41792,
        "5+ years": 28182
      },
      "episodeCounts": {
        "1 episode": {
          "total": 408415,
          "active": 112662,
          "inactive": 295753
        },
        "2 episodes": {
          "total": 174258,
          "active": 50794,
          "inactive": 123464
        },
        "3 episodes": {
          "total": 113586,
          "active": 34925,
          "inactive": 78661
        },
        "4 episodes": {
          "total": 86376,
          "active": 29010,
          "inactive": 57366
        },
        "5 episodes": {
          "total": 74679,
          "active": 25511,
          "inactive": 49168
        },
        "6 episodes": {
          "total": 58713,
          "active": 22239,
          "inactive": 36474
        },
        "7 episodes": {
          "total": 48746,
          "active": 19303,
          "inactive": 29443
        },
        "8 episodes": {
          "total": 42665,
          "active": 17703,
          "inactive": 24962
        },
        "9 episodes": {
          "total": 37874,
          "active": 16434,
          "inactive": 21440
        },
        "10+ episodes": {
          "total": 640035,
          "active": 365943,
          "inactive": 274092
        }
      },
      "episodeCountsCond": {
        "1 episode": 408415,
        "2 episodes": 174258,
        "3 episodes": 113586,
        "4-5 episodes": 161055,
        "6-7 episodes": 107459,
        "8-9 episodes": 80539,
        "10+ episodes": 640035
      },
      "episodes": 41882453,
      "inactive": 990866,
      "url": "https://api.podcastindustryinsights.com/v1/applepodcasts/?date=2020-12-06"
    }
  ]
}
ParameterFormatDescription
dateYYYY-MM-DDA specific individual date to show data for
fromYYYY-MM-DDShow all records starting from and including this date
toYYYY-MM-DDShow all records until but not including this date
dateFormatstringAdd a formattedDate field in the date format you specify
limitintegerMaximum number of records to return (default: 10)
offsetintegerNumber of records to skip in the query
fieldsstringComma-separated list of fields to show plus date and URL
orderasc or descDate-based sorting order (default: desc)
resultsOnlybooleanReturn only the results array/object (default: false)

Lookup

Endpoint: GET /v1/applepodcasts/lookup

Returns an array of Apple Podcasts IDs, feed URLs, titles, and artists of podcasts matching the search query. The parameters must be URL-encoded. For regular-expression searches, see “Regex lookup” below.

Example request:

curl -H 'API-Key: YOURKEY' 'https://api.podcastindustryinsights.com/v1/applepodcasts/lookup?artist=Daniel%20J.%20Lewis' | jq

Example response:

{
  "resultCount": 2,
  "results": [
    {
      "_id": 378425347,
      "title": "The Audacity to Podcast",
      "artist": "Daniel J. Lewis",
      "feedUrl": "https://feeds.podcastmirror.com/theaudacitytopodcast",
      "dateAdded": "2018-11-28T00:00:00.000Z"
    },
    {
      "_id": 548946224,
      "title": "Podcasters' Roundtable",
      "artist": "Ray Ortega, Dave Jackson, Daniel J. Lewis.",
      "feedUrl": "https://podcastersroundtable.libsyn.com/rss",
      "dateAdded": "2018-11-28T00:00:00.000Z"
    }
  ]
}
FieldFormatDescription
idintegerApple Podcasts ID number
titlestringCase-insensitive, URL-encoded podcast title
artiststringCase-insensitive, URL-encoded podcast artist
feedUrlstringCase-sensitive podcast RSS URL
resultsOnlybooleanReturn only the results array/object (default: false)

Regex lookup

Endpoint: POST /v1/applepodcasts/lookup

Returns an array of Apple Podcasts IDs, feed URLs, titles, and artists of podcasts matching the search query. The query must be in the JSON body of the POST request.

Example request:

curl -H 'API-Key: YOURKEY' -H 'Content-Type: application/json' -d '{"artist":"Daniel .\\. Lewis"}' 'https://api.podcastindustryinsights.com/v1/applepodcasts/lookup' | jq

Example response:

{
  "resultCount": 3,
  "results": [
    {
      "_id": 378425347,
      "title": "The Audacity to Podcast",
      "artist": "Daniel J. Lewis",
      "feedUrl": "https://feeds.podcastmirror.com/theaudacitytopodcast",
      "dateAdded": "2018-11-28T00:00:00.000Z"
    },
    {
      "_id": 548946224,
      "title": "Podcasters' Roundtable",
      "artist": "Ray Ortega, Dave Jackson, Daniel J. Lewis.",
      "feedUrl": "https://podcastersroundtable.libsyn.com/rss",
      "dateAdded": "2018-11-28T00:00:00.000Z"
    },
    {
      "_id": 1501850493,
      "artist": "Daniel M. Lewis",
      "dateAdded": "2020-03-10T02:49:44.357Z",
      "feedUrl": "https://anchor.fm/s/14a7957c/podcast/rss",
      "title": "The WOW - (Words Of Wisdom)"
    }
  ]
}
FieldFormatDescription
idintegerApple Podcasts ID number
titlestring or regexCase-insensitive or regular expression podcast title, escape characters with \\
artiststring or regexCase-insensitive or regular expression podcast artist, escape characters with \\
feedUrlstringCase-sensitive podcast RSS URL
resultsOnlybooleanReturn only the results array/object (default: false)

Added

Endpoint: /v1/applepodcasts/added

Returns the Apple Podcasts ID, feed URL, and title of podcasts added on the target date.

Example request:

curl -H 'API-Key: YOURKEY' 'https://api.podcastindustryinsights.com/v1/applepodcasts/added' | jq

Example response:

{
  "resultCount": 2,
  "date": "2020-12-07T00:00:00.000Z",
  "results": [
    {
      "_id": 1542896279,
      "feedUrl": "https://media.rss.com/thesluttyscientistpodcast/feed.xml",
      "title": "The Slutty Scientist"
    },
    {
      "_id": 1543469988,
      "feedUrl": "https://feeds.megaphone.fm/HSW8602760751",
      "title": "Why Am I Telling You This?"
    }
  ]
}
ParameterFormatDescription
dateYYYY-MM-DDA specific date to show data from
feedUrlstringCase-insensitive string to filter results by (e.g., libsyn)
resultsOnlybooleanReturn only the results array/object (default: false)

Removed

Endpoint: /v1/applepodcasts/removed

Returns the Apple Podcasts ID, feed URL, and title of podcasts removed on the target date.

This API endpoint may take up to 30 seconds to return the results. This will be optimized later.

Example request:

curl -H 'API-Key: YOURKEY' 'https://api.podcastindustryinsights.com/v1/applepodcasts/removed' | jq

Example response:

{
  "resultCount": 2,
  "date": "2020-12-08T00:00:00.000Z",
  "results": [
    {
      "_id": 411870173,
      "title": "Dr Boogie",
      "feedUrl": "http://rss.rtbf.be/media/rss/audio/c21-dr_recent.xml"
    },
    {
      "_id": 877937513,
      "title": "Lunchtime Movie Review - Reviewing films from the 70s and 80s",
      "feedUrl": "https://www.moviehousememories.com/category/podcasts/lunchtime-movie-review/feed/"
    }
  ]
}
ParameterFormatDescription
dateYYYY-MM-DDA specific date to show data from
feedUrlstringCase-insensitive string to filter results by (e.g., libsyn)
resultsOnlybooleanReturn only the results array/object (default: false)

Reactivated

Endpoint: /v1/applepodcasts/reactivated

Returns the Apple Podcasts ID, feed URL, and title of podcasts reactivated on the target date.

This API endpoint may take up to 30 seconds to return the results. This will be optimized later.

Example request:

curl -H 'API-Key: YOURKEY' 'https://api.podcastindustryinsights.com/v1/applepodcasts/reactivated' | jq

Example response:

{
  "resultCount": 2,
  "date": "2020-12-07T00:00:00.000Z",
  "results": [
    {
      "_id": 1267633358,
      "title": "My Peace Corps Story",
      "feedUrl": "https://mypeacecorpsstory.com/feed/podcast/"
    },
    {
      "_id": 1268476012,
      "title": "Far Out Fiesta",
      "feedUrl": "https://feed.podbean.com/faroutfiesta/feed.xml"
    }
  ]
}
ParameterFormatDescription
dateYYYY-MM-DDA specific date to show data from
feedUrlstringCase-insensitive string to filter results by (e.g., libsyn)
resultsOnlybooleanReturn only the results array/object (default: false)

All categories

Endpoint: /v1/applepodcasts/categories

Returns the latest statistics for each Apple Podcasts category.

Example request:

curl -H 'API-Key: YOURKEY' 'https://api.podcastindustryinsights.com/v1/applepodcasts/categories' | jq

Example response:

{
  "resultCount": 2,
  "results": {
    "1301": {
      "name": "Arts",
      "total": 175065,
      "added": 993,
      "removed": 16,
      "reactivated": 2,
      "active": 68068,
      "inactive": 126173,
      "primary": {
        "total": 36034,
        "added": 161,
        "removed": 4,
        "reactivated": 0,
        "active": 13285,
        "inactive": 28364
      },
      "url": "https://api.podcastindustryinsights.com/v1/applepodcasts/categories/1301"
    },
    "1302": {
      "name": "Personal Journals",
      "total": 62940,
      "added": 320,
      "removed": 4,
      "reactivated": 3,
      "active": 25741,
      "inactive": 43523,
      "primary": {
        "total": 57130,
        "added": 304,
        "removed": 3,
        "reactivated": 1,
        "active": 23285,
        "inactive": 38455
      },
      "url": "https://api.podcastindustryinsights.com/v1/applepodcasts/categories/1302"
    }
  }
}
ParameterFormatDescription
fieldsstringComma-separated list of fields to show plus date and URL
resultsOnlybooleanReturn only the results array/object (default: false)
flattenbooleanFlattens each result a single depth; e.g., primary.total becomes primary total. (default: false)
parentsOnlybooleanFilters out all subcategories (default: false)

Single category

Endpoint: /v1/applepodcasts/categories/[category_ID]

Returns historical statistics for a single Apple Podcasts category.

Example request:

curl -H 'API-Key: YOURKEY' 'https://api.podcastindustryinsights.com/v1/applepodcasts/categories/1302' | jq

Example response:

{
  "resultCount": 2,
  "results": [
    {
      "date": "2020-12-08T03:30:00.000Z",
      "name": "Personal Journals",
      "total": 62940,
      "added": 320,
      "removed": 4,
      "reactivated": 3,
      "active": 25741,
      "inactive": 43523,
      "primary": {
        "total": 57130,
        "added": 304,
        "removed": 3,
        "reactivated": 1,
        "active": 23285,
        "inactive": 38455
      }
    },
    {
      "date": "2020-12-07T03:30:00.000Z",
      "name": "Personal Journals",
      "total": 62617,
      "added": 0,
      "removed": 3,
      "reactivated": 0,
      "active": 25574,
      "inactive": 43365,
      "primary": {
        "total": 56824,
        "added": 0,
        "removed": 2,
        "reactivated": 0,
        "active": 23127,
        "inactive": 38305
      }
    }
  ]
}
ParameterFormatDescription
fieldsstringComma-separated list of fields to show plus date and URL
limitintegerMaximum number of records to return (default: 10)
offsetintegerNumber of records to skip in the query
resultsOnlybooleanReturn only the results array/object (default: false)