{"openapi":"3.1.0","info":{"title":"Buzzsprout (BYOK) API","version":"0.1.0","description":"Buzzsprout (BYOK) lets an AI assistant read your own Buzzsprout data through the Buzzsprout API with a key you supply (Buzzsprout API token). Read-only: 8 tools (list_podcasts, get_podcast, list_episodes, get_episode, get_podcast_downloads, list_episode_chapters, list_directory_listings, list_contributors). The BYOK key travels with each request, is used for that one call only and is never...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-buzzsprout.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-buzzsprout/docs"},"termsOfService":"https://connectorbay.com/byok-buzzsprout/terms"},"servers":[{"url":"https://byok-buzzsprout.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-buzzsprout/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_podcasts":{"post":{"operationId":"list_podcasts","summary":"List the podcasts the token can access with title, author, description, language, time zone, category and RSS feed URL. ","description":"List the podcasts the token can access with title, author, description, language, time zone, category and RSS feed URL. Use for \"Which podcasts do I have on Buzzsprout\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_podcastsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_podcast":{"post":{"operationId":"get_podcast","summary":"Get one podcast's title, author, description, website, language, time zone, categories, artwork and RSS feed URL. Use fo","description":"Get one podcast's title, author, description, website, language, time zone, categories, artwork and RSS feed URL. Use for \"What is the RSS feed of Buzzsprout podcast 10\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"podcast_id":{"description":"Numeric Buzzsprout podcast ID. Take it from list_podcasts.","maxLength":200,"title":"Podcast Id","type":"string"}},"required":["podcast_id"],"title":"get_podcastArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_episodes":{"post":{"operationId":"list_episodes","summary":"List a podcast's episodes with publish date, duration, season and episode number, type, private flag, total downloads an","description":"List a podcast's episodes with publish date, duration, season and episode number, type, private flag, total downloads and audio URL. Use for \"What episodes has my Buzzsprout podcast 10 published and how many downloads does each have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"podcast_id":{"description":"Numeric Buzzsprout podcast ID. Take it from list_podcasts.","maxLength":200,"title":"Podcast Id","type":"string"}},"required":["podcast_id"],"title":"list_episodesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_episode":{"post":{"operationId":"get_episode","summary":"Get one episode with title, description, artist, publish date, duration, numbers, type, private flag and total downloads","description":"Get one episode with title, description, artist, publish date, duration, numbers, type, private flag and total downloads. Use for \"Give me the details of Buzzsprout episode 788881 in podcast 10\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"podcast_id":{"description":"Numeric Buzzsprout podcast ID. Take it from list_podcasts.","maxLength":200,"title":"Podcast Id","type":"string"},"episode_id":{"description":"Numeric episode ID. Take it from list_episodes.","maxLength":200,"title":"Episode Id","type":"string"}},"required":["podcast_id","episode_id"],"title":"get_episodeArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_podcast_downloads":{"post":{"operationId":"get_podcast_downloads","summary":"Get download counts per episode for one podcast-local calendar day (only episodes with at least one download that day). ","description":"Get download counts per episode for one podcast-local calendar day (only episodes with at least one download that day). Returns an empty list on a quiet day. Use for \"Which episodes of Buzzsprout podcast 10 were downloaded on 2026-09-12\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"podcast_id":{"description":"Numeric Buzzsprout podcast ID. Take it from list_podcasts.","maxLength":200,"title":"Podcast Id","type":"string"},"date":{"description":"Calendar day as YYYY-MM-DD in the podcast's own time zone.","maxLength":10,"title":"Date","type":"string"}},"required":["podcast_id","date"],"title":"get_podcast_downloadsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_episode_chapters":{"post":{"operationId":"list_episode_chapters","summary":"List the chapters of one episode: id, title, start time and optional link. Use for \"What chapters does Buzzsprout episod","description":"List the chapters of one episode: id, title, start time and optional link. Use for \"What chapters does Buzzsprout episode 788881 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"podcast_id":{"description":"Numeric Buzzsprout podcast ID. Take it from list_podcasts.","maxLength":200,"title":"Podcast Id","type":"string"},"episode_id":{"description":"Numeric episode ID. Take it from list_episodes.","maxLength":200,"title":"Episode Id","type":"string"}},"required":["podcast_id","episode_id"],"title":"list_episode_chaptersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_directory_listings":{"post":{"operationId":"list_directory_listings","summary":"List the podcast directories (Apple Podcasts, Spotify and others) with listing status (listed, submitted, unlisted or fa","description":"List the podcast directories (Apple Podcasts, Spotify and others) with listing status (listed, submitted, unlisted or failed) and the public URL. Use for \"Is my Buzzsprout podcast 10 listed on Apple Podcasts and Spotify\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"podcast_id":{"description":"Numeric Buzzsprout podcast ID. Take it from list_podcasts.","maxLength":200,"title":"Podcast Id","type":"string"}},"required":["podcast_id"],"title":"list_directory_listingsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_contributors":{"post":{"operationId":"list_contributors","summary":"List the on-show credits of a podcast (hosts, co-hosts, producers, editors, guests) with role, bio and link. Use for \"Wh","description":"List the on-show credits of a podcast (hosts, co-hosts, producers, editors, guests) with role, bio and link. Use for \"Who is credited on Buzzsprout podcast 10\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"podcast_id":{"description":"Numeric Buzzsprout podcast ID. Take it from list_podcasts.","maxLength":200,"title":"Podcast Id","type":"string"}},"required":["podcast_id"],"title":"list_contributorsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}