{
"openapi": "3.0.2",
"info": {
"version": "1.12.0",
"title": "PodcastIndex.org API",
"termsOfService": "https://github.com/Podcastindex-org/legal/blob/main/TermsOfService.md",
"contact": {
"email": "info@podcastindex.org",
"url": "https://podcastindex.org/"
},
"license": {
"name": "MIT",
"url": "https://github.com/Podcastindex-org/docs-api/blob/master/LICENSE"
},
"x-logo": {
"url": "logo.svg",
"href": "/"
},
"description": "Download the openapi spec in [json](pi_api.json) or [yaml](pi_api.yaml) format.\n\n# Overview\n\nThe Podcast Index (Podcast Index LLC) is a software developer focused partnership that provides tools and data to\nanyone who aspires to create new and exciting Podcast experiences without the heavy lifting of indexing,\naggregation and data management.\n\n# Example Code\n\nUsers have provided example code for working the API in the following languages:\n\n - [AWS Lambda - python](https://github.com/tbowers/python-podcastindex-org-lambda)\n - [Bash](https://github.com/suorcd/Bash-podcastindex-org-example)\n - [C#](https://github.com/ComicStrip/csharp-podcastindex-org-example)\n - [Elisp](https://github.com/sabexx/elisp-example)\n - [Flutter/Dart](https://github.com/crediblecreative/flutter-dart-podcastindex-org-example)\n - [Go](https://github.com/ComicStrip/Go-podcastindex-org-example)\n - [Go](https://github.com/kilobit/podcast-index-client)\n - [Java](https://github.com/ComicStrip/Java-podcastindex-org-example)\n - [Java](https://github.com/stucoates/PodcastIndexJavaClient)\n - [Node.js](https://github.com/ComicStrip/node.js-podcastindex-org-example)\n - [PHP](https://github.com/Podcastindex-org/example-code)\n - [Python](https://github.com/tbowers/python-podcastindex-org-example)\n - [Swift](https://github.com/ComicStrip/Swift-podcastindex-org-example)\n - ... [More](https://github.com/Podcastindex-org-Examples)\n\nDon't see your desired language, create an example repo and create a\n[Pull Request](https://github.com/Podcastindex-org/docs-api/pulls) with a link to your example code project!\n\n# Libraries\n\nUser created libraries for working with the API:\n\n - Java\n - [podcast4j](https://github.com/yusufyilmazfr/podcast4j)\n - .NET\n - [PodcastIndexSharp](https://www.nuget.org/packages/PodcastIndexSharp)\n - Node.js/npm/yarn\n - [podcast-index-api](https://www.npmjs.com/package/podcast-index-api)\n - [podcastdx-client](https://www.npmjs.com/package/podcastdx-client)\n - PHP\n - [podcastindex-php](https://github.com/LowSociety/podcastindex-php)\n - Python/pip\n - [python-podcastindex](https://pypi.org/project/python-podcastindex/)\n - R\n - [podindexr](https://github.com/rpodcast/podindexr)\n - Ruby\n - [podcast-index](https://github.com/jasonyork/podcast-index)\n - Swift\n - [PodcastIndexKit](https://github.com/SparrowTek/PodcastIndexKit)\n\nAre we missing a library? Did you create one for a different language? Create a\n[Pull Request](https://github.com/Podcastindex-org/docs-api/pulls) with a link to the new library!\n\n# Postman\n\nA collection file for use in the [Postman](https://www.postman.com/) application is available for this API.\n\n 1. Download the contents of the [Postman Docs](https://github.com/Podcastindex-org/docs-api/tree/master/Postman%20Docs) folder.\n 2. Import the `PodcastIndex.postman_collection.json` collection to Postman\n 3. Import the `PodcastIndexOrgEnvironment.postman_environment.json` to Postman\n 4. Click \"Environments\" on the left sidebar\n 5. Select the checkbox next to the PodcastIndexOrgEnvironment entry\n 6. Set `AuthKey` and `SeceretKey` values under the \"Current Value\" column using your API information \n 7. Click \"Collections\" from the sidebar\n 8. Select PodcastIndex\n 9. Select and run the endpoint to test\n\n# Contributing\n\nThe source for this API documentation is available at\n[https://github.com/Podcastindex-org/docs-api](https://github.com/Podcastindex-org/docs-api).\nSubmit an Issue or create a Pull Request.\n\n# Authentication Details\n\nSending an API request is easy. We use an Amazon-style request authorization token to secure each request.\n\n\nRegister for a free API key at https://api.podcastindex.org/\n\n\nThese headers parameters are required for each request: `User-Agent`, `X-Auth-Date`, `X-Auth-Key`, `Authorization`\n\n\nSee [Authentication](#auth) for description of parameters.\n\n# Legal\n\nLegal\n\n - [Privacy Policy](https://github.com/Podcastindex-org/legal/blob/main/PrivacyPolicy.md)\n - [Terms of Service](https://github.com/Podcastindex-org/legal/blob/main/TermsOfService.md)\n - [License](https://github.com/Podcastindex-org/docs-api/blob/master/LICENSE)\n"
},
"servers": [
{
"url": "https://api.podcastindex.org/api/1.0"
}
],
"tags": [
{
"name": "Search",
"description": "Search the index\n"
},
{
"name": "Podcasts",
"description": "Find details about a Podcast and its feed.\n"
},
{
"name": "Episodes",
"description": "Find details about one or more episodes of a podcast or podcasts.\n"
},
{
"name": "Recent",
"description": "Find recent additions to the index\n"
},
{
"name": "Value",
"description": "The podcast's \"Value for Value\" information\n"
},
{
"name": "Stats",
"description": "Statistics for items in the Podcast Index\n"
},
{
"name": "Categories",
"description": "Categories used by the Podcast Index\n"
},
{
"name": "Hub",
"description": "Notify the index that a feed has changed\n"
},
{
"name": "Add",
"description": "Add new podcast feeds to the index.\n\n\n**NOTE**: To add to the index, the API Key must have write or publisher permissions.\n"
}
],
"paths": {
"/search": {
"get": {
"tags": [
"Apple Replacement"
],
"summary": "Search",
"description": "Replaces the Apple search API but returns data from the Podcast Index database.\n\n\nNote: No API key needed for this endpoint.\n\n\nExample:\n\n - Apple: https://itunes.apple.com/search?media=podcast&entity=podcast&term=batman\n - PodcastIndex: https://api.podcastindex.org/search?term=batman\n",
"operationId": "search",
"security": [],
"servers": [
{
"url": "https://api.podcastindex.org",
"description": "URL for Apple Replacement endpoints"
}
],
"parameters": [
{
"$ref": "#/components/parameters/term_itunes"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/itunes_replacement"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/lookup": {
"get": {
"tags": [
"Apple Replacement"
],
"summary": "Lookup",
"description": "Replaces the Apple podcast lookup API but returns data from the Podcast Index database.\n\n\nNote: No API key needed for this endpoint.\n\n\nExample:\n\n - Apple: https://itunes.apple.com/lookup?media=podcast&entity=podcast&id=1636765656\n - PodcastIndex: https://api.podcastindex.org/lookup?entity=podcast&id=1636765656\n",
"operationId": "lookup",
"security": [],
"servers": [
{
"url": "https://api.podcastindex.org",
"description": "URL for Apple Replacement endpoints"
}
],
"parameters": [
{
"$ref": "#/components/parameters/id_feed_podcast_itunes"
},
{
"$ref": "#/components/parameters/entity"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/itunes_replacement"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/search/byterm": {
"get": {
"tags": [
"Search"
],
"summary": "Search Podcasts",
"description": "This call returns all of the feeds that match the search terms in the `title`, `author` or `owner` of the feed.\n\n\nExample: https://api.podcastindex.org/api/1.0/search/byterm?q=batman+university&pretty\n",
"operationId": "search/byterm",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/q"
},
{
"$ref": "#/components/parameters/val"
},
{
"$ref": "#/components/parameters/max"
},
{
"$ref": "#/components/parameters/aponly"
},
{
"$ref": "#/components/parameters/clean"
},
{
"$ref": "#/components/parameters/similar"
},
{
"$ref": "#/components/parameters/fulltext"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/search_byterm"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
},
"x-codeSamples": [
{
"lang": "PHP",
"source": "//Required values\n$apiKey = \"UXKCGDSYGUUEVQJSYDZH\";\n$apiSecret = \"yzJe2eE7XV-3eY576dyRZ6wXyAbndh6LUrCZ8KN|\";\n$apiHeaderTime = time();\n\n//Hash them to get the Authorization token\n$hash = sha1($apiKey.$apiSecret.$apiHeaderTime);\n\n//Set the required headers\n$headers = [\n \"User-Agent: SuperPodcastPlayer/1.3\",\n \"X-Auth-Key: $apiKey\",\n \"X-Auth-Date: $apiHeaderTime\",\n \"Authorization: $hash\"\n];\n\n//Make the request to an API endpoint\n$ch = curl_init();\ncurl_setopt($ch, CURLOPT_URL,\"https://api.podcastindex.org/api/1.0/search/byterm?q=bastiat\");\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_HTTPHEADER, $headers);\n\n//Collect and show the results\n$response = curl_exec ($ch);\ncurl_close ($ch);\necho print_r(json_decode($response), TRUE);\n"
},
{
"lang": "C#",
"source": "//Required values\nstring apiKey = \"UXKCGDSYGUUEVQJSYDZH\";\nstring apiSecret = \"yzJe2eE7XV-3eY576dyRZ6wXyAbndh6LUrCZ8KN|\";\nTimeSpan t = DateTime.UtcNow - new DateTime(1970, 1, 1);\nint apiHeaderTime = (int)t.TotalSeconds;\n\n//Hash them to get the Authorization token\nstring hash = \"\";\nusing (SHA1Managed sha1 = new SHA1Managed())\n{\n var hashed = sha1.ComputeHash(Encoding.UTF8.GetBytes(apiKey + apiSecret + apiHeaderTime));\n var sb = new StringBuilder(hashed.Length * 2);\n\n foreach (byte b in hashed)\n {\n // can be \"x2\" if you want lowercase\n sb.Append(b.ToString(\"x2\"));\n }\n\n hash = sb.ToString();\n}\n\n//Create the web request and add the required headers\nHttpWebRequest request = (HttpWebRequest)WebRequest.Create(\"https://api.podcastindex.org/api/1.0/search/byterm?q=bastiat\");\nrequest.Headers.Add(\"User-Agent\", \"SuperPodcastPlayer/1.3\");\nrequest.Headers.Add(\"X-Auth-Date\", apiHeaderTime.ToString());\nrequest.Headers.Add(\"X-Auth-Key\", apiKey);\nrequest.Headers.Add(\"Authorization\", hash);\n\n//Send the request and collect/show the results\ntry\n{\n WebResponse webResponse2 = request.GetResponse();\n Stream stream2 = webResponse2.GetResponseStream();\n StreamReader reader2 = new StreamReader(stream2);\n\n Console.WriteLine(reader2.ReadToEnd());\n\n webResponse2.Close();\n}\ncatch (Exception e)\n{\n Console.WriteLine(\"Error.\");\n}\n"
},
{
"lang": "Swift",
"source": "import Foundation\nimport CommonCrypto\n\nextension String {\n func sha1() -> String {\n let data = Data(self.utf8)\n var digest = [UInt8](repeating: 0, count:Int(CC_SHA1_DIGEST_LENGTH))\n data.withUnsafeBytes {\n _ = CC_SHA1($0.baseAddress, CC_LONG(data.count), &digest)\n }\n let hexBytes = digest.map { String(format: \"%02hhx\", $0) }\n return hexBytes.joined()\n }\n}\n\nlet apiKey = \"UXKCGDSYGUUEVQJSYDZH\"\nlet apiSecret = \"yzJe2eE7XV-3eY576dyRZ6wXyAbndh6LUrCZ8KN|\"\nlet apiHeaderTime = String(Int(Date().timeIntervalSince1970))\nlet hash = (apiKey + apiSecret + apiHeaderTime).sha1()\n\nvar semaphore = DispatchSemaphore (value: 0)\nvar request = URLRequest(url: URL(string: \"https://api.podcastindex.org/api/1.0/search/byterm?q=bastiat\")!,timeoutInterval: Double.infinity)\nrequest.addValue(\"SuperPodcastPlayer/1.3\", forHTTPHeaderField: \"User-Agent\")\nrequest.addValue(apiKey, forHTTPHeaderField: \"X-Auth-Key\")\nrequest.addValue(apiHeaderTime, forHTTPHeaderField: \"X-Auth-Date\")\nrequest.addValue(hash, forHTTPHeaderField: \"Authorization\")\n\nrequest.httpMethod = \"GET\"\n\nlet task = URLSession.shared.dataTask(with: request) { data, response, error in\n guard let data = data else {\n print(String(describing: error))\n return\n }\n print(String(data: data, encoding: .utf8)!)\n semaphore.signal()\n}\n\ntask.resume()\nsemaphore.wait()\n"
}
]
}
},
"/search/bytitle": {
"get": {
"tags": [
"Search"
],
"summary": "Search Podcasts by Title",
"description": "This call returns all of the feeds where the `title` of the feed matches the search term (ignores case).\n\n\nExample \"everything everywhere daily\" will match the podcast\n[Everything Everywhere Daily](https://podcastindex.org/podcast/437685) by \"everything everywhere\" will not.\n\n\nExample: https://api.podcastindex.org/api/1.0/search/bytitle?q=everything+everywhere+daily&pretty\n",
"operationId": "search/bytitle",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/q"
},
{
"$ref": "#/components/parameters/val"
},
{
"$ref": "#/components/parameters/max"
},
{
"$ref": "#/components/parameters/clean"
},
{
"$ref": "#/components/parameters/fulltext"
},
{
"$ref": "#/components/parameters/pretty"
},
{
"$ref": "#/components/parameters/similar"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/search_byterm"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/search/byperson": {
"get": {
"tags": [
"Search"
],
"summary": "Search Episodes by Person",
"description": "This call returns all of the episodes where the specified person is mentioned.\n\n\nIt searches the following fields:\n\n - Person tags\n - Episode title\n - Episode description\n - Feed owner\n - Feed author\n\n\nExamples:\n\n - https://api.podcastindex.org/api/1.0/search/byperson?q=adam%20curry&pretty\n - https://api.podcastindex.org/api/1.0/search/byperson?q=Martin+Mouritzen&pretty\n - https://api.podcastindex.org/api/1.0/search/byperson?q=Klaus+Schwab&pretty\n",
"operationId": "search/byperson",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/q_person"
},
{
"$ref": "#/components/parameters/max"
},
{
"$ref": "#/components/parameters/fulltext"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/search_byperson"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/search/music/byterm": {
"get": {
"tags": [
"Search"
],
"summary": "Search Music Podcasts",
"description": "This call returns all of the feeds that match the search terms in the `title`, `author` or `owner` of the \nwhere the [medium](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#medium) is `music`.\n\n\nExample: https://api.podcastindex.org/api/1.0/search/music/byterm?q=able+kirby&pretty\n",
"operationId": "search/music/byterm",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/q"
},
{
"$ref": "#/components/parameters/val"
},
{
"$ref": "#/components/parameters/aponly"
},
{
"$ref": "#/components/parameters/max"
},
{
"$ref": "#/components/parameters/clean"
},
{
"$ref": "#/components/parameters/fulltext"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/search_byterm"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/podcasts/byfeedid": {
"get": {
"tags": [
"Podcasts"
],
"summary": "By Feed ID",
"description": "This call returns everything we know about the feed from the PodcastIndex ID\n\n\nExamples:\n\n - https://api.podcastindex.org/api/1.0/podcasts/byfeedid?id=75075&pretty\n - Includes `value` and `funding`: https://api.podcastindex.org/api/1.0/podcasts/byfeedid?id=169991&pretty\n",
"operationId": "podcasts/byfeedid",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/id_feed_podcast_pi"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/podcasts_byfeedid"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/podcasts/byfeedurl": {
"get": {
"tags": [
"Podcasts"
],
"summary": "By Feed URL",
"description": "This call returns everything we know about the feed from the feed URL\n\n\nExamples:\n\n - https://api.podcastindex.org/api/1.0/podcasts/byfeedurl?url=https://feeds.theincomparable.com/batmanuniversity&pretty\n - Includes `value` and `funding`: https://api.podcastindex.org/api/1.0/podcasts/byfeedurl?url=https://engineered.network/pragmatic/feed/index.xml&pretty\n",
"operationId": "podcasts/byfeedurl",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/url"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/podcasts_byfeedurl"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/podcasts/byitunesid": {
"get": {
"tags": [
"Podcasts"
],
"summary": "By iTunes ID",
"description": "This call returns everything we know about the feed from the iTunes ID\n\n\nExample: https://api.podcastindex.org/api/1.0/podcasts/byitunesid?id=1441923632&pretty\n",
"operationId": "podcasts/byitunesid",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/id_feed_podcast_itunes"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/podcasts_byitunesid"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/podcasts/byguid": {
"get": {
"tags": [
"Podcasts"
],
"summary": "By GUID",
"description": "This call returns everything we know about the feed from the feed's GUID.\n\n\nThe GUID is a unique, global identifier for the podcast. See the namespace spec for\n[guid](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#guid) for details.\n\n\nExamples:\n\n - https://api.podcastindex.org/api/1.0/podcasts/byguid?guid=9b024349-ccf0-5f69-a609-6b82873eab3c&pretty\n - Includes `value` and `funding`: https://api.podcastindex.org/api/1.0/podcasts/byguid?guid=9b024349-ccf0-5f69-a609-6b82873eab3c&pretty\n",
"operationId": "podcasts/byguid",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/guid_feed_podcast"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/podcasts_byguid"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/podcasts/bytag": {
"get": {
"tags": [
"Podcasts"
],
"summary": "By Tag",
"description": "This call returns all feeds that support the specified\n[podcast namespace](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md) tag.\n\n\nThe only supported tags are:\n - `podcast:value` using the `podcast-value` parameter\n - `podcast:valueTimeSplit` using the `podcast-valueTimeSplit` parameter\n\n\nOnly the `podcast-value` or `podcast-valueTimeSplit` parameter should be used. If multiple are specified, the\nfirst parameter is used and the others are ignored.\n\n\nWhen called without a `start_at` value, the top 500 feeds sorted by popularity are returned in descending order.\n\n\nWhen called with a `start_at` value, the feeds are returned sorted by the `feedId` starting with the specified value\nup to the max number of feeds to return. The `nextStartAt` specifies the value to pass to the next `start_at`.\nRepeat this sequence until no items are returned.\n\n\nExamples:\n - https://api.podcastindex.org/api/1.0/podcasts/bytag?podcast-value&max=200&pretty\n - https://api.podcastindex.org/api/1.0/podcasts/bytag?podcast-value&max=200&start_at=1&pretty\n - https://api.podcastindex.org/api/1.0/podcasts/bytag?podcast-valueTimeSplit&pretty\n",
"operationId": "podcasts/bytag",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/podcast-value"
},
{
"$ref": "#/components/parameters/podcast-valueTimeSplit"
},
{
"$ref": "#/components/parameters/max_5000"
},
{
"$ref": "#/components/parameters/start_at"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/podcasts_bytag"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/podcasts/bymedium": {
"get": {
"tags": [
"Podcasts"
],
"summary": "By Medium",
"description": "This call returns all feeds marked with the specified\n[medium](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#medium) tag value.\n\n\nExample: https://api.podcastindex.org/api/1.0/podcasts/bymedium?medium=music&pretty\n",
"operationId": "podcasts/bymedium",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/medium"
},
{
"$ref": "#/components/parameters/max"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/bymedium"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/podcasts/trending": {
"get": {
"tags": [
"Podcasts"
],
"summary": "Trending",
"description": "This call returns the podcasts/feeds that in the index that are trending.\n\n\nExample: https://api.podcastindex.org/api/1.0/podcasts/trending?pretty\n",
"operationId": "podcasts/trending",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/max"
},
{
"$ref": "#/components/parameters/since"
},
{
"$ref": "#/components/parameters/lang"
},
{
"$ref": "#/components/parameters/cat"
},
{
"$ref": "#/components/parameters/notcat"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/podcasts_trending"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/podcasts/dead": {
"get": {
"tags": [
"Podcasts"
],
"summary": "Dead",
"description": "This call returns all feeds that have been marked dead (`dead` == 1)\n\n\nDead feeds can also be accessed from object storage at https://public.podcastindex.org/podcastindex_dead_feeds.csv\n\n\nExample: https://api.podcastindex.org/api/1.0/podcasts/dead?pretty\n",
"operationId": "podcasts/dead",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/podcasts_dead"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/episodes/byfeedid": {
"get": {
"tags": [
"Episodes"
],
"summary": "By Feed ID",
"description": "This call returns all the episodes we know about for this feed from the PodcastIndex ID.\nEpisodes are in reverse chronological order.\n\n\nWhen using the `enclosure` parameter, only the episode matching the URL is returned.\n\n\nExamples:\n\n - https://api.podcastindex.org/api/1.0/episodes/byfeedid?id=75075&pretty\n - https://api.podcastindex.org/api/1.0/episodes/byfeedid?id=41504,920666&pretty\n - Includes `persons`: https://api.podcastindex.org/api/1.0/episodes/byfeedid?id=169991&pretty\n - Includes `value`: https://api.podcastindex.org/api/1.0/episodes/byfeedid?id=4058673&pretty\n - Using `enclosure`: https://api.podcastindex.org/api/1.0/episodes/byfeedid?id=41504&enclosure=https://op3.dev/e/mp3s.nashownotes.com/NA-1551-2023-04-30-Final.mp3&pretty\n",
"operationId": "episodes/byfeedid",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/id_feed_episode_pi"
},
{
"$ref": "#/components/parameters/since"
},
{
"$ref": "#/components/parameters/max"
},
{
"$ref": "#/components/parameters/enclosure"
},
{
"$ref": "#/components/parameters/fulltext"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/episodes_byfeedid"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/episodes/byfeedurl": {
"get": {
"tags": [
"Episodes"
],
"summary": "By Feed URL",
"description": "This call returns all the episodes we know about for this feed from the feed URL.\nEpisodes are in reverse chronological order.\n\n\nExamples:\n\n - https://api.podcastindex.org/api/1.0/episodes/byfeedurl?url=https://feeds.theincomparable.com/batmanuniversity&pretty\n - Includes `persons`: https://api.podcastindex.org/api/1.0/episodes/byfeedurl?url=https://engineered.network/pragmatic/feed/index.xml&pretty\n - Includes `value`: https://api.podcastindex.org/api/1.0/episodes/byfeedurl?url=https://closing-the-loop.github.io/feed.xml&pretty\n",
"operationId": "episodes/byfeedurl",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/url"
},
{
"$ref": "#/components/parameters/since"
},
{
"$ref": "#/components/parameters/max"
},
{
"$ref": "#/components/parameters/fulltext"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/episodes_byfeedurl"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/episodes/bypodcastguid": {
"get": {
"tags": [
"Episodes"
],
"summary": "By Podcast GUID",
"description": "This call returns all the episodes we know about for this feed from the [Podcast GUID](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#guid).\nEpisodes are in reverse chronological order.\n\n\nExample: https://api.podcastindex.org/api/1.0/episodes/bypodcastguid?guid=856cd618-7f34-57ea-9b84-3600f1f65e7f&pretty\n",
"operationId": "episodes/bypodcastguid",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/guid_feed_podcast"
},
{
"$ref": "#/components/parameters/since"
},
{
"$ref": "#/components/parameters/max"
},
{
"$ref": "#/components/parameters/fulltext"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/episodes_byfeedurl"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/episodes/byitunesid": {
"get": {
"tags": [
"Episodes"
],
"summary": "By iTunes ID",
"description": "This call returns all the episodes we know about for this feed from the iTunes ID.\nEpisodes are in reverse chronological order.\n\n\nWhen using the `enclosure` parameter, only the episode matching the URL is returned.\n\n\nExamples:\n\n - https://api.podcastindex.org/api/1.0/episodes/byitunesid?id=1441923632&pretty\n - Using `enclosure`: https://api.podcastindex.org/api/1.0/episodes/byitunesid?id=269169796&enclosure=https://op3.dev/e/mp3s.nashownotes.com/NA-1551-2023-04-30-Final.mp3&pretty\n",
"operationId": "episodes/byitunesid",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/id_feed_podcast_itunes"
},
{
"$ref": "#/components/parameters/since"
},
{
"$ref": "#/components/parameters/max"
},
{
"$ref": "#/components/parameters/enclosure"
},
{
"$ref": "#/components/parameters/fulltext"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/episodes_byitunesid"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/episodes/byid": {
"get": {
"tags": [
"Episodes"
],
"summary": "By ID",
"description": "Get all the metadata for a single episode by passing its id.\n\n\nExample: https://api.podcastindex.org/api/1.0/episodes/byid?id=16795090&pretty\n",
"operationId": "episodes/byid",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/id_episode_pi"
},
{
"$ref": "#/components/parameters/fulltext"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/episodes_byid"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/episodes/byguid": {
"get": {
"tags": [
"Episodes"
],
"summary": "By GUID",
"description": "Get all the metadata for a single episode by passing its guid and the feed id or URL.\n\n\nThe `feedid`, `feedurl`, or `podcastguid` is required.\n\n\nExamples: \n\n - Search using Podcast Index feed ID: https://api.podcastindex.org/api/1.0/episodes/byguid?guid=PC2084&feedid=920666&pretty\n - Search using feed URL: https://api.podcastindex.org/api/1.0/episodes/byguid?guid=PC2084&feedurl=http://mp3s.nashownotes.com/pc20rss.xml&pretty\n",
"operationId": "episodes/byguid",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/guid_episode"
},
{
"$ref": "#/components/parameters/feedurl"
},
{
"$ref": "#/components/parameters/feedid"
},
{
"$ref": "#/components/parameters/podcastguid_optional"
},
{
"$ref": "#/components/parameters/fulltext"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/episodes_byguid"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/episodes/live": {
"get": {
"tags": [
"Episodes"
],
"summary": "Live",
"description": "Get all episodes that have been found in the [podcast:liveitem](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#live-item) from the feeds.\n\n\nExamples: \n\n - https://api.podcastindex.org/api/1.0/episodes/live?pretty\n",
"operationId": "episodes/live",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/max"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/episodes_live"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/episodes/random": {
"get": {
"tags": [
"Episodes"
],
"summary": "Random",
"description": "This call returns a random batch of episodes, in no specific order.\n\n\nExamples:\n\n - https://api.podcastindex.org/api/1.0/episodes/random?notcat=News,Religion&lang=en,es&pretty\n - https://api.podcastindex.org/api/1.0/episodes/random?max=2&pretty\n",
"operationId": "episodes/random",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/max_random"
},
{
"$ref": "#/components/parameters/lang"
},
{
"$ref": "#/components/parameters/cat"
},
{
"$ref": "#/components/parameters/notcat"
},
{
"$ref": "#/components/parameters/fulltext"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/episodes_random"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/recent/episodes": {
"get": {
"tags": [
"Recent"
],
"summary": "Episodes",
"description": "This call returns the most recent `max` number of episodes globally across the whole index,\nin reverse chronological order.\n\n\nExample: https://api.podcastindex.org/api/1.0/recent/episodes?max=7&pretty\n",
"operationId": "recent/episodes",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/max_recent_episodes"
},
{
"$ref": "#/components/parameters/excludeString"
},
{
"$ref": "#/components/parameters/before"
},
{
"$ref": "#/components/parameters/fulltext"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/recent_episodes"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/recent/feeds": {
"get": {
"tags": [
"Recent"
],
"summary": "Feeds",
"description": "This call returns the most recent `max` feeds, in reverse chronological order.\n\n\nExamples:\n\n - https://api.podcastindex.org/api/1.0/recent/feeds?pretty\n - https://api.podcastindex.org/api/1.0/recent/feeds?max=20&cat=102,health&lang=de,ja&pretty\n",
"operationId": "recent/feeds",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/max_recent_feeds"
},
{
"$ref": "#/components/parameters/since"
},
{
"$ref": "#/components/parameters/lang"
},
{
"$ref": "#/components/parameters/cat"
},
{
"$ref": "#/components/parameters/notcat"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/recent_feeds"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/recent/newfeeds": {
"get": {
"tags": [
"Recent"
],
"summary": "New Feeds",
"description": "This call returns every new feed added to the index over the past 24 hours in reverse chronological order.\n\n\nExamples:\n\n - https://api.podcastindex.org/api/1.0/recent/newfeeds?pretty\n - https://api.podcastindex.org/api/1.0/recent/newfeeds?pretty&since=1613805000\n - https://api.podcastindex.org/api/1.0/recent/newfeeds?feedid=2653471&pretty\n - https://api.podcastindex.org/api/1.0/recent/newfeeds?feedid=2653471&desc&pretty\n",
"operationId": "recent/newfeeds",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/max_recent_feeds"
},
{
"$ref": "#/components/parameters/since"
},
{
"$ref": "#/components/parameters/feedid_newfeeds"
},
{
"$ref": "#/components/parameters/desc"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/recent_newfeeds"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/recent/newvaluefeeds": {
"get": {
"tags": [
"Recent"
],
"summary": "New Value Feeds",
"description": "This call returns feeds that have added a `value` tag in reverse chronological order.\n\n\nExample: https://api.podcastindex.org/api/1.0/recent/newvaluefeeds?pretty\n",
"operationId": "recent/newvaluefeeds",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/max_recent_feeds"
},
{
"$ref": "#/components/parameters/since"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/recent_newvaluefeeds"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/recent/data": {
"get": {
"tags": [
"Recent"
],
"summary": "Recent Data",
"description": "This call returns every new feed and episode added to the index over the past 24 hours in reverse chronological order.\n\n\nThis is similar to `/recent/feeds` but uses the date the feed was found by the index rather than the feed's\ninternal timestamp.\n\n\nSimilar data can also be accessed using object storage root url https://tracking.podcastindex.org/current\n\n\nExamples:\n\n - https://api.podcastindex.org/api/1.0/recent/data?pretty\n - https://api.podcastindex.org/api/1.0/recent/data?pretty&max=10\n - https://api.podcastindex.org/api/1.0/recent/data?pretty&max=10&since=1671164867\n",
"operationId": "recent/data",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/max_recent_data"
},
{
"$ref": "#/components/parameters/since"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/recent_data"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/recent/soundbites": {
"get": {
"tags": [
"Recent"
],
"summary": "Soundbites",
"description": "This call returns the most recent `max` soundbites that the index has discovered.\n\n\nA soundbite consists of an enclosure url, a start time and a duration.\nIt is documented in the [podcast namespace](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#soundbite).\n\n\nExample: https://api.podcastindex.org/api/1.0/recent/soundbites?pretty\n",
"operationId": "recent/soundbites",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/max_recent_soundbites"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/recent_soundbites"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/value/byfeedid": {
"get": {
"tags": [
"Value"
],
"summary": "By Feed ID",
"description": "This call returns the information for supporting the podcast via one of the \"Value for Value\" methods from the\nPodcastIndex ID.\n\n\nAdditionally, the value block data can be accessed using static JSON files (updated every 15 minutes).\n\n - Feeds: https://tracking.podcastindex.org/feedValueBlocks.json\n - Episodes: https://tracking.podcastindex.org/episodeValueBlocks.json\n\n\nNote: No API key needed for this endpoint.\n\n\nExamples:\n\n - https://api.podcastindex.org/api/1.0/value/byfeedid?id=920666&pretty\n - https://api.podcastindex.org/api/1.0/value/byfeedid?id=779873&pretty\n",
"operationId": "value/byfeedid",
"security": [],
"parameters": [
{
"$ref": "#/components/parameters/id_feed_episode_pi_single"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/value_byfeedid"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/value/byfeedurl": {
"get": {
"tags": [
"Value"
],
"summary": "By Feed URL",
"description": "This call returns the information for supporting the podcast via one of the \"Value for Value\" methods from feed URL.\n\n\nAdditionally, the value block data can be accessed using static JSON files (updated every 15 minutes).\n\n - Feeds: https://tracking.podcastindex.org/feedValueBlocks.json\n - Episodes: https://tracking.podcastindex.org/episodeValueBlocks.json\n\n\nNote: No API key needed for this endpoint.\n\n\nExamples:\n\n - https://api.podcastindex.org/api/1.0/value/byfeedurl?url=https://mp3s.nashownotes.com/pc20rss.xml&pretty\n - https://api.podcastindex.org/api/1.0/value/byfeedurl?url=https://lespoesiesdheloise.fr/@heloise/feed.xml&pretty\n",
"operationId": "value/byfeedurl",
"security": [],
"parameters": [
{
"$ref": "#/components/parameters/url"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/value_byfeedurl"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/value/bypodcastguid": {
"get": {
"tags": [
"Value"
],
"summary": "By Feed GUID",
"description": "This call returns the information for supporting the podcast via one of the \"Value for Value\" methods from podcast GUID.\n\n\nNote: No API key needed for this endpoint.\n\n\nExample: https://api.podcastindex.org/api/1.0/value/bypodcastguid?guid=917393e3-1b1e-5cef-ace4-edaa54e1f810&pretty\n",
"operationId": "value/bypodcastguid",
"security": [],
"parameters": [
{
"$ref": "#/components/parameters/guid_feed_podcast"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/value_bypodcastguid"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/value/byepisodeguid": {
"get": {
"tags": [
"Value"
],
"summary": "By Episode GUID",
"description": "This call returns the information for supporting the podcast episode via one of the \"Value for Value\" methods from\npodcast GUID and the episode GUID.\n\n\nThe `podcastguid` is the GUID from the `podcast:guid` tag in the feed. This value is a unique, global identifier\nfor the podcast. See the namespace spec for\n[guid](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#guid) for details.\n\n\nThe `episodeguid` is the unique guid specified for the `- ` in the feed but may not be globally unique.\n\n\nNote: No API key needed for this endpoint.\n\n\nExamples:\n\n - https://api.podcastindex.org/api/1.0/value/byepisodeguid?podcastguid=917393e3-1b1e-5cef-ace4-edaa54e1f810&episodeguid=PC20143&pretty\n - https://api.podcastindex.org/api/1.0/value/byepisodeguid?podcastguid=c73b1a23-1c28-5edb-94c3-10d1745d0877&episodeguid=bdea6759-a7b6-4c0d-9d1e-acca3133f4a9&pretty\n",
"operationId": "value/byepisodeguid",
"security": [],
"parameters": [
{
"$ref": "#/components/parameters/podcastguid"
},
{
"$ref": "#/components/parameters/episodeguid"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/value_byepisodeguid"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/value/batch/byepisodeguid": {
"post": {
"tags": [
"Value"
],
"summary": "Batch By Episode GUID",
"description": "This call returns the information for supporting the podcast episode via one of the \"Value for Value\" methods from\na JSON object containing one or more podcast GUID and one or more episode GUID for the podcast.\n\n\nThe JSON object key shall be the `podcastguid` from the `podcast:guid` tag in the feed.\nThis value is a unique, global identifier for the podcast. See the namespace spec for\n[guid](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#guid) for details.\n\n\nThe value of the `podcastguid` shall be an array of `episodeguid` values.\nThis is the unique guid specified for the `
- ` in the feed but may not be globally unique.\n\n\nNote: No API key needed for this endpoint.\n",
"operationId": "value/batch/byepisodeguid",
"security": [],
"parameters": [
{
"$ref": "#/components/parameters/pretty"
}
],
"requestBody": {
"description": "Get episode value data",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/value_batch_byepisodeguid"
}
}
}
},
"responses": {
"200": {
"$ref": "#/components/responses/value_batch_byepisodeguid"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/stats/current": {
"get": {
"tags": [
"Stats"
],
"summary": "Current",
"description": "Return the most recent index statistics.\n\n\nHourly statistics can also be access at https://stats.podcastindex.org/daily_counts.json\n\n\nExample: https://api.podcastindex.org/api/1.0/stats/current?pretty\n",
"operationId": "stats/current",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/stats_current"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/categories/list": {
"get": {
"tags": [
"Categories"
],
"summary": "List",
"description": "Return all the possible categories supported by the index.\n\n\nExample: https://api.podcastindex.org/api/1.0/categories/list?pretty\n",
"operationId": "categories/list",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/categories_list"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/hub/pubnotify": {
"get": {
"tags": [
"Hub"
],
"summary": "Pub Notify",
"description": "Notify the index that a feed has changed\n\n\nNote: No API key needed for this endpoint.\n\n\nExamples:\n\n - https://api.podcastindex.org/api/1.0/hub/pubnotify?id=920666&pretty\n - https://api.podcastindex.org/api/1.0/hub/pubnotify?url=https://feeds.theincomparable.com/batmanuniversity&pretty\n",
"operationId": "hub/pubnotify",
"security": [],
"parameters": [
{
"$ref": "#/components/parameters/id_feed_podcast_pi_pubnotify"
},
{
"$ref": "#/components/parameters/url_pubnotify"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/hub_pubnotify"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/add/byfeedurl": {
"get": {
"tags": [
"Add"
],
"summary": "By Feed URL",
"description": "This call adds a podcast to the index using its feed url. If a feed already exists, you will get its existing Feed ID returned.\n\n\n**NOTE**: this endpoint requires an API Key with the **write** permission.\n\n\nExample: https://api.podcastindex.org/api/1.0/add/byfeedurl?url=https://feeds.theincomparable.com/batmanuniversity&pretty\n",
"operationId": "add/byfeedurl:get",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/url"
},
{
"$ref": "#/components/parameters/chash"
},
{
"$ref": "#/components/parameters/itunesid"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/add_byfeedurl"
},
"302": {
"$ref": "#/components/responses/add_byfeedurl"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
},
"post": {
"tags": [
"Add"
],
"summary": "By Feed URL",
"description": "This call adds a podcast to the index using its feed url. If a feed already exists, you will get its existing Feed ID returned.\n\n\n**NOTE**: this endpoint requires an API Key with the **write** permission.\n\n\nExample: https://api.podcastindex.org/api/1.0/add/byfeedurl?url=https://feeds.theincomparable.com/batmanuniversity&pretty\n",
"operationId": "add/byfeedurl:post",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/url"
},
{
"$ref": "#/components/parameters/itunesid"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/add_byfeedurl"
},
"302": {
"$ref": "#/components/responses/add_byfeedurl"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
},
"/add/byitunesid": {
"get": {
"tags": [
"Add"
],
"summary": "By iTunes ID",
"description": "This call adds a podcast to the index using its iTunes ID. If a feed already exists, it will be noted in the response.\n\n\n**NOTE**: this endpoint requires an API Key with the **write** permission.\n\n\nExample: https://api.podcastindex.org/api/1.0/add/byitunesid?id=1441923632&pretty\n",
"operationId": "add/byitunesid:get",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/id_itunes_add"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/add_byitunesid"
},
"302": {
"$ref": "#/components/responses/add_byitunesid"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
},
"post": {
"tags": [
"Add"
],
"summary": "By iTunes ID",
"description": "This call adds a podcast to the index using its iTunes ID. If a feed already exists, it will be noted in the response.\n\n\n**NOTE**: this endpoint requires an API Key with the **write** permission.\n\n\nExample: https://api.podcastindex.org/api/1.0/add/byitunesid?id=1441923632&pretty\n",
"operationId": "add/byitunesid:post",
"security": [
{
"API-Key": [],
"User-Agent": [],
"Date": [],
"Authorization": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/id_itunes_add"
},
{
"$ref": "#/components/parameters/pretty"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/add_byitunesid"
},
"302": {
"$ref": "#/components/responses/add_byitunesid"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
}
}
}
}
},
"components": {
"securitySchemes": {
"User-Agent": {
"type": "apiKey",
"in": "header",
"name": "User-Agent",
"description": "Please identify the system/product you are using to make this request.\n\n\n*Example*: `SuperPodcastPlayer/1.3`\n"
},
"API-Key": {
"type": "apiKey",
"in": "header",
"name": "X-Auth-Key",
"description": "Your API key string\n\n\n*Example*: `UXKCGDSYGUUEVQJSYDZH`\n"
},
"Date": {
"type": "apiKey",
"in": "header",
"name": "X-Auth-Date",
"description": "The current UTC unix epoch time as a string. 3 minute window.\n\n\nThis value is an integer; round down if needed. The value shall not include a decimal point.\n\n\nValue generated should match the value shown on the website https://www.epochconverter.com/.\n\n\n*Example*: `1613713388`\n"
},
"Authorization": {
"type": "apiKey",
"in": "header",
"name": "Authorization",
"description": "A SHA-1 hash of the `X-Auth-Key`, the corresponding secret and the `X-Auth-Date` value concatenated as a string.\nThe resulting hash should be encoded as a hexadecimal value, two digits per byte, using lower case letters for\nthe hex digits \"a\" through \"f\".\n\n\nThe Authorization header is computed with something like this (pseudo-code):\n\n authHeader = sha1(apiKey+apiSecret+unixTime)\n\nExample value, uses example values of `X-Auth-Key` and `X-Auth-Date` and an api secret of\n`yzJe2eE7XV-3eY576dyRZ6wXyAbndh6LUrCZ8KN|`\n\n\n*Example*: `UXKCGDSYGUUEVQJSYDZH`\n"
}
},
"parameters": {
"term_itunes": {
"name": "term",
"in": "query",
"description": "The term to search for\n",
"required": true,
"schema": {
"type": "string"
},
"example": "batman"
},
"pretty": {
"name": "pretty",
"in": "query",
"description": "If present, makes the output “pretty” to help with debugging.\n\n\nParameter shall not have a value\n",
"schema": {
"type": "boolean"
},
"allowEmptyValue": true
},
"id_feed_podcast_itunes": {
"name": "id",
"in": "query",
"description": "The iTunes Feed ID to search for\n",
"required": true,
"schema": {
"type": "integer"
},
"examples": {
"id_only": {
"value": 1441923632,
"description": "iTunes ID without any prefix"
},
"prefix": {
"value": "id1441923632",
"description": "iTunes ID with optional \"id\" prefix"
}
}
},
"entity": {
"name": "entity",
"in": "query",
"description": "The iTunes entity type to look in\n",
"required": true,
"schema": {
"type": "string",
"enum": [
"podcast"
]
},
"example": "podcast"
},
"q": {
"name": "q",
"in": "query",
"description": "Terms to search for\n",
"required": true,
"schema": {
"type": "string"
},
"example": "batman university"
},
"val": {
"name": "val",
"in": "query",
"description": "Only returns feeds with a `value` block of the specified type. Use `any` to return feeds with any `value` block.\n",
"schema": {
"type": "string",
"enum": [
"any",
"lightning",
"hive",
"webmonetization"
]
},
"example": ""
},
"max": {
"name": "max",
"in": "query",
"description": "Maximum number of results to return.\n",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"example": 10
},
"aponly": {
"name": "aponly",
"in": "query",
"description": "Only returns feeds with an `itunesId`.\n",
"schema": {
"type": "boolean"
},
"example": "true"
},
"clean": {
"name": "clean",
"in": "query",
"description": "If present, only non-explicit feeds will be returned.\nMeaning, feeds where the `itunes:explicit` flag is set to `false`.\n\n\nParameter shall not have a value\n",
"schema": {
"type": "boolean"
},
"allowEmptyValue": true
},
"similar": {
"name": "similar",
"in": "query",
"description": "If present, include similar matches in search response. For `search/byterm`, prioritizes title matches.\n",
"schema": {
"type": "boolean"
},
"allowEmptyValue": true
},
"fulltext": {
"name": "fulltext",
"in": "query",
"description": "If present, return the full text value of any text fields (ex: `description`).\nIf not provided, field value is truncated to 100 words.\n\n\nParameter shall not have a value\n",
"schema": {
"type": "boolean"
},
"allowEmptyValue": true
},
"q_person": {
"name": "q",
"in": "query",
"description": "Person search for\n",
"required": true,
"schema": {
"type": "string"
},
"example": "adam curry"
},
"id_feed_podcast_pi": {
"name": "id",
"in": "query",
"description": "The PodcastIndex Feed ID\n",
"required": true,
"schema": {
"type": "integer"
},
"example": 75075
},
"url": {
"name": "url",
"in": "query",
"description": "Podcast feed URL\n",
"required": true,
"allowReserved": true,
"schema": {
"type": "string"
},
"example": "https://feeds.theincomparable.com/batmanuniversity"
},
"guid_feed_podcast": {
"name": "guid",
"in": "query",
"description": "The GUID from the `podcast:guid` tag in the feed. This value is a unique, global identifier for the podcast.\n\n\nSee the namespace spec for\n[guid](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#guid) for details.\n",
"required": true,
"schema": {
"type": "string"
},
"example": "9b024349-ccf0-5f69-a609-6b82873eab3c"
},
"podcast-value": {
"name": "podcast-value",
"in": "query",
"description": "Get feeds supporting the [`podcast:value`](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#value) tag.\n\n\nParameter shall not have a value\n",
"schema": {
"type": "boolean"
},
"allowEmptyValue": true,
"required": false
},
"podcast-valueTimeSplit": {
"name": "podcast-valueTimeSplit",
"in": "query",
"description": "Get feeds supporting the [`podcast:valueTimeSplit`](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#value-time-split) tag.\n\n\nParameter shall not have a value\n",
"schema": {
"type": "boolean"
},
"allowEmptyValue": true,
"required": false
},
"max_5000": {
"name": "max",
"in": "query",
"description": "Maximum number of results to return.\n",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 5000
},
"example": 200
},
"start_at": {
"name": "start_at",
"in": "query",
"description": "Feed ID to start at for request\n",
"schema": {
"type": "integer",
"minimum": 1
},
"example": 1
},
"medium": {
"name": "medium",
"in": "query",
"description": "The medium value to search for.\n\n\nFull list of possible values documented in\n[medium](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#medium) tag spec.\n",
"schema": {
"type": "string",
"enum": [
"audiobook",
"blog",
"film",
"music",
"newsletter",
"podcast",
"video"
]
},
"example": "film"
},
"since": {
"name": "since",
"in": "query",
"description": "Return items since the specified epoch timestamp.\n",
"schema": {
"type": "integer"
},
"example": 1612125785
},
"lang": {
"name": "lang",
"in": "query",
"description": "Specifying a language code (like \"en\") will return only episodes having that specific language.\n\n\nYou can specify multiple languages by separating them with commas.\n\n\nIf you also want to return episodes that have no language given, use the token \"unknown\". (ex. en,es,ja,unknown).\n\n\nValues are not case sensitive.\n",
"schema": {
"type": "string"
},
"examples": {
"single": {
"value": "en",
"description": "Single ID"
},
"multiple": {
"value": "en,es",
"description": "Multiple IDs"
}
}
},
"cat": {
"name": "cat",
"in": "query",
"description": "Use this argument to specify that you **ONLY** want episodes with these categories in the results.\n\n\nSeparate multiple categories with commas.\n\n\nYou may specify either the Category ID and/or the Category Name.\n\n\nValues are not case sensitive.\n\n\nThe `cat` and `notcat` filters can be used together to fine tune a very specific result set.\n\n\nCategory numbers and names can be found in the\n[Podcast Namespace documentation](https://github.com/Podcastindex-org/podcast-namespace/blob/main/categories.json)\n",
"schema": {
"type": "string"
},
"examples": {
"single_name": {
"value": "News",
"description": "Single Category Name"
},
"single_id": {
"value": 65,
"description": "Single Category ID"
},
"multiple_name": {
"value": "News,Religion",
"description": "Multiple Category Names"
},
"multiple_id_": {
"value": "55,65",
"description": "Multiple Category IDs"
},
"multiple_mixed": {
"value": "News,65",
"description": "Multiple Categories Mixed Format"
}
}
},
"notcat": {
"name": "notcat",
"in": "query",
"description": "Use this argument to specify categories of episodes to **NOT** show in the results.\n\n\nSeparate multiple categories with commas.\n\n\nYou may specify either the Category ID and/or the Category Name.\n\n\nValues are not case sensitive.\n\n\nThe `cat` and `notcat` filters can be used together to fine tune a very specific result set.\n\n\nCategory numbers and names can be found in the\n[Podcast Namespace documentation](https://github.com/Podcastindex-org/podcast-namespace/blob/main/categories.json)\n",
"schema": {
"type": "string"
},
"examples": {
"single_name": {
"value": "News",
"description": "Single Category Name"
},
"single_id": {
"value": 65,
"description": "Single Category ID"
},
"multiple_name": {
"value": "News,Religion",
"description": "Multiple Category Names"
},
"multiple_id_": {
"value": "55,65",
"description": "Multiple Category IDs"
},
"multiple_mixed": {
"value": "News,65",
"description": "Multiple Categories Mixed Format"
}
}
},
"id_feed_episode_pi": {
"name": "id",
"in": "query",
"description": "The PodcastIndex Feed ID or IDs to search for.\n\n\nIf searching for multiple IDs, separate values with a comma. A maximum of 200 IDs can be provided.\n",
"required": true,
"schema": {
"type": "string"
},
"examples": {
"single": {
"value": 75075,
"description": "Single ID"
},
"multiple": {
"value": "41504,920666",
"description": "Multiple IDs"
}
}
},
"enclosure": {
"name": "enclosure",
"in": "query",
"description": "The URL for the episode enclosure to get the information for.\n",
"required": false,
"schema": {
"type": "string"
},
"example": "https://op3.dev/e/mp3s.nashownotes.com/NA-1551-2023-04-30-Final.mp3"
},
"id_episode_pi": {
"name": "id",
"in": "query",
"description": "The PodcastIndex episode ID to search for.\n",
"required": true,
"schema": {
"type": "integer"
},
"example": 16795089
},
"guid_episode": {
"name": "guid",
"in": "query",
"description": "The guid value for the episode to retrieve.\n\n\n This value is the value specified in the feed's `` field.\n",
"required": true,
"schema": {
"type": "string"
},
"example": "PC2084"
},
"feedurl": {
"name": "feedurl",
"in": "query",
"description": "The Feed URL\n",
"required": false,
"schema": {
"type": "string"
},
"example": "http://mp3s.nashownotes.com/pc20rss.xml"
},
"feedid": {
"name": "feedid",
"in": "query",
"description": "The PodcastIndex Feed ID\n",
"required": false,
"schema": {
"type": "string"
},
"example": "920666"
},
"podcastguid_optional": {
"name": "podcastguid",
"in": "query",
"description": "The GUID from the `podcast:guid` tag in the feed. This value is a unique, global identifier for the podcast.\n\n\nSee the namespace spec for\n[guid](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#guid) for details.\n",
"schema": {
"type": "string"
},
"example": "917393e3-1b1e-5cef-ace4-edaa54e1f810"
},
"max_random": {
"name": "max",
"in": "query",
"description": "Maximum number of results to return.\n",
"schema": {
"type": "integer",
"default": 1,
"minimum": 1,
"maximum": 1000
},
"example": 2
},
"max_recent_episodes": {
"name": "max",
"in": "query",
"description": "Maximum number of results to return.\n",
"schema": {
"type": "integer",
"default": 10,
"minimum": 1,
"maximum": 1000
},
"example": 7
},
"excludeString": {
"name": "excludeString",
"in": "query",
"description": "Any item containing this string will be discarded from the result set.\n\n\nThis may, in certain cases, reduce your set size below your `max` value.\n\n\nMatches against the `title` and URL properties.\n",
"schema": {
"type": "string"
},
"example": "religion"
},
"before": {
"name": "before",
"in": "query",
"description": "If you pass a PodcastIndex Episode ID, you will get recent episodes before that ID, allowing you to walk back\nthrough the episode history sequentially.\n",
"schema": {
"type": "integer"
},
"example": 1721351091
},
"max_recent_feeds": {
"name": "max",
"in": "query",
"description": "Maximum number of results to return.\n",
"schema": {
"type": "integer",
"default": 40,
"minimum": 1,
"maximum": 1000
},
"example": 20
},
"feedid_newfeeds": {
"name": "feedid",
"in": "query",
"description": "The PodcastIndex Feed ID to start from (or go to if `desc` specified).\n\n\nIf `since` parameter also specified, value of `since` is ignored.\n",
"required": false,
"schema": {
"type": "string"
},
"example": "2653471"
},
"desc": {
"name": "desc",
"in": "query",
"description": "If present, display feeds in descending order.\n\n\nOnly applicable when using `feedid` parameter.\n\n\nParameter shall not have a value\n",
"schema": {
"type": "boolean"
},
"allowEmptyValue": true
},
"max_recent_data": {
"name": "max",
"in": "query",
"description": "Maximum number of results to return (includes both `feeds` and `items`).\n",
"schema": {
"type": "integer",
"default": 1000,
"minimum": 1
},
"example": 200
},
"max_recent_soundbites": {
"name": "max",
"in": "query",
"description": "Maximum number of soundbites to return.\n",
"schema": {
"type": "integer",
"default": 60,
"minimum": 1,
"maximum": 1000
},
"example": 20
},
"id_feed_episode_pi_single": {
"name": "id",
"in": "query",
"description": "The PodcastIndex Feed ID to search for.\n",
"required": true,
"schema": {
"type": "integer"
},
"example": 75075
},
"podcastguid": {
"name": "podcastguid",
"in": "query",
"description": "The GUID from the `podcast:guid` tag in the feed. This value is a unique, global identifier for the podcast.\n\n\nSee the namespace spec for\n[guid](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#guid) for details.\n",
"required": true,
"schema": {
"type": "string"
},
"example": "917393e3-1b1e-5cef-ace4-edaa54e1f810"
},
"episodeguid": {
"name": "episodeguid",
"in": "query",
"description": "The guid specified by the `` in the episode `
- `.\n",
"required": true,
"schema": {
"type": "string"
},
"example": "PC20143"
},
"id_feed_podcast_pi_pubnotify": {
"name": "id",
"in": "query",
"description": "The PodcastIndex Feed ID\n\n\nThe `id` or the `url` is required.\n",
"required": false,
"schema": {
"type": "integer"
},
"example": 75075
},
"url_pubnotify": {
"name": "url",
"in": "query",
"description": "Podcast feed URL\n\n\nThe `id` or the `url` is required.\n",
"required": false,
"allowReserved": true,
"schema": {
"type": "string"
},
"example": "https://feeds.theincomparable.com/batmanuniversity"
},
"chash": {
"name": "chash",
"in": "query",
"description": "The md5 hash of the following feed items in hex format.\nIf known, allows for easier duplicate checking.\n\n - `title`\n - `link`\n - `feedLanguage`\n - `generator`\n - `author`\n - `ownerName`\n - `ownerEmail` (note: not exposed via the API)\n\nPseudo-code:\n\n chash = md5(title+link+feedLanguage+generator+author+ownerName+ownerEmail)\n",
"required": true,
"allowReserved": true,
"schema": {
"type": "string"
},
"example": "ad651c60eaaf3344595c0dd0bd787993"
},
"itunesid": {
"name": "itunesid",
"in": "query",
"description": "If this parameter is given, and the existing feed has no associated iTunes ID, it will be associated with this ID.\nIf an existing iTunes ID is already associated with this feed it will **NOT** be changed.\n",
"schema": {
"type": "integer"
},
"example": 1441923632
},
"id_itunes_add": {
"name": "id",
"in": "query",
"description": "The iTunes ID to add\n",
"schema": {
"type": "integer"
},
"example": 1441923632
}
},
"schemas": {
"resultCount": {
"description": "Number of items returned in request\n",
"type": "integer",
"example": 1
},
"author": {
"description": "The channel-level author element.\n\n\nUsually iTunes specific, but could be from another namespace if not present.\n",
"type": "string",
"example": "Tony Sindelar"
},
"artworkUrl": {
"description": "A URL for the artwork associated with the returned media type.\n\n\nNote: Apple returns the image sized to value in the field name but the PodcastIndex returns the original image\nspecified in the feed.\n",
"type": "string",
"example": "https://www.theincomparable.com/imgs/logos/logo-batmanuniversity-3x.jpg"
},
"title_feed_censored": {
"description": "The name of the feed.\n\n\nNote: Apple censors the name but PodcastIndex does not.\n",
"type": "string",
"example": "Batman University"
},
"price": {
"description": "Price of content. Will always return 0.\n",
"type": "integer",
"example": 0
},
"collectionId": {
"description": "The iTunes Feed ID\n",
"type": "integer",
"example": 1441923632
},
"title_feed": {
"description": "Name of the feed\n",
"type": "string",
"example": "Batman University"
},
"view_url": {
"description": "The URL for viewing the feed on the Apple website.\n",
"type": "string",
"example": "https://podcasts.apple.com/us/podcast/*/id1441923632?uo=4"
},
"url_feed": {
"description": "Current feed URL\n",
"type": "string",
"format": "URL",
"example": "https://feeds.theincomparable.com/batmanuniversity"
},
"itunes_results": {
"type": "object",
"properties": {
"artistName": {
"$ref": "#/components/schemas/author"
},
"artworkUrl100": {
"$ref": "#/components/schemas/artworkUrl"
},
"artworkUrl30": {
"$ref": "#/components/schemas/artworkUrl"
},
"artworkUrl60": {
"$ref": "#/components/schemas/artworkUrl"
},
"artworkUrl600": {
"$ref": "#/components/schemas/artworkUrl"
},
"collectionCensoredName": {
"$ref": "#/components/schemas/title_feed_censored"
},
"collectionExplicitness": {
"description": "Indicates if the feed is marked explicit.\n",
"type": "string",
"enum": [
"explicit",
"cleaned"
],
"example": "cleaned"
},
"collectionHdPrice": {
"$ref": "#/components/schemas/price"
},
"collectionId": {
"$ref": "#/components/schemas/collectionId"
},
"collectionName": {
"$ref": "#/components/schemas/title_feed"
},
"collectionPrice": {
"$ref": "#/components/schemas/price"
},
"collectionViewUrl": {
"$ref": "#/components/schemas/view_url"
},
"contentAdvisoryRating": {
"description": "Indicates if the feed is explicit or clean.\n",
"type": "string",
"enum": [
"Clean",
"Explicit"
],
"example": "Clean"
},
"country": {
"description": "The country the feed is from.\n\n\nNote: Right now, always returns \"USA\"\n",
"type": "string",
"example": "USA"
},
"currency": {
"description": "Currency `*Price` value is in.\n\n\nNote: will always return \"USD\"\n",
"type": "string",
"example": "USD"
},
"feedUrl": {
"$ref": "#/components/schemas/url_feed"
},
"genreIds": {
"description": "List of ids representing the names in the `genres`.\n\n\nValues are determined by the IDs used in the url of genres on https://podcasts.apple.com/us/genre/podcasts/id26\n",
"type": "array",
"items": {
"type": "integer"
},
"example": [
1309,
26
]
},
"genres": {
"description": "List of genre names.\n",
"type": "array",
"items": {
"type": "string"
},
"example": [
"TV & Film",
"Podcats"
]
},
"kind": {
"description": "The kind of content returned by the search request.\n\n\nNote: will always return \"podcast\"\n",
"type": "string",
"example": "podcast"
},
"primaryGenreName": {
"description": "The primary genre name.\n",
"type": "string",
"example": ""
},
"releaseDate": {
"description": "Date and time of request\n",
"type": "string",
"example": "2022-10-03T02:17:03-0500"
},
"trackCensoredName": {
"$ref": "#/components/schemas/title_feed_censored"
},
"trackCount": {
"description": "Number of episodes in feed\n",
"type": "integer",
"example": 12
},
"trackExplicitness": {
"description": "Indicates if the episode is marked explicit.\n",
"type": "string",
"enum": [
"explicit",
"cleaned"
],
"example": "cleaned"
},
"trackHdPrice": {
"$ref": "#/components/schemas/price"
},
"trackHdRentalPrice": {
"$ref": "#/components/schemas/price"
},
"trackId": {
"$ref": "#/components/schemas/collectionId"
},
"trackName": {
"$ref": "#/components/schemas/title_feed"
},
"trackPrice": {
"$ref": "#/components/schemas/price"
},
"trackRentalPrice": {
"$ref": "#/components/schemas/price"
},
"trackViewUrl": {
"$ref": "#/components/schemas/view_url"
},
"wrapperType": {
"description": "The name of the object returned by the search request.\n\n\nNote: will always return \"track\"\n",
"type": "string",
"example": "track"
}
}
},
"itunes_replacement_results": {
"description": "List of feeds matching request\n",
"type": "array",
"items": {
"$ref": "#/components/schemas/itunes_results"
}
},
"status": {
"description": "Indicates API request status\n",
"type": "string",
"enum": [
"true",
"false"
],
"example": "true"
},
"description_response": {
"description": "Description of the response\n",
"type": "string",
"example": "Found matching feed"
},
"id_feed": {
"description": "The internal PodcastIndex.org Feed ID.\n",
"type": "integer",
"example": 75075
},
"podcastguid": {
"description": "The GUID from the `podcast:guid` tag in the feed. This value is a unique, global identifier for the podcast.\n\n\nSee the namespace spec for\n[guid](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#guid) for details.\n",
"type": "string",
"example": "9b024349-ccf0-5f69-a609-6b82873eab3c"
},
"originalUrl": {
"description": "The URL of the feed, before it changed to the current `url` value.\n",
"type": "string",
"format": "URL",
"example": "https://feeds.theincomparable.com/batmanuniversity"
},
"link_feed": {
"description": "The channel-level link in the feed\n",
"type": "string",
"format": "URL",
"example": "https://www.theincomparable.com/batmanuniversity/"
},
"description_feed": {
"description": "The channel-level description\n\n\nUses the longer of the possible fields in the feed: ``, `` and ``\n",
"type": "string",
"example": "Batman University is a seasonal podcast about you know who. It began with an analysis of episodes of “Batman: The Animated Series” but has now expanded to cover other series, movies, and media. Your professor is Tony Sindelar."
},
"ownerName": {
"description": "The channel-level owner:name element.\n\n\nUsually iTunes specific, but could be from another namespace if not present.\n",
"type": "string",
"example": "The Incomparable"
},
"image_feed": {
"description": "The channel-level image element.\n",
"type": "string",
"format": "URL",
"example": "https://www.theincomparable.com/imgs/logos/logo-batmanuniversity-3x.jpg?cache-buster=2019-06-11"
},
"artwork": {
"description": "The seemingly best artwork we can find for the feed.\n\nMight be the same as `image` in most instances.\n",
"type": "string",
"format": "URL",
"example": "https://www.theincomparable.com/imgs/logos/logo-batmanuniversity-3x.jpg?cache-buster=2019-06-11"
},
"lastUpdateTime": {
"description": "The channel-level pubDate for the feed, if it’s sane.\n\nIf not, this is a heuristic value, arrived at by analyzing other parts of the feed, like item-level pubDates.\n",
"type": "integer",
"format": "Unix Epoch",
"example": 1613394044
},
"lastCrawlTime": {
"description": "The last time we attempted to pull this feed from its url.\n",
"type": "integer",
"format": "Unix Epoch",
"example": 1613394034
},
"lastParseTime": {
"description": "The last time we tried to parse the downloaded feed content.\n",
"type": "integer",
"format": "Unix Epoch",
"example": 1613394045
},
"lastGoodHttpStatusTime": {
"description": "Timestamp of the last time we got a \"good\", meaning non-4xx/non-5xx, status code when pulling this feed from its url.\n",
"type": "integer",
"format": "Unix Epoch",
"example": 1613394034
},
"lastHttpStatus": {
"description": "The last http status code we got when pulling this feed from its url.\n\n\nYou will see some made up status codes sometimes. These are what we use to track state within the feed puller.\nThese all start with 9xx.\n",
"type": "integer",
"example": 200
},
"contentType": {
"description": "The Content-Type header from the last time we pulled this feed from its url.\n",
"type": "string",
"example": "application/rss+xml"
},
"itunesId_feed": {
"description": "The iTunes ID of this feed if there is one, and we know what it is.\n",
"type": "integer",
"nullable": true,
"example": 1441923632
},
"generator": {
"description": "The channel-level generator element if there is one.\n",
"type": "string",
"example": "my podcast host"
},
"language": {
"description": "The channel-level language specification of the feed.\n\nLanguages accord with the [RSS Language Spec](https://www.rssboard.org/rss-language-codes).\n",
"type": "string",
"example": "en-us"
},
"explicit_feed": {
"description": "Is feed marked as explicit\n",
"type": "boolean",
"example": false
},
"type": {
"description": "Type of source feed where:\n\n - 0: RSS\n - 1: Atom\n",
"type": "integer",
"enum": [
0,
1
],
"example": 0
},
"medium_feed": {
"description": "The value of the `podcast:medium` attribute for the feed.\n\n\nSee the [medium](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#medium) description in the Podcast Namespace for more information.\n",
"type": "string",
"example": "music"
},
"dead": {
"description": "At some point, we give up trying to process a feed and mark it as dead.\nThis is usually after 1000 errors without a successful pull/parse cycle.\nOnce the feed is marked dead, we only check it once per month.\n",
"type": "integer",
"example": 0
},
"episodeCount": {
"description": "Number of episodes for this feed known to the index.\n",
"type": "integer",
"example": 19
},
"crawlErrors": {
"description": "The number of errors we’ve encountered trying to pull a copy of the feed.\nErrors are things like a 500 or 404 response, a server timeout, bad encoding, etc.\n",
"type": "integer",
"example": 0
},
"parseErrors": {
"description": "The number of errors we’ve encountered trying to parse the feed content.\nErrors here are things like not well-formed xml, bad character encoding, etc.\n\n\nWe fix many of these types of issues on the fly when parsing.\nWe only increment the errors count when we can’t fix it.\n",
"type": "integer",
"example": 0
},
"categories": {
"description": "An array of categories, where the index is the Category ID and the value is the Category Name.\n\n\nAll Category numbers and names are returned by the `categories/list` endpoint.\n",
"type": "object",
"example": {
"104": "Tv",
"105": "Film",
"107": "Reviews"
}
},
"locked": {
"description": "Tell other podcast platforms whether they are allowed to import this feed.\nA value of 1 means that any attempt to import this feed into a new platform should be rejected.\n\nContains the value of the feed's channel-level `podcast:locked` tag where:\n\n - 0: 'no'\n - 1: 'yes'\n",
"type": "integer",
"enum": [
0,
1
],
"example": 0
},
"imageUrlHash": {
"description": "A CRC32 hash of the `image` URL with the protocol (`http://`, `https://`) removed.\n",
"type": "integer",
"example": 1639321931
},
"newestItemPublishTime": {
"description": "The time the most recent episode in the feed was published.\n\n\nNote: some endpoints use `newestItemPubdate` while others use `newestItemPublishTime`. \nThey return the same information. See https://github.com/Podcastindex-org/api/issues/3 to track when the property name is updated.\n",
"type": "integer",
"format": "Unix Epoch",
"example": 1546399813
},
"feed_search": {
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/id_feed"
},
"podcastGuid": {
"$ref": "#/components/schemas/podcastguid"
},
"title": {
"$ref": "#/components/schemas/title_feed"
},
"url": {
"$ref": "#/components/schemas/url_feed"
},
"originalUrl": {
"$ref": "#/components/schemas/originalUrl"
},
"link": {
"$ref": "#/components/schemas/link_feed"
},
"description": {
"$ref": "#/components/schemas/description_feed"
},
"author": {
"$ref": "#/components/schemas/author"
},
"ownerName": {
"$ref": "#/components/schemas/ownerName"
},
"image": {
"$ref": "#/components/schemas/image_feed"
},
"artwork": {
"$ref": "#/components/schemas/artwork"
},
"lastUpdateTime": {
"$ref": "#/components/schemas/lastUpdateTime"
},
"lastCrawlTime": {
"$ref": "#/components/schemas/lastCrawlTime"
},
"lastParseTime": {
"$ref": "#/components/schemas/lastParseTime"
},
"lastGoodHttpStatusTime": {
"$ref": "#/components/schemas/lastGoodHttpStatusTime"
},
"lastHttpStatus": {
"$ref": "#/components/schemas/lastHttpStatus"
},
"contentType": {
"$ref": "#/components/schemas/contentType"
},
"itunesId": {
"$ref": "#/components/schemas/itunesId_feed"
},
"generator": {
"$ref": "#/components/schemas/generator"
},
"language": {
"$ref": "#/components/schemas/language"
},
"explicit": {
"$ref": "#/components/schemas/explicit_feed"
},
"type": {
"$ref": "#/components/schemas/type"
},
"medium": {
"$ref": "#/components/schemas/medium_feed"
},
"dead": {
"$ref": "#/components/schemas/dead"
},
"episodeCount": {
"$ref": "#/components/schemas/episodeCount"
},
"crawlErrors": {
"$ref": "#/components/schemas/crawlErrors"
},
"parseErrors": {
"$ref": "#/components/schemas/parseErrors"
},
"categories": {
"$ref": "#/components/schemas/categories"
},
"locked": {
"$ref": "#/components/schemas/locked"
},
"imageUrlHash": {
"$ref": "#/components/schemas/imageUrlHash"
},
"newestItemPubdate": {
"$ref": "#/components/schemas/newestItemPublishTime"
}
}
},
"feeds": {
"description": "List of feeds matching request\n",
"type": "array",
"items": {
"$ref": "#/components/schemas/feed_search"
}
},
"count": {
"description": "Number of items returned in request\n",
"type": "integer",
"example": 1
},
"query_search": {
"description": "Search terms passed to request\n",
"type": "string",
"example": "batman university"
},
"id_episode": {
"description": "The internal PodcastIndex.org episode ID.\n",
"type": "integer",
"example": 16795088
},
"description_episode": {
"description": "The item-level description of the episode.\n\n\nUses the longer of the possible fields in the feed: ``, `` and ``\n",
"type": "string",
"example": "Batman University is back in session! James Thomson and Nathan Alderman join Tony for a discussion of Fox’s “Gotham.” Tune in to hear our thoughts on how a half-baked comic book show was reborn into an unmissable train wreck."
},
"guid": {
"description": "The unique identifier for the episode\n",
"type": "string",
"example": "incomparable/batman/19"
},
"datePublished": {
"description": "The date and time the episode was published\n",
"type": "integer",
"format": "Unix Epoch",
"example": 1546399813
},
"dateCrawled": {
"description": "The time this episode was found in the feed\n",
"type": "integer",
"format": "Unix Epoch",
"example": 1598369047
},
"enclosureUrl": {
"description": "URL/link to the episode file\n",
"type": "string",
"format": "URL",
"example": "https://www.theincomparable.com/podcast/batmanuniversity302.mp3"
},
"enclosureType": {
"description": "The Content-Type for the item specified by the `enclosureUrl`\n",
"type": "string",
"example": "audio/mp3"
},
"enclosureLength": {
"description": "The length of the item specified by the `enclosureUrl` in bytes\n",
"type": "integer",
"format": "bytes",
"example": 26385472
},
"duration": {
"description": "The estimated length of the item specified by the `enclosureUrl` in seconds. Will be null for `liveItem`.\n",
"type": "integer",
"nullable": true,
"format": "seconds",
"example": 54
},
"explicit_episode": {
"description": "Is feed or episode marked as explicit\n\n - 0: not marked explicit\n - 1: marked explicit\n",
"type": "integer",
"enum": [
0,
1
],
"example": 0
},
"episode_number": {
"description": "Episode number\n",
"type": "integer",
"nullable": true,
"example": 19
},
"episodeType": {
"description": "The type of episode. May be null for `liveItem`.\n",
"type": "string",
"nullable": true,
"enum": [
"full",
"trailer",
"bonus"
],
"example": "full"
},
"season": {
"description": "Season number. May be null for `liveItem`.\n",
"type": "integer",
"nullable": true,
"example": 3
},
"image_episode": {
"description": "The item-level image for the episode\n",
"type": "string",
"format": "URL",
"example": "https://www.theincomparable.com/imgs/logos/logo-batmanuniversity-3x.jpg?cache-buster=2019-06-11"
},
"chaptersUrl": {
"description": "Link to the JSON file containing the episode chapters\n",
"type": "string",
"nullable": true,
"format": "URL",
"example": "https://studio.hypercatcher.com/chapters/podcast/http:feed.nashownotes.comrss.xml/episode/http:1322.noagendanotes.com"
},
"transcriptUrl": {
"description": "Link to the file containing the episode transcript\n\n\nNote: in most use cases, the `transcripts` value should be used instead\n",
"type": "string",
"nullable": true,
"format": "URL",
"example": "https://mp3s.nashownotes.com/NA-1322-Captions.srt"
},
"transcript": {
"description": "This tag is used to link to a transcript or closed captions file. Multiple tags can be present for multiple transcript formats.\n\nDetailed file format information and example files are [here](https://github.com/Podcastindex-org/podcast-namespace/blob/main/transcripts/transcripts.md).\n",
"type": "object",
"properties": {
"url": {
"description": "URL of the podcast transcript.",
"type": "string",
"format": "URL",
"example": "https://mp3s.nashownotes.com/NA-1385-Captions.srt"
},
"type": {
"description": "Mime type of the file such as `text/plain`, `text/html`, `application/srt`, `text/vtt`, `application/json`\n",
"type": "string",
"enum": [
"application/json",
"application/srt",
"text/html",
"text/plain",
"text/srt",
"text/vtt"
],
"example": "application/srt"
}
}
},
"transcripts": {
"description": "List of transcripts for the episode. May not be reported.\n",
"type": "array",
"nullable": true,
"items": {
"$ref": "#/components/schemas/transcript"
}
},
"item_search_byperson": {
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/id_episode"
},
"title": {
"$ref": "#/components/schemas/title_feed"
},
"link": {
"$ref": "#/components/schemas/link_feed"
},
"description": {
"$ref": "#/components/schemas/description_episode"
},
"guid": {
"$ref": "#/components/schemas/guid"
},
"datePublished": {
"$ref": "#/components/schemas/datePublished"
},
"dateCrawled": {
"$ref": "#/components/schemas/dateCrawled"
},
"enclosureUrl": {
"$ref": "#/components/schemas/enclosureUrl"
},
"enclosureType": {
"$ref": "#/components/schemas/enclosureType"
},
"enclosureLength": {
"$ref": "#/components/schemas/enclosureLength"
},
"duration": {
"$ref": "#/components/schemas/duration"
},
"explicit": {
"$ref": "#/components/schemas/explicit_episode"
},
"episode": {
"$ref": "#/components/schemas/episode_number"
},
"episodeType": {
"$ref": "#/components/schemas/episodeType"
},
"season": {
"$ref": "#/components/schemas/season"
},
"image": {
"$ref": "#/components/schemas/image_episode"
},
"feedItunesId": {
"$ref": "#/components/schemas/itunesId_feed"
},
"feedImage": {
"$ref": "#/components/schemas/image_feed"
},
"feedId": {
"$ref": "#/components/schemas/id_feed"
},
"feedUrl": {
"$ref": "#/components/schemas/url_feed"
},
"feedAuthor": {
"$ref": "#/components/schemas/author"
},
"feedTitle": {
"$ref": "#/components/schemas/title_feed"
},
"feedLanguage": {
"$ref": "#/components/schemas/language"
},
"chaptersUrl": {
"$ref": "#/components/schemas/chaptersUrl"
},
"transcriptUrl": {
"$ref": "#/components/schemas/transcriptUrl"
},
"transcripts": {
"$ref": "#/components/schemas/transcripts"
}
}
},
"items_byperson": {
"description": "List of episodes matching request\n",
"type": "array",
"items": {
"$ref": "#/components/schemas/item_search_byperson"
}
},
"id_query": {
"description": "Value passed to request in the `id` field\n",
"type": "string",
"example": "920666"
},
"query_id": {
"description": "Object containing the input query data\n",
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/id_query"
}
}
},
"itunesType": {
"description": "The type as specified by the `itunes:type` in the feed XML.\n",
"type": "string",
"example": "episodic"
},
"chash": {
"description": "The md5 hash of the following feed items in hex format.\n\n - `title`\n - `link`\n - `feedLanguage`\n - `generator`\n - `author`\n - `ownerName`\n - `ownerEmail` (note: not exposed via the API)\n\nPseudo-code:\n\n chash = md5(title+link+feedLanguage+generator+author+ownerName+ownerEmail)\n",
"type": "string",
"example": "ad651c60eaaf3344595c0dd0bd787993"
},
"type_v4v": {
"description": "Payment type\n",
"type": "string",
"enum": [
"lightning",
"hive",
"webmonetization"
],
"example": "lightning"
},
"method_v4v": {
"description": "Method for sending payment\n",
"type": "string",
"example": "keysend"
},
"suggested_v4v": {
"description": "Suggested amount per second of playback to send. Unit is specific to the `type`.\n",
"type": "string",
"nullable": true,
"example": "0.00000020000"
},
"model_v4v": {
"description": "Description of the method for providing \"Value for Value\" payments\n",
"type": "object",
"properties": {
"type": {
"$ref": "#/components/schemas/type_v4v"
},
"method": {
"$ref": "#/components/schemas/method_v4v"
},
"suggested": {
"$ref": "#/components/schemas/suggested_v4v"
}
}
},
"name_destination": {
"description": "Name for the destination\n",
"type": "string",
"example": "podcaster"
},
"address_destination": {
"description": "Address of node to receive payment\n",
"type": "string",
"example": "03ae9f91a0cb8ff43840e3c322c4c61f019d8c1c3cea15a25cfc425ac605e61a4a"
},
"type_destination": {
"description": "Type of destination\n",
"type": "string",
"enum": [
"node"
],
"example": "node"
},
"split_destination": {
"description": "Share of payment the destination should receive\n",
"type": "integer",
"example": 99
},
"fee_destination": {
"description": "Indicates if destination is included due to a fee being charged. May not be reported.\n",
"type": "boolean",
"nullable": true,
"example": true
},
"customKey": {
"description": "The name of a custom record key to send along with the payment. May not be reported.\n\n\nSee the [podcast namespace spec](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#value)\nand [value specification](https://github.com/Podcastindex-org/podcast-namespace/blob/main/value/value.md)\nfor more information.\n",
"type": "string",
"nullable": true,
"example": "112111100"
},
"customValue": {
"description": "A custom value to pass along with the payment. This is considered the value that belongs to the customKey. May not be reported.\n\n\nSee the [podcast namespace spec](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#value)\nand [value specification](https://github.com/Podcastindex-org/podcast-namespace/blob/main/value/value.md)\nfor more information.\n",
"type": "string",
"nullable": true,
"example": "wal_ZmqFg13NB31oek"
},
"destination_v4v": {
"description": "Destination for \"Value for Value\" payment.\n",
"type": "object",
"properties": {
"name": {
"$ref": "#/components/schemas/name_destination"
},
"address": {
"$ref": "#/components/schemas/address_destination"
},
"type": {
"$ref": "#/components/schemas/type_destination"
},
"split": {
"$ref": "#/components/schemas/split_destination"
},
"fee": {
"$ref": "#/components/schemas/fee_destination"
},
"customKey": {
"$ref": "#/components/schemas/customKey"
},
"customValue": {
"$ref": "#/components/schemas/customValue"
}
}
},
"destinations_v4v": {
"description": "List of destinations where \"Value for Value\" payments should be sent.\n",
"type": "array",
"items": {
"$ref": "#/components/schemas/destination_v4v"
}
},
"value": {
"description": "Information for supporting the podcast via one of the \"Value for Value\" methods. May not be reported.\n\n\nExamples:\n - `lightning` value type: https://api.podcastindex.org/api/1.0/podcasts/byfeedid?id=169991&pretty\n - `webmonetization` value type: https://api.podcastindex.org/api/1.0/podcasts/byfeedid?id=779873&pretty\n",
"type": "object",
"nullable": true,
"properties": {
"model": {
"$ref": "#/components/schemas/model_v4v"
},
"destinations": {
"$ref": "#/components/schemas/destinations_v4v"
}
}
},
"url_funding": {
"description": "URL to site to fund the podcast\n\n\nSee the [podcast namespace spec](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#funding) for more information.\n",
"type": "string",
"nullable": true,
"format": "URL",
"example": "https://patreon.com/johnchidgey"
},
"message": {
"description": "Description of `url`\n\n\nSee the [podcast namespace spec](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#funding) for more information.\n",
"type": "string",
"example": "Pragmatic on Patreon"
},
"funding": {
"description": "Information for donation/funding the podcast. May not be reported.\n\n\nSee the [podcast namespace spec](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#funding) for more information.\n",
"type": "object",
"nullable": true,
"properties": {
"url": {
"$ref": "#/components/schemas/url_funding"
},
"message": {
"$ref": "#/components/schemas/message"
}
}
},
"feed_podcast": {
"description": "Known details of podcast feed\n",
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/id_feed"
},
"podcastGuid": {
"$ref": "#/components/schemas/podcastguid"
},
"title": {
"$ref": "#/components/schemas/title_feed"
},
"url": {
"$ref": "#/components/schemas/url_feed"
},
"originalUrl": {
"$ref": "#/components/schemas/originalUrl"
},
"link": {
"$ref": "#/components/schemas/link_feed"
},
"description": {
"$ref": "#/components/schemas/description_feed"
},
"author": {
"$ref": "#/components/schemas/author"
},
"ownerName": {
"$ref": "#/components/schemas/ownerName"
},
"image": {
"$ref": "#/components/schemas/image_feed"
},
"artwork": {
"$ref": "#/components/schemas/artwork"
},
"lastUpdateTime": {
"$ref": "#/components/schemas/lastUpdateTime"
},
"lastCrawlTime": {
"$ref": "#/components/schemas/lastCrawlTime"
},
"lastParseTime": {
"$ref": "#/components/schemas/lastParseTime"
},
"lastGoodHttpStatusTime": {
"$ref": "#/components/schemas/lastGoodHttpStatusTime"
},
"lastHttpStatus": {
"$ref": "#/components/schemas/lastHttpStatus"
},
"contentType": {
"$ref": "#/components/schemas/contentType"
},
"itunesId": {
"$ref": "#/components/schemas/itunesId_feed"
},
"itunesType": {
"$ref": "#/components/schemas/itunesType"
},
"generator": {
"$ref": "#/components/schemas/generator"
},
"language": {
"$ref": "#/components/schemas/language"
},
"explicit": {
"$ref": "#/components/schemas/explicit_feed"
},
"type": {
"$ref": "#/components/schemas/type"
},
"medium": {
"$ref": "#/components/schemas/medium_feed"
},
"dead": {
"$ref": "#/components/schemas/dead"
},
"chash": {
"$ref": "#/components/schemas/chash"
},
"episodeCount": {
"$ref": "#/components/schemas/episodeCount"
},
"crawlErrors": {
"$ref": "#/components/schemas/crawlErrors"
},
"parseErrors": {
"$ref": "#/components/schemas/parseErrors"
},
"categories": {
"$ref": "#/components/schemas/categories"
},
"locked": {
"$ref": "#/components/schemas/locked"
},
"imageUrlHash": {
"$ref": "#/components/schemas/imageUrlHash"
},
"value": {
"$ref": "#/components/schemas/value"
},
"funding": {
"$ref": "#/components/schemas/funding"
}
}
},
"url_query": {
"description": "Value passed to request in the `url` field\n",
"type": "string",
"format": "URL",
"example": "https://feeds.theincomparable.com/batmanuniversity"
},
"query_url": {
"description": "Object containing the input query data\n",
"type": "object",
"properties": {
"url": {
"$ref": "#/components/schemas/url_query"
}
}
},
"feed_itunes": {
"description": "Known details of podcast feed\n",
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/id_feed"
},
"podcastGuid": {
"$ref": "#/components/schemas/podcastguid"
},
"title": {
"$ref": "#/components/schemas/title_feed"
},
"url": {
"$ref": "#/components/schemas/url_feed"
},
"originalUrl": {
"$ref": "#/components/schemas/originalUrl"
},
"link": {
"$ref": "#/components/schemas/link_feed"
},
"description": {
"$ref": "#/components/schemas/description_feed"
},
"author": {
"$ref": "#/components/schemas/author"
},
"ownerName": {
"$ref": "#/components/schemas/ownerName"
},
"image": {
"$ref": "#/components/schemas/image_feed"
},
"artwork": {
"$ref": "#/components/schemas/artwork"
},
"lastUpdateTime": {
"$ref": "#/components/schemas/lastUpdateTime"
},
"lastCrawlTime": {
"$ref": "#/components/schemas/lastCrawlTime"
},
"lastParseTime": {
"$ref": "#/components/schemas/lastParseTime"
},
"lastGoodHttpStatusTime": {
"$ref": "#/components/schemas/lastGoodHttpStatusTime"
},
"lastHttpStatus": {
"$ref": "#/components/schemas/lastHttpStatus"
},
"contentType": {
"$ref": "#/components/schemas/contentType"
},
"itunesId": {
"$ref": "#/components/schemas/itunesId_feed"
},
"generator": {
"$ref": "#/components/schemas/generator"
},
"language": {
"$ref": "#/components/schemas/language"
},
"type": {
"$ref": "#/components/schemas/type"
},
"dead": {
"$ref": "#/components/schemas/dead"
},
"episodeCount": {
"$ref": "#/components/schemas/episodeCount"
},
"crawlErrors": {
"$ref": "#/components/schemas/crawlErrors"
},
"parseErrors": {
"$ref": "#/components/schemas/parseErrors"
},
"categories": {
"$ref": "#/components/schemas/categories"
},
"locked": {
"$ref": "#/components/schemas/locked"
},
"funding": {
"$ref": "#/components/schemas/funding"
}
}
},
"podcastGuid_query": {
"description": "Value passed to request in the `guid` field\n\n\nThe GUID from the `podcast:guid` tag in the feed. This value is a unique, global identifier for the podcast.\nSee the namespace spec for\n[guid](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#guid) for details.\n",
"type": "string",
"example": "9b024349-ccf0-5f69-a609-6b82873eab3c"
},
"id_guid_query": {
"description": "The Podcast Index feed ID for the feed specified by the `guid` field passed to the request\n",
"type": "string",
"example": "9b024349-ccf0-5f69-a609-6b82873eab3c"
},
"query_guid": {
"description": "Object containing the input query data\n",
"type": "object",
"properties": {
"guid": {
"$ref": "#/components/schemas/podcastGuid_query"
},
"id": {
"$ref": "#/components/schemas/id_guid_query"
}
}
},
"trendScore": {
"description": "The ranking for how the podcast is trending in the index\n",
"type": "integer",
"example": 1
},
"valueCreatedOn": {
"description": "The time this feed's `value` data added. Will be 0 if no `value` data.\n",
"type": "integer",
"format": "Unix Epoch",
"example": 1598369047
},
"feed_bytag": {
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/id_feed"
},
"title": {
"$ref": "#/components/schemas/title_feed"
},
"url": {
"$ref": "#/components/schemas/url_feed"
},
"originalUrl": {
"$ref": "#/components/schemas/originalUrl"
},
"link": {
"$ref": "#/components/schemas/link_feed"
},
"description": {
"$ref": "#/components/schemas/description_feed"
},
"author": {
"$ref": "#/components/schemas/author"
},
"ownerName": {
"$ref": "#/components/schemas/ownerName"
},
"image": {
"$ref": "#/components/schemas/image_feed"
},
"artwork": {
"$ref": "#/components/schemas/artwork"
},
"lastUpdateTime": {
"$ref": "#/components/schemas/lastUpdateTime"
},
"lastCrawlTime": {
"$ref": "#/components/schemas/lastCrawlTime"
},
"lastParseTime": {
"$ref": "#/components/schemas/lastParseTime"
},
"lastGoodHttpStatusTime": {
"$ref": "#/components/schemas/lastGoodHttpStatusTime"
},
"lastHttpStatus": {
"$ref": "#/components/schemas/lastHttpStatus"
},
"contentType": {
"$ref": "#/components/schemas/contentType"
},
"itunesId": {
"$ref": "#/components/schemas/itunesId_feed"
},
"generator": {
"$ref": "#/components/schemas/generator"
},
"language": {
"$ref": "#/components/schemas/language"
},
"type": {
"$ref": "#/components/schemas/type"
},
"dead": {
"$ref": "#/components/schemas/dead"
},
"crawlErrors": {
"$ref": "#/components/schemas/crawlErrors"
},
"parseErrors": {
"$ref": "#/components/schemas/parseErrors"
},
"categories": {
"$ref": "#/components/schemas/categories"
},
"locked": {
"$ref": "#/components/schemas/locked"
},
"popularity": {
"$ref": "#/components/schemas/trendScore"
},
"imageUrlHash": {
"$ref": "#/components/schemas/imageUrlHash"
},
"value": {
"$ref": "#/components/schemas/value"
},
"funding": {
"$ref": "#/components/schemas/funding"
},
"podcastGuid": {
"$ref": "#/components/schemas/podcastguid"
},
"valueCreatedOn": {
"$ref": "#/components/schemas/valueCreatedOn"
}
}
},
"feeds_bytag": {
"description": "List of feeds matching request\n",
"type": "array",
"items": {
"$ref": "#/components/schemas/feed_bytag"
}
},
"total": {
"description": "Total number of feeds returnable by endpoint\n",
"type": "integer",
"example": 13143
},
"nextStartAt": {
"description": "Feed ID to pass to next `start_at` to get next batch of feeds\n\n\nOnly returned when `start_at` passed to request\n",
"type": "integer",
"example": 322043
},
"medium": {
"description": "Value of `medium` parameter used in request\n",
"type": "string",
"example": "film"
},
"feed_trending": {
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/id_feed"
},
"url": {
"$ref": "#/components/schemas/url_feed"
},
"title": {
"$ref": "#/components/schemas/title_feed"
},
"description": {
"$ref": "#/components/schemas/description_feed"
},
"author": {
"$ref": "#/components/schemas/author"
},
"image": {
"$ref": "#/components/schemas/image_feed"
},
"artwork": {
"$ref": "#/components/schemas/artwork"
},
"newestItemPublishTime": {
"$ref": "#/components/schemas/newestItemPublishTime"
},
"itunesId": {
"$ref": "#/components/schemas/itunesId_feed"
},
"trendScore": {
"$ref": "#/components/schemas/trendScore"
},
"language": {
"$ref": "#/components/schemas/language"
},
"categories": {
"$ref": "#/components/schemas/categories"
}
}
},
"feeds_trending": {
"description": "List of feeds matching request\n",
"type": "array",
"items": {
"$ref": "#/components/schemas/feed_trending"
}
},
"max": {
"description": "Value of `max` parameter passed to request.\n",
"type": "integer",
"nullable": true,
"example": 2
},
"since": {
"description": "Value of `since` parameter passed to request.\n",
"type": "integer",
"nullable": true,
"format": "Unix Epoch",
"example": 1613805249
},
"duplicateOf": {
"description": "The internal PodcastIndex.org Feed ID this feed duplicates. May be null except in `podcasts/dead`.\n",
"type": "integer",
"nullable": true,
"example": 75075
},
"feed_dead": {
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/id_feed"
},
"title": {
"$ref": "#/components/schemas/title_feed"
},
"url": {
"$ref": "#/components/schemas/url_feed"
},
"duplicateOf": {
"$ref": "#/components/schemas/duplicateOf"
}
}
},
"feeds_dead": {
"description": "List of feeds matching request\n",
"type": "array",
"items": {
"$ref": "#/components/schemas/feed_dead"
}
},
"datePublishedPretty": {
"description": "The date and time the episode was published formatted as a human readable string.\n\n\nNote: uses the PodcastIndex server local time to do conversion.\n",
"type": "string",
"example": "January 01, 2019 9:30pm"
},
"startTime_live": {
"description": "The time the livestream starts\n",
"type": "integer",
"format": "Unix Epoch",
"example": 1674154800
},
"endTime_live": {
"description": "The time the livestream ends\n",
"type": "integer",
"format": "Unix Epoch",
"example": 1674167400
},
"status_live": {
"description": "Status of the livestream\n",
"type": "string",
"enum": [
"ended",
"live"
],
"example": "live"
},
"contentLink": {
"description": "Link TODO\n",
"type": "string",
"example": ""
},
"liveitem_podcast": {
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/id_episode"
},
"title": {
"$ref": "#/components/schemas/title_feed"
},
"link": {
"$ref": "#/components/schemas/link_feed"
},
"description": {
"$ref": "#/components/schemas/description_episode"
},
"guid": {
"$ref": "#/components/schemas/guid"
},
"datePublished": {
"$ref": "#/components/schemas/datePublished"
},
"datePublishedPretty": {
"$ref": "#/components/schemas/datePublishedPretty"
},
"dateCrawled": {
"$ref": "#/components/schemas/dateCrawled"
},
"enclosureUrl": {
"$ref": "#/components/schemas/enclosureUrl"
},
"enclosureType": {
"$ref": "#/components/schemas/enclosureType"
},
"enclosureLength": {
"$ref": "#/components/schemas/enclosureLength"
},
"startTime": {
"$ref": "#/components/schemas/startTime_live"
},
"endTime": {
"$ref": "#/components/schemas/endTime_live"
},
"status": {
"$ref": "#/components/schemas/status_live"
},
"contentLink": {
"$ref": "#/components/schemas/contentLink"
},
"duration": {
"$ref": "#/components/schemas/duration"
},
"explicit": {
"$ref": "#/components/schemas/explicit_episode"
},
"episode": {
"$ref": "#/components/schemas/episode_number"
},
"episodeType": {
"$ref": "#/components/schemas/episodeType"
},
"season": {
"$ref": "#/components/schemas/season"
},
"image": {
"$ref": "#/components/schemas/image_episode"
},
"feedItunesId": {
"$ref": "#/components/schemas/itunesId_feed"
},
"feedImage": {
"$ref": "#/components/schemas/image_feed"
},
"feedId": {
"$ref": "#/components/schemas/id_feed"
},
"feedLanguage": {
"$ref": "#/components/schemas/language"
},
"feedDead": {
"$ref": "#/components/schemas/dead"
},
"feedDuplicateOf": {
"$ref": "#/components/schemas/duplicateOf"
},
"chaptersUrl": {
"$ref": "#/components/schemas/chaptersUrl"
},
"transcriptUrl": {
"$ref": "#/components/schemas/transcriptUrl"
}
}
},
"liveItems_podcast": {
"description": "List of live episodes for feed\n",
"type": "array",
"items": {
"$ref": "#/components/schemas/liveitem_podcast"
}
},
"startTime": {
"description": "The time where the soundbite begins in the item specified by the `enclosureUrl`\n",
"type": "integer",
"format": "seconds",
"example": 1123
},
"duration_soundbite": {
"description": "The length to play the item specified by the `enclosureUrl`\n",
"type": "integer",
"format": "seconds",
"example": 40
},
"title_soundbite": {
"description": "Name of the soundbite\n",
"type": "string",
"example": "Why the Podcast Namespace Matters"
},
"soundbite": {
"description": "Soundbite for episode. May not be reported.\n",
"type": "object",
"nullable": true,
"properties": {
"startTime": {
"$ref": "#/components/schemas/startTime"
},
"duration": {
"$ref": "#/components/schemas/duration_soundbite"
},
"title": {
"$ref": "#/components/schemas/title_soundbite"
}
}
},
"soundbites": {
"description": "Soundbites for episode. May not be reported.\n",
"type": "array",
"nullable": true,
"items": {
"$ref": "#/components/schemas/soundbite"
}
},
"id_person": {
"description": "The internal PodcastIndex.org person ID.\n",
"type": "integer",
"example": 411960
},
"name_person": {
"description": "The name of the person.\n\n\nSee the [podcast namespace spec](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#person) for more information.\n",
"type": "string",
"example": "Dave Jones"
},
"role": {
"description": "Used to identify what role the person serves on the show or episode.\n\n\nValue should be an official role within the Podcast Taxonomy Project\n[list](https://github.com/Podcastindex-org/podcast-namespace/blob/main/taxonomy.json).\n\n\nSee the [podcast namespace spec](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#person) for more information.\n",
"type": "string",
"example": "Host"
},
"group": {
"description": "The group the person's role is in.\n\n\nValue should be an official group within the Podcast Taxonomy Project\n[list](https://github.com/Podcastindex-org/podcast-namespace/blob/main/taxonomy.json).\n\n\nSee the [podcast namespace spec](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#person) for more information.\n",
"type": "string",
"example": "Cast"
},
"href": {
"description": "The url to a relevant resource of information about the person, such as a homepage or third-party profile platform.\n\n\nSee the [podcast namespace spec](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#person) for more information.\n",
"type": "string",
"format": "URL",
"example": "https://engineered.network/img/people/dave-jones.jp"
},
"img": {
"description": "URL to a picture or avatar of the person.\n\n\nSee the [podcast namespace spec](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#person) for more information.\n",
"type": "string",
"format": "URL",
"example": "https://engineered.network/img/people/dave-jones.jp"
},
"person": {
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/id_person"
},
"name": {
"$ref": "#/components/schemas/name_person"
},
"role": {
"$ref": "#/components/schemas/role"
},
"group": {
"$ref": "#/components/schemas/group"
},
"href": {
"$ref": "#/components/schemas/href"
},
"img": {
"$ref": "#/components/schemas/img"
}
}
},
"persons": {
"description": "List of people with an interest in this episode. May not be reported.\n\n\nSee the [podcast namespace spec](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#person) for more information.\n",
"type": "array",
"nullable": true,
"items": {
"$ref": "#/components/schemas/person"
}
},
"url_socialInteract": {
"description": "The uri/url of the root post comment\n",
"type": "string",
"format": "URL",
"example": "https://podcastindex.social/@dave/109762601417741559"
},
"protocol_socialInteract": {
"description": "The protocol in use for interacting with the comment root post. \n\n\nFor the most up-to-date list of options, see https://github.com/Podcastindex-org/podcast-namespace/blob/main/socialprotocols.txt\n",
"type": "string",
"enum": [
"disabled",
"activitypub",
"twitter",
"lightning"
],
"example": "activitypub"
},
"accountId_socialInteract": {
"description": "The account id (on the commenting platform) of the account that created this root post.\n",
"type": "string",
"example": "@dave"
},
"accountUrl_socialInteract": {
"description": "The public url (on the commenting platform) of the account that created this root post.\n",
"type": "string",
"format": "URL",
"example": "https://podcastindex.social/users/dave"
},
"priority_socialInteract": {
"description": "When multiple socialInteract tags are present, this integer gives order of priority. A lower number means higher priority.\n",
"type": "integer",
"example": 0
},
"socialInteract_item": {
"type": "object",
"properties": {
"url": {
"$ref": "#/components/schemas/url_socialInteract"
},
"protocol": {
"$ref": "#/components/schemas/protocol_socialInteract"
},
"accountId": {
"$ref": "#/components/schemas/accountId_socialInteract"
},
"accountUrl": {
"$ref": "#/components/schemas/accountUrl_socialInteract"
},
"priority": {
"$ref": "#/components/schemas/priority_socialInteract"
}
}
},
"socialInteract": {
"description": "List the social interact data found in the podcast feed. May not be reported.\n\n\nSee the [podcast namespace spec](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/1.0.md#social-interact) for more information.\n",
"type": "array",
"nullable": true,
"items": {
"$ref": "#/components/schemas/socialInteract_item"
}
},
"item_podcast": {
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/id_episode"
},
"title": {
"$ref": "#/components/schemas/title_feed"
},
"link": {
"$ref": "#/components/schemas/link_feed"
},
"description": {
"$ref": "#/components/schemas/description_episode"
},
"guid": {
"$ref": "#/components/schemas/guid"
},
"datePublished": {
"$ref": "#/components/schemas/datePublished"
},
"datePublishedPretty": {
"$ref": "#/components/schemas/datePublishedPretty"
},
"dateCrawled": {
"$ref": "#/components/schemas/dateCrawled"
},
"enclosureUrl": {
"$ref": "#/components/schemas/enclosureUrl"
},
"enclosureType": {
"$ref": "#/components/schemas/enclosureType"
},
"enclosureLength": {
"$ref": "#/components/schemas/enclosureLength"
},
"duration": {
"$ref": "#/components/schemas/duration"
},
"explicit": {
"$ref": "#/components/schemas/explicit_episode"
},
"episode": {
"$ref": "#/components/schemas/episode_number"
},
"episodeType": {
"$ref": "#/components/schemas/episodeType"
},
"season": {
"$ref": "#/components/schemas/season"
},
"image": {
"$ref": "#/components/schemas/image_episode"
},
"feedItunesId": {
"$ref": "#/components/schemas/itunesId_feed"
},
"feedImage": {
"$ref": "#/components/schemas/image_feed"
},
"feedId": {
"$ref": "#/components/schemas/id_feed"
},
"feedLanguage": {
"$ref": "#/components/schemas/language"
},
"feedDead": {
"$ref": "#/components/schemas/dead"
},
"feedDuplicateOf": {
"$ref": "#/components/schemas/duplicateOf"
},
"chaptersUrl": {
"$ref": "#/components/schemas/chaptersUrl"
},
"transcriptUrl": {
"$ref": "#/components/schemas/transcriptUrl"
},
"transcripts": {
"$ref": "#/components/schemas/transcripts"
},
"soundbite": {
"$ref": "#/components/schemas/soundbite"
},
"soundbites": {
"$ref": "#/components/schemas/soundbites"
},
"persons": {
"$ref": "#/components/schemas/persons"
},
"socialInteract": {
"$ref": "#/components/schemas/socialInteract"
},
"value": {
"$ref": "#/components/schemas/value"
}
}
},
"items_podcast": {
"description": "List of episodes matching request\n",
"type": "array",
"items": {
"$ref": "#/components/schemas/item_podcast"
}
},
"query_podcast_id_single": {
"title": "Single ID",
"description": "Single ID passed to request\n",
"type": "string",
"example": "75075"
},
"query_podcast_id_multiple": {
"title": "Multiple IDs",
"description": "IDs passed to request\n",
"type": "array",
"items": {
"description": "Podcast ID passed to request\n",
"type": "string"
},
"example": [
"75075",
"920666"
]
},
"item_itunesId": {
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/id_episode"
},
"title": {
"$ref": "#/components/schemas/title_feed"
},
"link": {
"$ref": "#/components/schemas/link_feed"
},
"description": {
"$ref": "#/components/schemas/description_episode"
},
"guid": {
"$ref": "#/components/schemas/guid"
},
"datePublished": {
"$ref": "#/components/schemas/datePublished"
},
"datePublishedPretty": {
"$ref": "#/components/schemas/datePublishedPretty"
},
"dateCrawled": {
"$ref": "#/components/schemas/dateCrawled"
},
"enclosureUrl": {
"$ref": "#/components/schemas/enclosureUrl"
},
"enclosureType": {
"$ref": "#/components/schemas/enclosureType"
},
"enclosureLength": {
"$ref": "#/components/schemas/enclosureLength"
},
"duration": {
"$ref": "#/components/schemas/duration"
},
"explicit": {
"$ref": "#/components/schemas/explicit_episode"
},
"episode": {
"$ref": "#/components/schemas/episode_number"
},
"episodeType": {
"$ref": "#/components/schemas/episodeType"
},
"season": {
"$ref": "#/components/schemas/season"
},
"image": {
"$ref": "#/components/schemas/image_episode"
},
"feedItunesId": {
"$ref": "#/components/schemas/itunesId_feed"
},
"feedImage": {
"$ref": "#/components/schemas/image_feed"
},
"feedId": {
"$ref": "#/components/schemas/id_feed"
},
"feedLanguage": {
"$ref": "#/components/schemas/language"
},
"feedDead": {
"$ref": "#/components/schemas/dead"
},
"feedDuplicateOf": {
"$ref": "#/components/schemas/duplicateOf"
},
"chaptersUrl": {
"$ref": "#/components/schemas/chaptersUrl"
},
"transcriptUrl": {
"$ref": "#/components/schemas/transcriptUrl"
},
"transcripts": {
"$ref": "#/components/schemas/transcripts"
},
"soundbite": {
"$ref": "#/components/schemas/soundbite"
},
"soundbites": {
"$ref": "#/components/schemas/soundbites"
},
"persons": {
"$ref": "#/components/schemas/persons"
},
"socialInteract": {
"$ref": "#/components/schemas/socialInteract"
},
"value": {
"$ref": "#/components/schemas/value"
}
}
},
"items_itunesId": {
"description": "List of episodes matching request\n",
"type": "array",
"items": {
"$ref": "#/components/schemas/item_itunesId"
}
},
"feedImageUrlHash": {
"description": "A CRC32 hash of the `feedImage` URL with the protocol (`http://`, `https://`) removed.\n",
"type": "integer",
"example": 1639321931
},
"episode_object": {
"description": "Episode data\n",
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/id_episode"
},
"title": {
"$ref": "#/components/schemas/title_feed"
},
"link": {
"$ref": "#/components/schemas/link_feed"
},
"description": {
"$ref": "#/components/schemas/description_episode"
},
"guid": {
"$ref": "#/components/schemas/guid"
},
"datePublished": {
"$ref": "#/components/schemas/datePublished"
},
"datePublishedPretty": {
"$ref": "#/components/schemas/datePublishedPretty"
},
"dateCrawled": {
"$ref": "#/components/schemas/dateCrawled"
},
"enclosureUrl": {
"$ref": "#/components/schemas/enclosureUrl"
},
"enclosureType": {
"$ref": "#/components/schemas/enclosureType"
},
"enclosureLength": {
"$ref": "#/components/schemas/enclosureLength"
},
"duration": {
"$ref": "#/components/schemas/duration"
},
"explicit": {
"$ref": "#/components/schemas/explicit_episode"
},
"episode": {
"$ref": "#/components/schemas/episode_number"
},
"episodeType": {
"$ref": "#/components/schemas/episodeType"
},
"season": {
"$ref": "#/components/schemas/season"
},
"image": {
"$ref": "#/components/schemas/image_episode"
},
"imageUrlHash": {
"$ref": "#/components/schemas/imageUrlHash"
},
"feedItunesId": {
"$ref": "#/components/schemas/itunesId_feed"
},
"feedImage": {
"$ref": "#/components/schemas/image_feed"
},
"feedImageUrlHash": {
"$ref": "#/components/schemas/feedImageUrlHash"
},
"feedId": {
"$ref": "#/components/schemas/id_feed"
},
"feedTitle": {
"$ref": "#/components/schemas/title_feed"
},
"feedLanguage": {
"$ref": "#/components/schemas/language"
},
"chaptersUrl": {
"$ref": "#/components/schemas/chaptersUrl"
},
"transcripts": {
"$ref": "#/components/schemas/transcripts"
},
"persons": {
"$ref": "#/components/schemas/persons"
},
"socialInteract": {
"$ref": "#/components/schemas/socialInteract"
},
"value": {
"$ref": "#/components/schemas/value"
},
"soundbite": {
"$ref": "#/components/schemas/soundbite"
},
"soundbites": {
"$ref": "#/components/schemas/soundbites"
}
}
},
"feedid_query": {
"description": "Value passed to request in the `feedid` parameter\n",
"type": "string",
"example": "920666"
},
"feedurl_query": {
"description": "Value passed to request in the `feedurl` parameter. If no `feedurl` passed, value will be null.\n",
"type": "string",
"example": "http://mp3s.nashownotes.com/pc20rss.xml"
},
"guid_query": {
"description": "Value passed to request in the `guid` parameter.\n",
"type": "string",
"example": "PC2084"
},
"item_podcast_live": {
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/id_episode"
},
"title": {
"$ref": "#/components/schemas/title_feed"
},
"link": {
"$ref": "#/components/schemas/link_feed"
},
"guid": {
"$ref": "#/components/schemas/guid"
},
"datePublished": {
"$ref": "#/components/schemas/datePublished"
},
"datePublishedPretty": {
"$ref": "#/components/schemas/datePublishedPretty"
},
"dateCrawled": {
"$ref": "#/components/schemas/dateCrawled"
},
"enclosureUrl": {
"$ref": "#/components/schemas/enclosureUrl"
},
"enclosureType": {
"$ref": "#/components/schemas/enclosureType"
},
"enclosureLength": {
"$ref": "#/components/schemas/enclosureLength"
},
"explicit": {
"$ref": "#/components/schemas/explicit_episode"
},
"image": {
"$ref": "#/components/schemas/image_episode"
},
"feedItunesId": {
"$ref": "#/components/schemas/itunesId_feed"
},
"feedImage": {
"$ref": "#/components/schemas/image_feed"
},
"feedId": {
"$ref": "#/components/schemas/id_feed"
},
"feedTitle": {
"$ref": "#/components/schemas/title_feed"
},
"feedLanguage": {
"$ref": "#/components/schemas/language"
},
"categories": {
"$ref": "#/components/schemas/categories"
}
}
},
"items_live": {
"description": "List of episodes matching request\n",
"type": "array",
"items": {
"$ref": "#/components/schemas/item_podcast_live"
}
},
"item_podcast_random": {
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/id_episode"
},
"title": {
"$ref": "#/components/schemas/title_feed"
},
"link": {
"$ref": "#/components/schemas/link_feed"
},
"description": {
"$ref": "#/components/schemas/description_episode"
},
"guid": {
"$ref": "#/components/schemas/guid"
},
"datePublished": {
"$ref": "#/components/schemas/datePublished"
},
"datePublishedPretty": {
"$ref": "#/components/schemas/datePublishedPretty"
},
"dateCrawled": {
"$ref": "#/components/schemas/dateCrawled"
},
"enclosureUrl": {
"$ref": "#/components/schemas/enclosureUrl"
},
"enclosureType": {
"$ref": "#/components/schemas/enclosureType"
},
"enclosureLength": {
"$ref": "#/components/schemas/enclosureLength"
},
"explicit": {
"$ref": "#/components/schemas/explicit_episode"
},
"episode": {
"$ref": "#/components/schemas/episode_number"
},
"episodeType": {
"$ref": "#/components/schemas/episodeType"
},
"season": {
"$ref": "#/components/schemas/season"
},
"image": {
"$ref": "#/components/schemas/image_episode"
},
"feedItunesId": {
"$ref": "#/components/schemas/itunesId_feed"
},
"feedImage": {
"$ref": "#/components/schemas/image_feed"
},
"feedId": {
"$ref": "#/components/schemas/id_feed"
},
"feedTitle": {
"$ref": "#/components/schemas/title_feed"
},
"feedLanguage": {
"$ref": "#/components/schemas/language"
},
"categories": {
"$ref": "#/components/schemas/categories"
},
"chaptersUrl": {
"$ref": "#/components/schemas/chaptersUrl"
}
}
},
"episodes_random_array": {
"description": "List of episodes matching request\n",
"type": "array",
"items": {
"$ref": "#/components/schemas/item_podcast_random"
}
},
"item_podcast_recent": {
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/id_episode"
},
"title": {
"$ref": "#/components/schemas/title_feed"
},
"link": {
"$ref": "#/components/schemas/link_feed"
},
"description": {
"$ref": "#/components/schemas/description_episode"
},
"guid": {
"$ref": "#/components/schemas/guid"
},
"datePublished": {
"$ref": "#/components/schemas/datePublished"
},
"datePublishedPretty": {
"$ref": "#/components/schemas/datePublishedPretty"
},
"dateCrawled": {
"$ref": "#/components/schemas/dateCrawled"
},
"enclosureUrl": {
"$ref": "#/components/schemas/enclosureUrl"
},
"enclosureType": {
"$ref": "#/components/schemas/enclosureType"
},
"enclosureLength": {
"$ref": "#/components/schemas/enclosureLength"
},
"explicit": {
"$ref": "#/components/schemas/explicit_episode"
},
"episode": {
"$ref": "#/components/schemas/episode_number"
},
"episodeType": {
"$ref": "#/components/schemas/episodeType"
},
"season": {
"$ref": "#/components/schemas/season"
},
"image": {
"$ref": "#/components/schemas/image_episode"
},
"feedItunesId": {
"$ref": "#/components/schemas/itunesId_feed"
},
"feedImage": {
"$ref": "#/components/schemas/image_feed"
},
"feedId": {
"$ref": "#/components/schemas/id_feed"
},
"feedTitle": {
"$ref": "#/components/schemas/title_feed"
},
"feedLanguage": {
"$ref": "#/components/schemas/language"
}
}
},
"items_recent": {
"description": "List of episodes matching request\n",
"type": "array",
"items": {
"$ref": "#/components/schemas/item_podcast_recent"
}
},
"oldestItemPublishTime": {
"description": "The date and time the oldest episode in the feed/index\n",
"type": "integer",
"format": "Unix Epoch",
"example": 1546399813
},
"feeds_recent": {
"description": "List of feeds matching request\n",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/id_feed"
},
"url": {
"$ref": "#/components/schemas/url_feed"
},
"title": {
"$ref": "#/components/schemas/title_feed"
},
"newestItemPublishTime": {
"$ref": "#/components/schemas/newestItemPublishTime"
},
"oldestItemPublishTime": {
"$ref": "#/components/schemas/oldestItemPublishTime"
},
"itunesId": {
"$ref": "#/components/schemas/itunesId_feed"
},
"language": {
"$ref": "#/components/schemas/language"
},
"categories": {
"$ref": "#/components/schemas/categories"
}
}
}
},
"timeAdded": {
"description": "The date and time the feed was added to the index\n",
"type": "integer",
"format": "Unix Epoch",
"example": 1613786624
},
"status_feed": {
"description": "Status of feed after being added to index\n",
"type": "string",
"enum": [
"unconfirmed",
"confirmed"
],
"example": "confirmed"
},
"contentHash": {
"description": "Hash of the entire feed body\n",
"type": "string",
"example": "a652d25b56f3e2f0e069c0cc72145a85"
},
"feeds_recent_new": {
"description": "List of feeds matching request\n",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/id_feed"
},
"url": {
"$ref": "#/components/schemas/url_feed"
},
"image": {
"$ref": "#/components/schemas/image_feed"
},
"timeAdded": {
"$ref": "#/components/schemas/timeAdded"
},
"status": {
"$ref": "#/components/schemas/status_feed"
},
"contentHash": {
"$ref": "#/components/schemas/contentHash"
},
"language": {
"$ref": "#/components/schemas/language"
}
}
}
},
"feeds_recent_value": {
"description": "List of feeds matching request\n",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/id_feed"
},
"url": {
"$ref": "#/components/schemas/url_feed"
},
"title": {
"$ref": "#/components/schemas/title_feed"
},
"author": {
"$ref": "#/components/schemas/author"
},
"image": {
"$ref": "#/components/schemas/image_feed"
},
"newestItemPublishTime": {
"$ref": "#/components/schemas/newestItemPublishTime"
},
"itunesId": {
"$ref": "#/components/schemas/itunesId_feed"
},
"trendScore": {
"$ref": "#/components/schemas/trendScore"
},
"language": {
"$ref": "#/components/schemas/language"
},
"categories": {
"$ref": "#/components/schemas/categories"
}
}
}
},
"feedCount": {
"description": "Number of items in the `feeds` returned in request\n",
"type": "integer",
"example": 1
},
"itemCount": {
"description": "Number of items in the `items` returned in request\n",
"type": "integer",
"example": 1
},
"nextSince": {
"description": "Value to pass as `since` parameter to get next batch of data\n",
"type": "integer",
"format": "Unix Epoch",
"example": 1613805249
},
"position": {
"description": "Position in data\n",
"type": "integer",
"example": 12843054496
},
"feeds_data_obj": {
"type": "object",
"properties": {
"feedId": {
"$ref": "#/components/schemas/id_feed"
},
"feedUrl": {
"$ref": "#/components/schemas/url_feed"
},
"feedTitle": {
"$ref": "#/components/schemas/title_feed"
},
"feedDescription": {
"$ref": "#/components/schemas/description_feed"
},
"feedImage": {
"$ref": "#/components/schemas/image_feed"
},
"feedLanguage": {
"$ref": "#/components/schemas/language"
},
"feedItunesId": {
"$ref": "#/components/schemas/itunesId_feed"
}
}
},
"feeds_data": {
"description": "List of recent feed data\n",
"type": "array",
"items": {
"$ref": "#/components/schemas/feeds_data_obj"
}
},
"episodeAdded": {
"description": "The time the episode was added to the index\n",
"type": "integer",
"format": "Unix Epoch",
"example": 1613786624
},
"items_data_obj": {
"type": "object",
"properties": {
"episodeId": {
"$ref": "#/components/schemas/id_episode"
},
"episodeTitle": {
"$ref": "#/components/schemas/title_feed"
},
"episodeDescription": {
"$ref": "#/components/schemas/description_episode"
},
"episodeImage": {
"$ref": "#/components/schemas/image_episode"
},
"episodeTimestamp": {
"$ref": "#/components/schemas/datePublished"
},
"episodeAdded": {
"$ref": "#/components/schemas/episodeAdded"
},
"episodeEnclosureUrl": {
"$ref": "#/components/schemas/enclosureUrl"
},
"episodeEnclosureLength": {
"$ref": "#/components/schemas/enclosureLength"
},
"episodeEnclosureType": {
"$ref": "#/components/schemas/enclosureType"
},
"episodeDuration": {
"$ref": "#/components/schemas/duration"
},
"episodeType": {
"$ref": "#/components/schemas/episodeType"
},
"feedId": {
"$ref": "#/components/schemas/id_feed"
}
}
},
"items_data": {
"description": "List of recent episode item data\n",
"type": "array",
"items": {
"$ref": "#/components/schemas/items_data_obj"
}
},
"data": {
"description": "Object containing the recent data\n",
"type": "object",
"properties": {
"position": {
"$ref": "#/components/schemas/position"
},
"feeds": {
"$ref": "#/components/schemas/feeds_data"
},
"items": {
"$ref": "#/components/schemas/items_data"
}
}
},
"title_episode": {
"description": "Name of the episode\n",
"type": "string",
"example": "Gotham"
},
"items_soundbites": {
"description": "List of soundbites matching request\n",
"type": "array",
"items": {
"type": "object",
"properties": {
"enclosureUrl": {
"$ref": "#/components/schemas/enclosureUrl"
},
"title": {
"$ref": "#/components/schemas/title_soundbite"
},
"startTime": {
"$ref": "#/components/schemas/startTime"
},
"duration": {
"$ref": "#/components/schemas/duration_soundbite"
},
"episodeId": {
"$ref": "#/components/schemas/id_episode"
},
"episodeTitle": {
"$ref": "#/components/schemas/title_episode"
},
"feedTitle": {
"$ref": "#/components/schemas/title_feed"
},
"feedUrl": {
"$ref": "#/components/schemas/url_feed"
},
"feedId": {
"$ref": "#/components/schemas/id_feed"
}
}
}
},
"id_query_guid": {
"description": "The Podcast Index Id of the podcast GUID passed as an argument to the request\n",
"type": "integer",
"example": 920666
},
"query_guid_id": {
"description": "Object containing the input query data\n",
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/id_query_guid"
}
}
},
"query_podcastguid": {
"description": "The value of the `podcastguid` argument passed to the request.\n",
"type": "string",
"example": "917393e3-1b1e-5cef-ace4-edaa54e1f810"
},
"query_episodeguid": {
"description": "The value of the `episodeguid` argument passed to the request.\n",
"type": "string",
"example": "PC20143"
},
"query_byepisodeguid": {
"description": "Object containing the input query data\n",
"type": "object",
"properties": {
"podcastguid": {
"$ref": "#/components/schemas/query_podcastguid"
},
"episodeguid": {
"$ref": "#/components/schemas/query_episodeguid"
}
}
},
"value_byepisodeguid": {
"description": "Information for supporting the podcast via one of the \"Value for Value\" methods. May not be reported.\n\n\nExamples:\n - `lightning` value type: https://api.podcastindex.org/api/1.0/podcasts/byfeedid?id=169991&pretty\n - `webmonetization` value type: https://api.podcastindex.org/api/1.0/podcasts/byfeedid?id=779873&pretty\n",
"type": "object",
"nullable": true,
"properties": {
"model": {
"$ref": "#/components/schemas/model_v4v"
},
"destinations": {
"$ref": "#/components/schemas/destinations_v4v"
},
"title": {
"$ref": "#/components/schemas/title_episode"
},
"feedTitle": {
"$ref": "#/components/schemas/title_feed"
}
}
},
"value_batch_byepisodeguid": {
"description": "JSON data where key is the `podcastguid` and value is a list of `episodeguid` values.\n",
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
},
"example": {
"917393e3-1b1e-5cef-ace4-edaa54e1f810": [
"PC20141",
"PC20142",
"PC20143"
],
"c73b1a23-1c28-5edb-94c3-10d1745d0877": [
"bdea6759-a7b6-4c0d-9d1e-acca3133f4a9"
]
}
},
"guids": {
"description": "The `podcastguid` and `episodeguid` values passed to the request.\n",
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
},
"example": {
"917393e3-1b1e-5cef-ace4-edaa54e1f810": [
"PC20141",
"PC20142",
"PC20143"
],
"c73b1a23-1c28-5edb-94c3-10d1745d0877": [
"bdea6759-a7b6-4c0d-9d1e-acca3133f4a9"
]
}
},
"query_guids": {
"description": "Object containing the input query data\n",
"type": "object",
"properties": {
"guids": {
"$ref": "#/components/schemas/guids"
}
}
},
"value_byepisodeguid_batch": {
"description": "Information for supporting the podcast via one of the \"Value for Value\" methods.\n",
"type": "object",
"properties": {
"podcastGUID": {
"$ref": "#/components/schemas/podcastguid"
},
"guid": {
"$ref": "#/components/schemas/guid"
},
"title": {
"$ref": "#/components/schemas/title_episode"
},
"feedTitle": {
"$ref": "#/components/schemas/title_feed"
},
"model": {
"$ref": "#/components/schemas/model_v4v"
},
"destinations": {
"$ref": "#/components/schemas/destinations_v4v"
}
}
},
"value_guid_list": {
"description": "List of value blocks\n",
"type": "array",
"items": {
"$ref": "#/components/schemas/value_byepisodeguid_batch"
}
},
"allfound": {
"description": "Indicates if data was found for all `podcastguid` and `episodeguid` values.\n",
"type": "boolean",
"example": true
},
"found": {
"description": "Number of value data returned.\n",
"type": "integer",
"example": 4
},
"stats": {
"description": "An array statistic properties\n",
"type": "object",
"properties": {
"feedCountTotal": {
"description": "Total podcast feeds in the index.",
"type": "integer",
"example": 4048514
},
"episodeCountTotal": {
"description": "Total individual podcast episodes in the index.",
"type": "integer",
"example": 112890355
},
"feedsWithNewEpisodes3days": {
"description": "Podcast feeds with a new episode released in the last 3 days.",
"type": "integer",
"example": 87369
},
"feedsWithNewEpisodes10days": {
"description": "Podcast feeds with a new episode released in the last 10 days.",
"type": "integer",
"example": 242922
},
"feedsWithNewEpisodes30days": {
"description": "Podcast feeds with a new episode released in the last 30 days.",
"type": "integer",
"example": 352744
},
"feedsWithNewEpisodes90days": {
"description": "Podcast feeds with a new episode released in the last 90 days.",
"type": "integer",
"example": 478568
},
"feedsWithValueBlocks": {
"description": "Podcast feeds with a value block",
"type": "integer",
"example": 9772
}
}
},
"id_category": {
"description": "The internal PodcastIndex.org category ID.\n",
"type": "integer",
"example": 2
},
"name_category": {
"description": "The category name.\n",
"type": "string",
"example": "Books"
},
"feed_categories": {
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/id_category"
},
"name": {
"$ref": "#/components/schemas/name_category"
}
}
},
"feeds_categories": {
"description": "List of categories\n",
"type": "array",
"nullable": true,
"items": {
"$ref": "#/components/schemas/feed_categories"
}
},
"existed": {
"description": "Indicates if feed already exists in the index\n",
"type": "string",
"enum": [
"true",
"false"
],
"example": "true"
}
},
"responses": {
"400": {
"description": "Invalid request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
},
"example": {
"status": "false",
"description": "Invalid parameters"
}
}
}
},
"401": {
"description": "Not authenticated",
"content": {
"application/json": {
"schema": {
"type": "string"
},
"example": "Authorization header value either not set or blank."
}
}
},
"itunes_replacement": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"resultCount": {
"$ref": "#/components/schemas/resultCount"
},
"results": {
"$ref": "#/components/schemas/itunes_replacement_results"
}
}
}
}
}
},
"search_byterm": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"feeds": {
"$ref": "#/components/schemas/feeds"
},
"count": {
"$ref": "#/components/schemas/count"
},
"query": {
"$ref": "#/components/schemas/query_search"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"search_byperson": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"items": {
"$ref": "#/components/schemas/items_byperson"
},
"count": {
"$ref": "#/components/schemas/count"
},
"query": {
"$ref": "#/components/schemas/query_search"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"podcasts_byfeedid": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"query": {
"$ref": "#/components/schemas/query_id"
},
"feed": {
"$ref": "#/components/schemas/feed_podcast"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"podcasts_byfeedurl": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"query": {
"$ref": "#/components/schemas/query_url"
},
"feed": {
"$ref": "#/components/schemas/feed_podcast"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"podcasts_byitunesid": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"query": {
"$ref": "#/components/schemas/query_id"
},
"feed": {
"$ref": "#/components/schemas/feed_itunes"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"podcasts_byguid": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"query": {
"$ref": "#/components/schemas/query_guid"
},
"feed": {
"$ref": "#/components/schemas/feed_podcast"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"podcasts_bytag": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"feeds": {
"$ref": "#/components/schemas/feeds_bytag"
},
"count": {
"$ref": "#/components/schemas/count"
},
"total": {
"$ref": "#/components/schemas/total"
},
"nextStartAt": {
"$ref": "#/components/schemas/nextStartAt"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"bymedium": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"feeds": {
"$ref": "#/components/schemas/feeds"
},
"count": {
"$ref": "#/components/schemas/count"
},
"medium": {
"$ref": "#/components/schemas/medium"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"podcasts_trending": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"feeds": {
"$ref": "#/components/schemas/feeds_trending"
},
"count": {
"$ref": "#/components/schemas/count"
},
"max": {
"$ref": "#/components/schemas/max"
},
"since": {
"$ref": "#/components/schemas/since"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"podcasts_dead": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"feeds": {
"$ref": "#/components/schemas/feeds_dead"
},
"count": {
"$ref": "#/components/schemas/count"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"episodes_byfeedid": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"liveItems": {
"$ref": "#/components/schemas/liveItems_podcast"
},
"items": {
"$ref": "#/components/schemas/items_podcast"
},
"count": {
"$ref": "#/components/schemas/count"
},
"query": {
"oneOf": [
{
"$ref": "#/components/schemas/query_podcast_id_single"
},
{
"$ref": "#/components/schemas/query_podcast_id_multiple"
}
]
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"episodes_byfeedurl": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"items": {
"$ref": "#/components/schemas/items_podcast"
},
"count": {
"$ref": "#/components/schemas/count"
},
"query": {
"$ref": "#/components/schemas/query_url"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"episodes_byitunesid": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"items": {
"$ref": "#/components/schemas/items_itunesId"
},
"count": {
"$ref": "#/components/schemas/count"
},
"query": {
"$ref": "#/components/schemas/id_query"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"episodes_byid": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"id": {
"$ref": "#/components/schemas/id_episode"
},
"episode": {
"$ref": "#/components/schemas/episode_object"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"episodes_byguid": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"id": {
"$ref": "#/components/schemas/feedid_query"
},
"url": {
"$ref": "#/components/schemas/feedurl_query"
},
"podcastGuid": {
"$ref": "#/components/schemas/podcastguid"
},
"guid": {
"$ref": "#/components/schemas/guid_query"
},
"episode": {
"$ref": "#/components/schemas/episode_object"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"episodes_live": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"items": {
"$ref": "#/components/schemas/items_live"
},
"count": {
"$ref": "#/components/schemas/count"
},
"max": {
"$ref": "#/components/schemas/max"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"episodes_random": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"episodes": {
"$ref": "#/components/schemas/episodes_random_array"
},
"count": {
"$ref": "#/components/schemas/count"
},
"max": {
"$ref": "#/components/schemas/max"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"recent_episodes": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"items": {
"$ref": "#/components/schemas/items_recent"
},
"count": {
"$ref": "#/components/schemas/count"
},
"max": {
"$ref": "#/components/schemas/max"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"recent_feeds": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"feeds": {
"$ref": "#/components/schemas/feeds_recent"
},
"count": {
"$ref": "#/components/schemas/count"
},
"max": {
"$ref": "#/components/schemas/max"
},
"since": {
"$ref": "#/components/schemas/since"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"recent_newfeeds": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"feeds": {
"$ref": "#/components/schemas/feeds_recent_new"
},
"count": {
"$ref": "#/components/schemas/count"
},
"max": {
"$ref": "#/components/schemas/max"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"recent_newvaluefeeds": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"feeds": {
"$ref": "#/components/schemas/feeds_recent_value"
},
"count": {
"$ref": "#/components/schemas/count"
},
"max": {
"$ref": "#/components/schemas/max"
},
"since": {
"$ref": "#/components/schemas/since"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"recent_data": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"feedCount": {
"$ref": "#/components/schemas/feedCount"
},
"itemCount": {
"$ref": "#/components/schemas/itemCount"
},
"max": {
"$ref": "#/components/schemas/max"
},
"since": {
"$ref": "#/components/schemas/since"
},
"description": {
"$ref": "#/components/schemas/description_response"
},
"nextSince": {
"$ref": "#/components/schemas/nextSince"
},
"data": {
"$ref": "#/components/schemas/data"
}
}
}
}
}
},
"recent_soundbites": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"items": {
"$ref": "#/components/schemas/items_soundbites"
},
"count": {
"$ref": "#/components/schemas/count"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"value_byfeedid": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"query": {
"$ref": "#/components/schemas/query_id"
},
"value": {
"$ref": "#/components/schemas/value"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"value_byfeedurl": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"query": {
"$ref": "#/components/schemas/query_url"
},
"value": {
"$ref": "#/components/schemas/value"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"value_bypodcastguid": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"query": {
"$ref": "#/components/schemas/query_guid_id"
},
"value": {
"$ref": "#/components/schemas/value"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"value_byepisodeguid": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"query": {
"$ref": "#/components/schemas/query_byepisodeguid"
},
"value": {
"$ref": "#/components/schemas/value_byepisodeguid"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"value_batch_byepisodeguid": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"query": {
"$ref": "#/components/schemas/query_guids"
},
"value": {
"$ref": "#/components/schemas/value_guid_list"
},
"description": {
"$ref": "#/components/schemas/description_response"
},
"allFound": {
"$ref": "#/components/schemas/allfound"
},
"found": {
"$ref": "#/components/schemas/found"
}
}
}
}
}
},
"stats_current": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"stats": {
"$ref": "#/components/schemas/stats"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"categories_list": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"feeds": {
"$ref": "#/components/schemas/feeds_categories"
},
"count": {
"$ref": "#/components/schemas/count"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"hub_pubnotify": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"add_byfeedurl": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"feedId": {
"$ref": "#/components/schemas/id_feed"
},
"existed": {
"$ref": "#/components/schemas/existed"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
},
"add_byitunesid": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"$ref": "#/components/schemas/status"
},
"description": {
"$ref": "#/components/schemas/description_response"
}
}
}
}
}
}
}
}
}