{
  "openapi": "3.0.1",
  "info": {
    "title": "Spotify Podcast Transcript Scraper & Keyword Monitor",
    "description": "Spotify podcast transcripts as Spotify publishes them: full text, timestamped lines and SRT/VTT, by episode, show or search, with keyword mentions linked to the second.",
    "version": "0.0",
    "x-build-id": "2bpvhTEWblmeprxxk"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapebench~spotify-podcast-transcript-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapebench-spotify-podcast-transcript-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/scrapebench~spotify-podcast-transcript-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapebench-spotify-podcast-transcript-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/scrapebench~spotify-podcast-transcript-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapebench-spotify-podcast-transcript-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": {
          "episodes": {
            "title": "Episode links",
            "type": "array",
            "description": "One per line: Spotify episode links (https://open.spotify.com/episode/...), spotify:episode: URIs or bare episode ids. Each one returns its transcript.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "episode": {
            "title": "Episode link (single)",
            "type": "string",
            "description": "One episode link or id, for saved tasks and API calls that send a single value. Use the list above for several."
          },
          "shows": {
            "title": "Show links",
            "type": "array",
            "description": "One per line: Spotify show links (https://open.spotify.com/show/...). Each returns its newest episodes that have a transcript, up to Maximum episodes.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "show": {
            "title": "Show link (single)",
            "type": "string",
            "description": "One show link or id, for saved tasks and API calls that send a single value."
          },
          "searchQueries": {
            "title": "Search Spotify episodes",
            "type": "array",
            "description": "One per line: words to search Spotify's podcast episodes for (AI agents, your brand, a guest's name). Spotify matches titles and descriptions and ranks by relevance; episodes that have a transcript are returned, up to Maximum episodes per search.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "searchQuery": {
            "title": "Search (single)",
            "type": "string",
            "description": "One search, for saved tasks and API calls that send a single value."
          },
          "maxEpisodes": {
            "title": "Maximum episodes per show or search",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "How many episodes with a transcript to read for EACH show (newest first) and EACH search (most relevant first). Episode links are always all read.",
            "default": 10
          },
          "publishedAfter": {
            "title": "Published on or after",
            "pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
            "type": "string",
            "description": "YYYY-MM-DD. Shows and searches skip episodes released before this day. Empty keeps every date."
          },
          "keywords": {
            "title": "Keywords to find in the transcripts",
            "type": "array",
            "description": "Optional, one per line: words or phrases (your brand, a competitor, a person). Each row gets every line that says one (whole words, any case) with its timestamp and a link that plays the episode from that moment.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "keyword": {
            "title": "Keyword (single)",
            "type": "string",
            "description": "One keyword, for saved tasks and API calls that send a single value."
          },
          "onlyWithMentions": {
            "title": "Only episodes that mention a keyword",
            "type": "boolean",
            "description": "With keywords set: deliver (and charge) only the episodes whose transcript says at least one of them. Turn off to get every transcript with its mention count.",
            "default": true
          },
          "onlyNew": {
            "title": "Only episodes not delivered before (follow mode)",
            "type": "boolean",
            "description": "Remembers which episodes this same set of shows, searches and keywords already delivered, and skips them. Schedule it daily or weekly and you get, and pay for, only new episodes.",
            "default": false
          },
          "language": {
            "title": "Transcript language",
            "type": "string",
            "description": "Optional language code (en, es, de, fr, pt-br...). Many big shows publish translated transcripts; when the episode has one in this language you get it, otherwise its original. Empty means the original."
          },
          "includeTimestamps": {
            "title": "Timestamped lines",
            "type": "boolean",
            "description": "Also return the transcript as lines, each with its start time in milliseconds. The full text is always returned.",
            "default": true
          },
          "subtitleFormat": {
            "title": "Subtitles",
            "enum": [
              "none",
              "srt",
              "vtt"
            ],
            "type": "string",
            "description": "Also return the transcript as an SRT or WebVTT subtitle file (in the subtitles field).",
            "default": "none"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}