{
  "openapi": "3.0.1",
  "info": {
    "title": "Podchaser Podcast Scraper",
    "description": "Scrape Podchaser podcasts by URL, category, ID, or name. Extract host contact emails, ratings, reviews, follower counts, reach data, sponsors, social links, hosts and guests, networks, and similar shows. Export JSON, CSV, Excel.",
    "version": "1.0",
    "x-build-id": "6rmp8inPMoxTnem62"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parsebird~podchaser-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parsebird-podchaser-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/parsebird~podchaser-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parsebird-podchaser-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/parsebird~podchaser-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parsebird-podchaser-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": {
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Podchaser URLs — podcast pages (e.g. https://www.podchaser.com/podcasts/the-daily-90473) or category pages (e.g. https://www.podchaser.com/podcasts/news).",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "categorySlugs": {
            "title": "Category Slugs",
            "type": "array",
            "description": "Podchaser category slugs to browse. Valid examples: news, comedy, business, technology, sports, arts, education, science, history, fiction, health-fitness, religion-spirituality, society-culture, music, government, politics.",
            "items": {
              "type": "string"
            }
          },
          "podcastIds": {
            "title": "Podcast IDs",
            "type": "array",
            "description": "Specific shows by numeric Podchaser ID (90473) or slug containing the ID (the-daily-90473).",
            "items": {
              "type": "string"
            }
          },
          "searchNames": {
            "title": "Search Names",
            "type": "array",
            "description": "Podcast names to search for on Podchaser. The top matches for each name are scraped.",
            "items": {
              "type": "string"
            }
          },
          "scrapeFullProfile": {
            "title": "Scrape full profile",
            "type": "boolean",
            "description": "Fetch each show's full Podchaser profile for social links, sponsors, hosts and guests, website, language, and verified reach. Turn off for faster, lighter runs using directory data only.",
            "default": true
          },
          "enrichContactFromRss": {
            "title": "Get contact email from RSS",
            "type": "boolean",
            "description": "Fetch the show's RSS feed to extract the host contact email from the itunes:owner block.",
            "default": true
          },
          "crawlSimilar": {
            "title": "Crawl similar podcasts",
            "type": "boolean",
            "description": "Expand the run to the 'similar podcasts' of every scraped show.",
            "default": false
          },
          "similarDepth": {
            "title": "Similar Crawl Depth",
            "minimum": 1,
            "maximum": 3,
            "type": "integer",
            "description": "How many hops of similar shows to follow when 'Crawl similar podcasts' is on.",
            "default": 1
          },
          "minRating": {
            "title": "Minimum Rating",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Keep only shows with a Podchaser rating at or above this value (0-5). 0 means no filter.",
            "default": 0
          },
          "minReviews": {
            "title": "Minimum Reviews",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only shows with at least this many written reviews. 0 means no filter.",
            "default": 0
          },
          "minEpisodes": {
            "title": "Minimum Episodes",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only shows with at least this many episodes. 0 means no filter.",
            "default": 0
          },
          "requireContactEmail": {
            "title": "Require a contact email",
            "type": "boolean",
            "description": "Keep only shows where a host contact email was found — a clean outreach list.",
            "default": false
          },
          "maxRecords": {
            "title": "Max Records",
            "minimum": 0,
            "type": "integer",
            "description": "Total cap on the number of podcast records returned. 0 means unlimited.",
            "default": 100
          },
          "maxPagesPerCategory": {
            "title": "Max Pages Per Category",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Pagination depth per category (about 25 shows per page).",
            "default": 4
          },
          "requestDelay": {
            "title": "Request Delay (ms)",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Delay between API requests, in milliseconds. Increase if you hit rate limits.",
            "default": 700
          },
          "maxConcurrency": {
            "title": "Max Concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum parallel requests.",
            "default": 4
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Optional. Podchaser needs no proxy — enable only for very large runs.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}