{
  "openapi": "3.0.1",
  "info": {
    "title": "Apple Podcasts Scraper – Episodes, Charts & Podcast RSS Feeds",
    "description": "Apple Podcasts scraper without login: search podcasts and episodes, top podcast and episode charts per country and genre, podcast details (feed URL, genres, episode count, ratings) and podcast episodes from RSS feeds with audio URL, duration, season, explicit flag and transcript links.",
    "version": "1.0",
    "x-build-id": "d7kKrucbcMMY8Hlh1"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/openharvest~podcast-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-openharvest-podcast-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/openharvest~podcast-scraper/runs": {
      "post": {
        "operationId": "runs-sync-openharvest-podcast-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/openharvest~podcast-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-openharvest-podcast-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "charts",
              "podcastDetails",
              "newEpisodes"
            ],
            "type": "string",
            "description": "<b>search</b> = search Apple Podcasts for shows or episodes. <b>charts</b> = Apple Podcasts top shows / top episodes per country (and genre). <b>podcastDetails</b> = specific podcasts with their episode list from the RSS feed. <b>newEpisodes</b> = only episodes published since a date (for monitoring).",
            "default": "search"
          },
          "searchQuery": {
            "title": "Search query",
            "type": "string",
            "description": "Mode <b>search</b>: keywords, e.g. <code>artificial intelligence</code>, <code>true crime</code>, a show name or a host name.",
            "default": "technology"
          },
          "searchType": {
            "title": "Search for",
            "enum": [
              "podcast",
              "episode"
            ],
            "type": "string",
            "description": "Mode <b>search</b>: return podcasts (shows) or individual episodes.",
            "default": "podcast"
          },
          "country": {
            "title": "Country",
            "type": "string",
            "description": "Two-letter Apple Podcasts store country code: <code>us</code>, <code>gb</code>, <code>de</code>, <code>fr</code>, <code>tr</code>, <code>br</code>, <code>jp</code>, <code>in</code> … Used for search and charts.",
            "default": "us"
          },
          "chartType": {
            "title": "Chart",
            "enum": [
              "podcasts",
              "episodes"
            ],
            "type": "string",
            "description": "Mode <b>charts</b>: top shows or top (trending) episodes.",
            "default": "podcasts"
          },
          "genre": {
            "title": "Genre (charts)",
            "enum": [
              "",
              "1301",
              "1321",
              "1303",
              "1304",
              "1483",
              "1511",
              "1512",
              "1487",
              "1305",
              "1502",
              "1310",
              "1489",
              "1314",
              "1533",
              "1324",
              "1545",
              "1318",
              "1488",
              "1309"
            ],
            "type": "string",
            "description": "Mode <b>charts</b>, top shows only: limit the chart to one Apple Podcasts genre. Empty = all genres.",
            "default": ""
          },
          "podcasts": {
            "title": "Podcasts",
            "type": "array",
            "description": "Modes <b>podcastDetails</b> and <b>newEpisodes</b>: Apple Podcasts URLs (<code>https://podcasts.apple.com/us/podcast/huberman-lab/id1545953110</code>), Apple IDs (<code>1545953110</code>) or RSS feed URLs (<code>https://feeds.megaphone.fm/hubermanlab</code>).",
            "items": {
              "type": "string"
            }
          },
          "includeEpisodes": {
            "title": "Include episodes",
            "type": "boolean",
            "description": "Modes <b>search</b> (podcasts) and <b>charts</b> (top shows): also read each podcast's RSS feed and return its episodes (each episode is charged as an 'episode' event). Always on in podcastDetails and newEpisodes.",
            "default": false
          },
          "maxEpisodesPerPodcast": {
            "title": "Max episodes per podcast",
            "minimum": 0,
            "type": "integer",
            "description": "Newest N episodes per podcast. 0 = all episodes in the feed.",
            "default": 20
          },
          "onlyNewerThan": {
            "title": "Only episodes newer than",
            "type": "string",
            "description": "Skip episodes published before this date. Absolute date (YYYY-MM-DD) or relative period such as <code>7 days</code>, <code>1 month</code>. Mode <b>newEpisodes</b> uses <code>7 days</code> when empty."
          },
          "includeRatings": {
            "title": "Include ratings",
            "type": "boolean",
            "description": "Add the Apple Podcasts star rating (<code>ratingAverage</code>), number of ratings (<code>ratingCount</code>) and show description to each podcast. Needs one extra page load per podcast.",
            "default": false
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum number of items in total (podcasts + episodes). You pay per item, so this also caps your cost. Search returns at most 200 results; charts at most 200 shows / 100 episodes.",
            "default": 100
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Usually not needed. Apple limits the search API to about 20 requests per minute per IP; the Actor paces itself. Use Apify Proxy only for very large jobs.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}