{
  "openapi": "3.0.1",
  "info": {
    "title": "Apple Podcasts Scraper",
    "description": "Shows from Apple Podcasts search and top charts, or any podcast you name, with ratings and episodes from each show's RSS feed. Charts cover any country, up to 100 shows each, and can be narrowed to any of 110 genres.",
    "version": "0.1",
    "x-build-id": "ee2rCLyZmrb5e2dWm"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/deriverge~apple-podcasts-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-deriverge-apple-podcasts-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/deriverge~apple-podcasts-scraper/runs": {
      "post": {
        "operationId": "runs-sync-deriverge-apple-podcasts-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/deriverge~apple-podcasts-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-deriverge-apple-podcasts-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": {
          "queries": {
            "title": "Search terms",
            "type": "array",
            "description": "Search the Apple Podcasts directory for these terms, up to 200 podcasts per term. Leave empty to skip search.",
            "items": {
              "type": "string"
            }
          },
          "podcasts": {
            "title": "Podcasts",
            "type": "array",
            "description": "Apple Podcasts links, numeric Apple IDs or RSS feed URLs, in any mix, for example https://podcasts.apple.com/us/podcast/the-daily/id1200361736 or https://feeds.npr.org/510289/podcast.xml.",
            "items": {
              "type": "string"
            }
          },
          "chartCountries": {
            "title": "Chart countries",
            "type": "array",
            "description": "Two-letter storefront codes whose top charts to read, for example us, gb, de, au, jp. Leave empty to skip charts.",
            "items": {
              "type": "string"
            }
          },
          "chartGenres": {
            "title": "Chart genres",
            "type": "array",
            "description": "Genre names or Apple genre IDs, for example Business, True Crime, Technology, Daily News or 1489. Subgenres work too, for example Entrepreneurship. Apple's official chart feed has no genre charts, so a genre returns the shows of that genre found in the overall top 100, in chart order. Leave empty for the overall chart.",
            "items": {
              "type": "string"
            }
          },
          "chartKind": {
            "title": "Chart",
            "enum": [
              "top",
              "top-subscriber"
            ],
            "type": "string",
            "description": "Both charts come from Apple's official chart feed and go to 100 entries. The subscriber chart ranks shows by paid subscriptions.",
            "default": "top"
          },
          "chartLimit": {
            "title": "Chart size",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Entries per chart, from the top. Apple's official chart feed lists up to 100, so larger values return 100.",
            "default": 100
          },
          "country": {
            "title": "Storefront",
            "type": "string",
            "description": "Two-letter storefront for search, lookups and ratings, for example us, gb, de. Charts use their own country list.",
            "default": "us"
          },
          "includeRatings": {
            "title": "Include ratings",
            "type": "boolean",
            "description": "Read the average rating and the number of ratings from each podcast's page. One extra request per podcast, no extra charge.",
            "default": false
          },
          "includeEpisodes": {
            "title": "Include episodes",
            "type": "boolean",
            "description": "Read each podcast's feed and return its episodes with audio URL, duration, numbers and show notes. Charged per episode.",
            "default": false
          },
          "maxEpisodesPerPodcast": {
            "title": "Maximum episodes per podcast",
            "minimum": 1,
            "type": "integer",
            "description": "Newest first. Podcast feeds carry the whole archive, so this is what keeps a broad run affordable.",
            "default": 50
          },
          "episodesPublishedAfter": {
            "title": "Episodes published after",
            "type": "string",
            "description": "Drop episodes older than this date (YYYY-MM-DD). Episodes without a date are kept. Dropped episodes are never charged."
          },
          "keywords": {
            "title": "Episode keywords (any of)",
            "type": "array",
            "description": "Keep only episodes whose title, show notes or categories contain at least one of these words or phrases as whole words, case-insensitive. Dropped episodes are never charged.",
            "items": {
              "type": "string"
            }
          },
          "includeContent": {
            "title": "Full show notes",
            "type": "boolean",
            "description": "Return the complete show notes as plain text in the content field. Otherwise summary holds the first 300 characters and content is null.",
            "default": false
          },
          "maxPodcasts": {
            "title": "Maximum podcasts",
            "minimum": 1,
            "type": "integer",
            "description": "Cap on distinct podcasts collected from search, charts and your list together.",
            "default": 500
          },
          "newOnly": {
            "title": "Return only rows new since the last run",
            "type": "boolean",
            "description": "Keeps a snapshot per watch name (or per saved task) and returns only rows that were not there before. Schedule it daily and you have an alert that bills only for what is new; the CHANGES record also lists what disappeared.",
            "default": false
          },
          "watchName": {
            "title": "Watch name",
            "type": "string",
            "description": "Name of the snapshot used by the new-only mode, for example \"true-crime-us\". Runs from a saved task get a snapshot automatically even without a name."
          },
          "maxItems": {
            "title": "Maximum rows",
            "minimum": 1,
            "type": "integer",
            "description": "Hard cap on returned rows in the run, podcasts and episodes together.",
            "default": 5000
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}