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 code | Description |
---|---|
200 | Successful request and response. |
400 | Bad request. Something was missing or malformed in your request. |
401 | Access denied. Missing authentication token. |
403 | Access denied. Your access has expired or your membership role does not include this access. |
429 | Too many requests. You've exceeded the rate-limit on this API. |
5xx | Server 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.
Input | Example output | Description |
---|---|---|
YY | 21 | 2-digit year |
YYYY | 2021 | 4-digit year |
M | 1-12 | Month |
MM | 01–12 | 2-digit month |
MMM | Jan–Dec | Abbreviated name of the month |
MMMM | January–December | Full name of the month |
D | 1–31 | Day of the month |
DD | 01–31 | 2-digit day of the month |
Z | -05:00 | Offset from UTC |
ZZ | -0500 | 2-digit compact offset from UTC |
A | AM PM | Post or ante meridiem, uppercase |
a | am pm | Post or ante meridiem, lowercase |
Do | 1st … 31st | Day 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" } } }
Parameter | Format | Description |
---|---|---|
date | YYYY-MM-DD | A specific date (in UTC) to show data from |
resultsOnly | boolean | Return 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" } ] }
Parameter | Format | Description |
---|---|---|
date | YYYY-MM-DD | A specific individual date to show data for |
from | YYYY-MM-DD | Show all records starting from and including this date |
to | YYYY-MM-DD | Show all records until but not including this date |
dateFormat | string | Add a formattedDate field in the date format you specify |
limit | integer | Maximum number of records to return (default: 10 ) |
offset | integer | Number of records to skip in the query |
fields | string | Comma-separated list of fields to show plus date and URL |
order | asc or desc | Date-based sorting order (default: desc ) |
resultsOnly | boolean | Return 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" } ] }
Field | Format | Description |
---|---|---|
id | integer | Apple Podcasts ID number |
title | string | Case-insensitive, URL-encoded podcast title |
artist | string | Case-insensitive, URL-encoded podcast artist |
feedUrl | string | Case-sensitive podcast RSS URL |
resultsOnly | boolean | Return 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)" } ] }
Field | Format | Description |
---|---|---|
id | integer | Apple Podcasts ID number |
title | string or regex | Case-insensitive or regular expression podcast title, escape characters with \\ |
artist | string or regex | Case-insensitive or regular expression podcast artist, escape characters with \\ |
feedUrl | string | Case-sensitive podcast RSS URL |
resultsOnly | boolean | Return 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?" } ] }
Parameter | Format | Description |
---|---|---|
date | YYYY-MM-DD | A specific date to show data from |
feedUrl | string | Case-insensitive string to filter results by (e.g., libsyn ) |
resultsOnly | boolean | Return 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/" } ] }
Parameter | Format | Description |
---|---|---|
date | YYYY-MM-DD | A specific date to show data from |
feedUrl | string | Case-insensitive string to filter results by (e.g., libsyn ) |
resultsOnly | boolean | Return 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" } ] }
Parameter | Format | Description |
---|---|---|
date | YYYY-MM-DD | A specific date to show data from |
feedUrl | string | Case-insensitive string to filter results by (e.g., libsyn ) |
resultsOnly | boolean | Return 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" } } }
Parameter | Format | Description |
---|---|---|
fields | string | Comma-separated list of fields to show plus date and URL |
resultsOnly | boolean | Return only the results array/object (default: false ) |
flatten | boolean | Flattens each result a single depth; e.g., primary.total becomes primary total . (default: false ) |
parentsOnly | boolean | Filters 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 } } ] }
Parameter | Format | Description |
---|---|---|
fields | string | Comma-separated list of fields to show plus date and URL |
limit | integer | Maximum number of records to return (default: 10 ) |
offset | integer | Number of records to skip in the query |
resultsOnly | boolean | Return only the results array/object (default: false ) |