{
  "openapi": "3.0.1",
  "info": {
    "title": "Podcast RSS Scraper — Episodes, Audio & Transcript Links",
    "description": "Export podcast episodes from public RSS, Atom or Apple Podcasts show URLs: audio links, dates, durations, show notes and published transcript/chapter links. Per-episode fees and separate Apify usage apply.",
    "version": "1.0",
    "x-build-id": "SkO8BV7pPwhl3CFaL"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/funny_ground~podcast-rss-episodes-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-funny_ground-podcast-rss-episodes-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/funny_ground~podcast-rss-episodes-scraper/runs": {
      "post": {
        "operationId": "runs-sync-funny_ground-podcast-rss-episodes-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/funny_ground~podcast-rss-episodes-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-funny_ground-podcast-rss-episodes-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": {
          "feedUrls": {
            "title": "RSS, Atom or Apple Podcasts show URLs",
            "minItems": 1,
            "maxItems": 20,
            "type": "array",
            "description": "Paste 1–20 public HTTPS feed URLs or Apple Podcasts show links containing id123456. Do not enter ordinary website homepages, private feeds, credentials or access tokens. Apple episode links resolve to the show's feed, not one specific episode. Duplicate feeds/episodes are not billed again within the same run.",
            "items": {
              "type": "string"
            },
            "default": [
              "https://feeds.transistor.fm/build-your-saas"
            ]
          },
          "maxEpisodesPerFeed": {
            "title": "Maximum matching episodes per feed",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Applied after date/keyword filters and sorting. The default 10 episodes cost $0.005 in event fees. Set a higher value for an archive export; only episodes currently present in the publisher's feed are available.",
            "default": 10
          },
          "maxEpisodes": {
            "title": "Maximum episodes across the whole run",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Global cap after deduplication. Sources are processed in input order. The Actor also respects the event-charge budget, 8 MiB per-feed decoded size limit and two-minute collection deadline. This is an event limit, not a cap on separately billed platform usage.",
            "default": 200
          },
          "includeDescription": {
            "title": "Include plain-text show notes",
            "type": "boolean",
            "description": "Include clean descriptions, limited to 20,000 characters per episode. No extra event fee. With this turned off, keywords search episode titles only. The Actor returns transcript links, not transcript text.",
            "default": true
          },
          "keywords": {
            "title": "Include keywords (optional)",
            "maxItems": 20,
            "type": "array",
            "description": "Case-insensitive substring matching. At least one keyword must occur in the title or included description. Leave empty to return all episodes that match the dates.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "publishedAfter": {
            "title": "Published on or after (YYYY-MM-DD)",
            "type": "string",
            "description": "Optional inclusive UTC date bound. Episodes with no valid publication date are excluded when either date bound is set. Example: 2026-01-01."
          },
          "publishedBefore": {
            "title": "Published on or before (YYYY-MM-DD)",
            "type": "string",
            "description": "Optional inclusive UTC date bound. Leave blank for no upper date limit."
          },
          "sortOrder": {
            "title": "Episode order within each feed",
            "enum": [
              "newest",
              "oldest",
              "feed"
            ],
            "type": "string",
            "description": "Sort before the per-feed cap. Newest is ideal for recent releases; oldest for feed archive exports. Unknown dates sort last. This does not globally sort episodes across different shows.",
            "default": "newest"
          },
          "failOnFeedError": {
            "title": "Fail the run if any feed fails",
            "type": "boolean",
            "description": "By default, continue with other feeds and report per-feed errors in OUTPUT. If all feeds fail, the run fails. When enabled, stop at the first feed error; any already saved episodes remain billable and available.",
            "default": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}