# Apple Podcasts API

> Apple Podcasts provides podcast charts, show details, episodes, and listener reviews as a workflow and API.

Apple Podcasts lists chart entries by chart, country, and category with List top podcasts. Search podcasts finds shows by name or topic in a country; Get podcast returns show details and newest available episodes by name or link. Get podcast reviews returns country-specific ratings and listener reviews for a show by name or link.

- Page: https://fous.com/tools/apple-podcasts
- Handle: `@apple-podcasts`
- Category: [Entertainment](https://fous.com/tools/category/entertainment)
- Source website: https://podcasts.apple.com
- Last verified: Sep 30, 2026

## Methods

### Get podcast

Operation `get_podcast`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Get podcast details and newest available episodes by name or Apple Podcasts link. Public listings and feeds may not include the full archive; subscription episodes have no public audio file, and older feed episodes may lack an individual Apple link.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `country` | string | no | `"GB"` | Country name or two-letter code for listings and ratings, such as United States or GB. |
| `podcast` | string | yes | `"The Daily"` | Podcast name or Apple Podcasts show link, such as The Daily. |
| `max_episodes` | integer | no | `55` | Maximum number of recent episodes to return, such as 20. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "podcast"
  ],
  "properties": {
    "country": {
      "type": "string",
      "default": "United States",
      "description": "Country name or two-letter code for listings and ratings, such as United States or GB.",
      "examples": [
        "GB"
      ]
    },
    "podcast": {
      "type": "string",
      "minLength": 1,
      "description": "Podcast name or Apple Podcasts show link, such as The Daily.",
      "examples": [
        "The Daily",
        "https://podcasts.apple.com/us/podcast/the-daily/id1200361736",
        "Huberman Lab"
      ]
    },
    "max_episodes": {
      "type": "integer",
      "default": 20,
      "maximum": 300,
      "minimum": 1,
      "description": "Maximum number of recent episodes to return, such as 20.",
      "x-fous-developer": true,
      "examples": [
        55,
        5
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "podcast": "The Daily"
    },
    {
      "podcast": "https://podcasts.apple.com/us/podcast/the-daily/id1200361736",
      "max_episodes": 55
    },
    {
      "country": "GB",
      "podcast": "Huberman Lab",
      "max_episodes": 5
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `name` | string | `"The Daily"` | Show name. |
| `category` | string or null | `"Daily News"` | Main podcast category. |
| `episodes` | array |  | Newest available episodes first. |
| `episodes[].title` | string or null | `"He Was Deported to a Country He’d Never Heard Of"` | Episode title. |
| `episodes[].length` | string or null | `"27 min"` | Episode length as readable text. |
| `episodes[].description` | string or null |  | Episode description as plain text. |
| `episodes[].episode_url` | string or null | `"https://podcasts.apple.com/us/podcast/he-was-deported-to-a-country-hed-never-heard-of/id1200361736?i=1000792000822"` | Individual episode link, when available. |
| `episodes[].release_date` | string or null | `"2026-09-28"` | Release date in YYYY-MM-DD. |
| `episodes[].audio_file_url` | string or null | `"https://dts.podtrac.com/redirect.mp3/pdst.fm/e/pfx.vpixl.com/6qj4J/pscrb.fm/rss/p/nyt.simplecastaudio.com/03d8b493-87fc` | Public audio file link, when available. |
| `episodes[].length_seconds` | integer or null | `1636` | Episode duration in seconds. |
| `publisher` | string or null | `"The New York Times"` | Show creator or publisher. |
| `podcast_id` | string or null | `"1200361736"` | Apple Podcasts show ID. |
| `artwork_url` | string or null | `"https://is1-ssl.mzstatic.com/image/thumb/Podcasts221/v4/ab/64/66/ab6466a9-9a7d-e20e-7a3d-bc5be37d29ce/mza_1508485281317` | Show artwork link. |
| `description` | string or null | `"This is what the news should sound like. The biggest stories of our time, told by the best journalists in the world. Ho` | Show description as plain text. |
| `website_url` | string or null | `"https://www.nytimes.com/the-daily"` | Show website link. |
| `rating_count` | integer or null | `105770` | Number of listener ratings. |
| `rss_feed_url` | string or null | `"https://feeds.simplecast.com/Sl5CSM3S"` | Public podcast feed link. |
| `average_rating` | number or null | `4.3` | Average listener rating out of 5. |
| `update_frequency` | string or null | `"Updated Daily"` | Update frequency displayed for the show. |
| `apple_podcasts_url` | string | `"https://podcasts.apple.com/us/podcast/the-daily/id1200361736"` | Apple Podcasts show page link. |

**Example input**

```json
{
  "podcast": "The Daily"
}
```

**Example output**

```json
{
  "name": "The Daily",
  "category": "Daily News",
  "episodes": [
    {
      "title": "He Was Deported to a Country He’d Never Heard Of",
      "length": "27 min",
      "description": "In its efforts to deport as many undocumented immigrants as possible, the Trump administration has increasingly relied on a highly controversial strategy: deporting people to countries they have no co…",
      "episode_url": "https://podcasts.apple.com/us/podcast/he-was-deported-to-a-country-hed-never-heard-of/id1200361736?i=1000792000822",
      "release_date": "2026-09-28",
      "audio_file_url": "https://dts.podtrac.com/redirect.mp3/pdst.fm/e/pfx.vpixl.com/6qj4J/pscrb.fm/rss/p/nyt.simplecastaudio.com/03d8b493-87fc-4bd1-931f-8a8e9b945d8a/episodes/c40ef013-6d26-4eac-8a4b-0fe3eaee4df2/audio/128/d…",
      "length_seconds": 1636
    }
  ],
  "publisher": "The New York Times",
  "podcast_id": "1200361736",
  "artwork_url": "https://is1-ssl.mzstatic.com/image/thumb/Podcasts221/v4/ab/64/66/ab6466a9-9a7d-e20e-7a3d-bc5be37d29ce/mza_15084852813176276273.jpg/1200x1200bb.jpg",
  "description": "This is what the news should sound like. The biggest stories of our time, told by the best journalists in the world. Hosted by Michael Barbaro, Rachel Abrams and Natalie Kitroeff. Twenty minutes a day…",
  "website_url": "https://www.nytimes.com/the-daily",
  "rating_count": 105770,
  "rss_feed_url": "https://feeds.simplecast.com/Sl5CSM3S",
  "average_rating": 4.3,
  "update_frequency": "Updated Daily",
  "apple_podcasts_url": "https://podcasts.apple.com/us/podcast/the-daily/id1200361736"
}
```

### Get podcast reviews

Operation `get_podcast_reviews`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Get a podcast’s country-specific rating totals and up to 500 listener reviews, sorted by newest or most helpful. The review feed exposes at most 500 reviews; some countries may show only the reviews available on the podcast page.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `sort` | string | no | `"most_helpful"` | Review order, for example most_recent. |
| `country` | string | no | `"United Kingdom"` | Country name or two-letter code for ratings and reviews, for example United Kingdom or GB. |
| `podcast` | string | yes | `"https://podcasts.apple.com/us/podcast/crime-junkie/id1322200189"` | Podcast name or Apple Podcasts link, for example Crime Junkie or https://podcasts.apple.com/us/podcast/crime-junkie/id1322200189. |
| `max_results` | integer | no | `55` | Maximum number of reviews, for example 50. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "podcast"
  ],
  "properties": {
    "sort": {
      "enum": [
        "most_recent",
        "most_helpful"
      ],
      "type": "string",
      "default": "most_recent",
      "description": "Review order, for example most_recent.",
      "examples": [
        "most_helpful"
      ]
    },
    "country": {
      "type": "string",
      "default": "United States",
      "description": "Country name or two-letter code for ratings and reviews, for example United Kingdom or GB.",
      "examples": [
        "United Kingdom",
        "Fiji",
        "Malta"
      ]
    },
    "podcast": {
      "type": "string",
      "description": "Podcast name or Apple Podcasts link, for example Crime Junkie or https://podcasts.apple.com/us/podcast/crime-junkie/id1322200189.",
      "examples": [
        "https://podcasts.apple.com/us/podcast/crime-junkie/id1322200189",
        "Crime Junkie"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 50,
      "maximum": 500,
      "minimum": 1,
      "description": "Maximum number of reviews, for example 50.",
      "x-fous-developer": true,
      "examples": [
        55,
        5
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "sort": "most_helpful",
      "country": "United Kingdom",
      "podcast": "https://podcasts.apple.com/us/podcast/crime-junkie/id1322200189",
      "max_results": 55
    },
    {
      "podcast": "Crime Junkie"
    },
    {
      "country": "Fiji",
      "podcast": "Crime Junkie",
      "max_results": 5
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `reviews` | array |  |  |
| `reviews[].date` | string or null | `"2026-09-06"` |  |
| `reviews[].stars` | integer or null | `5` |  |
| `reviews[].page_url` | string | `"https://podcasts.apple.com/gb/podcast/id1322200189"` | Podcast page on which the listener review can be read. |
| `reviews[].review_text` | string or null | `"Listen every week"` |  |
| `reviews[].review_title` | string or null | `"Love the podcast"` |  |
| `reviews[].reviewer_name` | string or null | `"Lilkano98"` |  |
| `podcast_url` | string | `"https://podcasts.apple.com/gb/podcast/id1322200189"` | Apple Podcasts show page in the selected country. |
| `podcast_name` | string | `"Crime Junkie"` | Podcast title. |
| `average_rating` | number or null | `4.7` | Average country-specific rating out of five, or null when unavailable. |
| `number_of_ratings` | integer | `7466` | Number of country-specific ratings. |

**Example input**

```json
{
  "sort": "most_helpful",
  "country": "United Kingdom",
  "podcast": "https://podcasts.apple.com/us/podcast/crime-junkie/id1322200189",
  "max_results": 55
}
```

**Example output**

```json
{
  "reviews": [
    {
      "date": "2026-09-06",
      "stars": 5,
      "page_url": "https://podcasts.apple.com/gb/podcast/id1322200189",
      "review_text": "Listen every week",
      "review_title": "Love the podcast",
      "reviewer_name": "Lilkano98"
    },
    {
      "date": "2026-09-13",
      "stars": 3,
      "page_url": "https://podcasts.apple.com/gb/podcast/id1322200189",
      "review_text": "Just discovered Crime Junkie (4 years late!! I know). I’ve already binged for days and still have years to catch up on. Soooo excited. I’m already hooked. From a happy listener in London 🇬🇧. Update:…",
      "review_title": "Hooked and binging",
      "reviewer_name": "Laeititia01"
    },
    {
      "date": "2026-08-31",
      "stars": 5,
      "page_url": "https://podcasts.apple.com/gb/podcast/id1322200189",
      "review_text": "I get that there are Ads but that Pepper Pig one is too much of a jolt for this podcast. Doesn’t encourage me to subscribe, just to listen to an alternative until you no longer play that ad. Please st…",
      "review_title": "Great but Get Rid of Pepper Pig Ad!",
      "reviewer_name": "Claire love's Karen Millen"
    }
  ],
  "podcast_url": "https://podcasts.apple.com/gb/podcast/id1322200189",
  "podcast_name": "Crime Junkie",
  "average_rating": 4.7,
  "number_of_ratings": 7466
}
```

### List top podcasts

Operation `list_top_podcasts`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

List Apple Podcasts chart entries in rank order for a country and category. Category episode charts show up to 50 entries; other charts show up to 100.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `chart` | string | no | `"top_shows"` | Chart to list, e.g. top_shows. |
| `country` | string | no | `"United Kingdom"` | Country name or two-letter code, e.g. United Kingdom. |
| `category` | string | no | `"True Crime"` | Podcast category, e.g. True Crime; use all for the overall chart. |
| `max_results` | integer | no | `100` | Maximum chart entries, e.g. 50. |

**Input schema**

```json
{
  "type": "object",
  "properties": {
    "chart": {
      "enum": [
        "top_shows",
        "top_episodes"
      ],
      "type": "string",
      "default": "top_shows",
      "description": "Chart to list, e.g. top_shows.",
      "examples": [
        "top_shows",
        "top_episodes"
      ]
    },
    "country": {
      "type": "string",
      "default": "United States",
      "description": "Country name or two-letter code, e.g. United Kingdom.",
      "examples": [
        "United Kingdom",
        "United States",
        "CA"
      ]
    },
    "category": {
      "type": "string",
      "default": "all",
      "description": "Podcast category, e.g. True Crime; use all for the overall chart.",
      "examples": [
        "True Crime",
        "all",
        "News"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 50,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum chart entries, e.g. 50.",
      "x-fous-developer": true,
      "examples": [
        100,
        50,
        20
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "chart": "top_shows",
      "country": "United Kingdom",
      "category": "True Crime",
      "max_results": 100
    },
    {
      "chart": "top_shows",
      "country": "United States",
      "category": "all",
      "max_results": 50
    },
    {
      "chart": "top_episodes",
      "country": "United States",
      "category": "News",
      "max_results": 20
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `top_podcasts` | array |  |  |
| `top_podcasts[].rank` | integer | `1` |  |
| `top_podcasts[].category` | string or null | `"True Crime"` |  |
| `top_podcasts[].publisher` | string or null | `"RedHanded"` |  |
| `top_podcasts[].artwork_url` | string or null | `"https://is1-ssl.mzstatic.com/image/thumb/Podcasts221/v4/37/38/73/373873c6-ff52-d2de-945c-3a1aab729c6d/mza_1834878452871` |  |
| `top_podcasts[].podcast_name` | string or null | `"RedHanded"` |  |
| `top_podcasts[].episode_title` | string or null | `"Trump Rejects Iran's Ceasefire, UK Foiled Plot Near US Base, Trump Press Corps Fight"` |  |
| `top_podcasts[].apple_podcast_id` | string or null | `"1250599915"` |  |
| `top_podcasts[].apple_podcasts_url` | string or null | `"https://podcasts.apple.com/gb/podcast/redhanded/id1250599915?uo=2"` |  |

**Example input**

```json
{
  "chart": "top_shows",
  "country": "United Kingdom",
  "category": "True Crime",
  "max_results": 100
}
```

**Example output**

```json
{
  "top_podcasts": [
    {
      "rank": 1,
      "category": "True Crime",
      "publisher": "RedHanded",
      "artwork_url": "https://is1-ssl.mzstatic.com/image/thumb/Podcasts221/v4/37/38/73/373873c6-ff52-d2de-945c-3a1aab729c6d/mza_18348784528713052513.jpg/600x600bb.png",
      "podcast_name": "RedHanded",
      "episode_title": null,
      "apple_podcast_id": "1250599915",
      "apple_podcasts_url": "https://podcasts.apple.com/gb/podcast/redhanded/id1250599915?uo=2"
    },
    {
      "rank": 2,
      "category": "True Crime",
      "publisher": "Casefile Presents",
      "artwork_url": "https://is1-ssl.mzstatic.com/image/thumb/Podcasts221/v4/32/81/a3/3281a345-6fa5-1d0d-b0bc-f02b0850a0ae/mza_17562537467118278179.jpeg/600x600bb.png",
      "podcast_name": "Casefile True Crime",
      "episode_title": null,
      "apple_podcast_id": "998568017",
      "apple_podcasts_url": "https://podcasts.apple.com/gb/podcast/casefile-true-crime/id998568017?uo=2"
    },
    {
      "rank": 3,
      "category": "True Crime",
      "publisher": "The New Yorker",
      "artwork_url": "https://is1-ssl.mzstatic.com/image/thumb/Podcasts211/v4/67/d5/37/67d537b9-b27e-240b-b9a2-43c13bdfd7fb/mza_4163719876671560348.jpeg/600x600bb.png",
      "podcast_name": "In The Dark",
      "episode_title": null,
      "apple_podcast_id": "1148175292",
      "apple_podcasts_url": "https://podcasts.apple.com/gb/podcast/in-the-dark/id1148175292?uo=2"
    }
  ]
}
```

### Search podcasts

Operation `search_podcasts`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Find Apple Podcasts shows by name or topic in a country, ordered by search relevance. Ratings appear when a show page provides them. Search returns at most 100 shows per request, even when max_results is higher.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `query` | string | yes | `"personal finance"` | Podcast name or topic to search for, such as Huberman or personal finance. |
| `country` | string | no | `"United Kingdom"` | Country name or two-letter country code, such as United States or GB. |
| `max_results` | integer | no | `3` | Maximum number of shows to return, such as 20. The public search currently provides at most 100. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "Podcast name or topic to search for, such as Huberman or personal finance.",
      "examples": [
        "personal finance",
        "Huberman",
        "zzzxqqqneveramatch2026"
      ]
    },
    "country": {
      "type": "string",
      "default": "United States",
      "description": "Country name or two-letter country code, such as United States or GB.",
      "examples": [
        "United Kingdom",
        "US"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 20,
      "maximum": 200,
      "minimum": 1,
      "description": "Maximum number of shows to return, such as 20. The public search currently provides at most 100.",
      "x-fous-developer": true,
      "examples": [
        3,
        2,
        101
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "query": "personal finance",
      "country": "United Kingdom",
      "max_results": 3
    },
    {
      "query": "Huberman"
    },
    {
      "query": "zzzxqqqneveramatch2026",
      "max_results": 2
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `podcasts` | array |  | Shows in search relevance order. |
| `podcasts[].publisher` | string or null | `"Hargreaves Lansdown"` | Publisher or creator. |
| `podcasts[].artwork_url` | string or null | `"https://is1-ssl.mzstatic.com/image/thumb/Podcasts211/v4/6a/15/90/6a15901c-e762-c923-9c86-b294be3948ab/mza_1164339748231` | Show artwork link. |
| `podcasts[].podcast_name` | string | `"Switch Your Money On"` | Name of the show. |
| `podcasts[].rating_count` | integer or null | `62` | Number of listener ratings, when shown. |
| `podcasts[].rss_feed_url` | string or null | `"https://feeds.acast.com/public/shows/switch-your-money-on"` | Show RSS feed link, when available. |
| `podcasts[].episode_count` | integer or null | `158` | Number of episodes listed for the show. |
| `podcasts[].main_category` | string or null | `"Investing"` | Main podcast category. |
| `podcasts[].average_rating` | number or null | `4.1` | Average listener rating out of 5, when shown. |
| `podcasts[].apple_podcast_id` | string or null | `"1580527545"` | Apple Podcasts show ID. |
| `podcasts[].apple_podcasts_url` | string | `"https://podcasts.apple.com/gb/podcast/switch-your-money-on/id1580527545?uo=4"` | Apple Podcasts show page link. |
| `podcasts[].latest_episode_date` | string or null | `"2026-07-30"` | Most recent episode date in YYYY-MM-DD, when known. |

**Example input**

```json
{
  "query": "personal finance",
  "country": "United Kingdom",
  "max_results": 3
}
```

**Example output**

```json
{
  "podcasts": [
    {
      "publisher": "Hargreaves Lansdown",
      "artwork_url": "https://is1-ssl.mzstatic.com/image/thumb/Podcasts211/v4/6a/15/90/6a15901c-e762-c923-9c86-b294be3948ab/mza_11643397482313350095.jpeg/600x600bb.jpg",
      "podcast_name": "Switch Your Money On",
      "rating_count": 62,
      "rss_feed_url": "https://feeds.acast.com/public/shows/switch-your-money-on",
      "episode_count": 158,
      "main_category": "Investing",
      "average_rating": 4.1,
      "apple_podcast_id": "1580527545",
      "apple_podcasts_url": "https://podcasts.apple.com/gb/podcast/switch-your-money-on/id1580527545?uo=4",
      "latest_episode_date": "2026-07-30"
    },
    {
      "publisher": "Jesse Cramer",
      "artwork_url": "https://is1-ssl.mzstatic.com/image/thumb/Podcasts221/v4/e0/c1/61/e0c161e2-ef2c-cf62-06e8-eff7275b102a/mza_13249675235813354632.png/600x600bb.jpg",
      "podcast_name": "Personal Finance for Long-Term Investors",
      "rating_count": 2,
      "rss_feed_url": "https://rss.libsyn.com/shows/324683/destinations/2640104.xml",
      "episode_count": 154,
      "main_category": "Investing",
      "average_rating": 5,
      "apple_podcast_id": "1553180943",
      "apple_podcasts_url": "https://podcasts.apple.com/gb/podcast/personal-finance-for-long-term-investors/id1553180943?uo=4",
      "latest_episode_date": "2026-09-09"
    },
    {
      "publisher": "BBC Radio 4",
      "artwork_url": "https://is1-ssl.mzstatic.com/image/thumb/Podcasts211/v4/fc/96/5a/fc965a03-e0a5-3d1e-21a0-3c1063380d1e/mza_15956568487861186023.jpg/600x600bb.jpg",
      "podcast_name": "Money Box",
      "rating_count": 803,
      "rss_feed_url": "https://podcasts.files.bbci.co.uk/b006qjnv.rss",
      "episode_count": 746,
      "main_category": "Business",
      "average_rating": 4.2,
      "apple_podcast_id": "263570678",
      "apple_podcasts_url": "https://podcasts.apple.com/gb/podcast/money-box/id263570678?uo=4",
      "latest_episode_date": "2026-09-26"
    }
  ]
}
```

## Quick start

Replace `YOUR_API_KEY` with a Fous API key. To create one, open Developers at the bottom of Fous Studio, turn on Developer mode, then go to API keys (https://app.fous.com/keys). Change the values in `input` to run the same tool on new data.

```bash
curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 180 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@apple-podcasts",
  "visibility": "public",
  "operation": "get_podcast",
  "version": 1,
  "input": {
    "podcast": "The Daily"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
import json
import urllib.error
import urllib.request

api_key = "YOUR_API_KEY"

body = json.loads("{\n  \"api\": \"@apple-podcasts\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_podcast\",\n  \"version\": 1,\n  \"input\": {\n    \"podcast\": \"The Daily\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=180) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
const apiKey = "YOUR_API_KEY";

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(180_000),
  body: JSON.stringify({
  "api": "@apple-podcasts",
  "visibility": "public",
  "operation": "get_podcast",
  "version": 1,
  "input": {
    "podcast": "The Daily"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

## Use from an AI assistant

Connect this tool to Claude Code, Claude Desktop, Cursor, VS Code, Codex and any MCP client as its own MCP server. Each method is a typed tool whose arguments are the method’s input.

- Server URL: `https://api.fous.com/mcp/tools/apple-podcasts`
- Authorization: `Authorization: Bearer <Fous API key>`

**Tools**

- `get_podcast`: Get podcast. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `get_podcast_reviews`: Get podcast reviews. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `list_top_podcasts`: List top podcasts. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `search_podcasts`: Search podcasts. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `fous_get_run`: the result of a run that was still going, by its `request_id`. Free.

Claude Code:

```bash
claude mcp add --scope user --transport http fous-apple-podcasts https://api.fous.com/mcp/tools/apple-podcasts --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"
```

To give the assistant every tool, connect `https://api.fous.com/mcp`: it finds one with `fous_search_tools` and runs it with `fous_run_tool`. Setup for other clients: https://fous.com/llms-full.txt.

## Use cases

- Track podcast chart rankings by country and category
- Find shows about a topic or by name
- Compare show ratings, publishers, and episode counts
- Review the newest available episodes for a show
- Summarize listener reviews by country

## FAQ

### Can I run it with my own inputs?

Yes. Change the inputs in Studio and press Run, or send new inputs from your code, or ask a connected AI assistant.

### Can I call this Apple Podcasts tool as an API?

Yes. Send a POST request to /v1/query with your Fous API key and the inputs, and get JSON back.

### How much does it cost?

Each completed run costs 1 credit. Failed runs without a completed receipt are free; completed work can remain charged if delivery is interrupted. With pay as you go, a credit costs 1¢. Monthly plans cost less per credit.

### Do I need a Apple Podcasts account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from podcasts.apple.com when you run it. Some results are reused for up to 24 hours, and results that use your account or key are never reused. It was last verified on Sep 30, 2026.

### Which podcasts top a country’s chart?

List top podcasts returns chart entries in rank order using a chart and country, with an optional category.

### What are a show’s newest available episodes?

Get podcast returns show details and newest available episodes when given a show name or Apple Podcasts link.

### What do listeners rate and say about a show?

Get podcast reviews returns country-specific rating totals and available listener reviews, sorted by newest or most helpful.

## Related

- [Spotify API](https://fous.com/tools/spotify.md): Spotify returns public artist profiles, album credits and ordered tracks, song details and play counts, up to 500 playlist songs, keyword results, and country-based podcast charts; dates and regional options vary.
- [Apple App Store API](https://fous.com/tools/apple-app-store.md): Apple App Store returns public app listings, keyword search, ratings, prices, listed purchases, country-specific reviews and visible replies, and up to 200 ranked chart apps.
- [Apple Music API](https://fous.com/tools/apple-music.md): Apple Music returns albums, tracks, artist profiles, latest releases, top music, matching songs, and current charts; prices, previews, and older albums may be unavailable.
- [Listen Notes API](https://fous.com/tools/listen-notes.md): Listen Notes searches episodes and finds podcast rankings and publishing details in the first 50 public results; later pages require login, and details may be blank.
- [Microsoft Store API](https://fous.com/tools/microsoft-store.md): Microsoft Store returns app and game listings, country-specific searches, and ranked charts; update notes, purchase prices, and exact rating counts may be unavailable.
- [Audible API](https://fous.com/tools/audible.md): Audible offers audiobooks, podcasts, and audio entertainment, with public book details and current bestselling audiobook charts; availability and categories vary by store.
- [Deezer API](https://fous.com/tools/deezer.md): Deezer provides albums with ordered tracklists, song recording details, and current worldwide charts or official country-playlist tracks; previews and some tempo data may be unavailable or expire.
- [Google Play API](https://fous.com/tools/google-play.md): Google Play helps people discover Android apps and games, view public listings and search results, read reviews when available by app and region, and see country-specific top charts.
- [All Entertainment tools](https://fous.com/tools/category/entertainment)
