{"openapi":"3.1.0","info":{"title":"Megaphone Promos (BYOK) API","version":"0.1.0","description":"Megaphone Promos (BYOK) lets an AI assistant read your own Megaphone Promos data through the Megaphone Promos API with a key you supply (Megaphone API token). Read-only: 8 tools (list_promos, get_promo, list_promo_advertisements, list_promo_assets, list_sponsorships, get_sponsorship, list_sponsors, list_bookable_sponsorship_cuepoints). The BYOK key travels with each request, is used for that one...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-megaphone-promos-sponsorships.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-megaphone-promos-sponsorships/docs"},"termsOfService":"https://connectorbay.com/byok-megaphone-promos-sponsorships/terms"},"servers":[{"url":"https://byok-megaphone-promos-sponsorships.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-megaphone-promos-sponsorships/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_promos":{"post":{"operationId":"list_promos","summary":"List the cross-promo orders (Promo API v2) of a Megaphone organization with promoted podcast, state, status and flight d","description":"List the cross-promo orders (Promo API v2) of a Megaphone organization with promoted podcast, state, status and flight dates. Use for \"Which cross-promos are running in Megaphone\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Megaphone organization ID (a UUID), shown in the Megaphone account settings.","maxLength":40,"title":"Organization Id","type":"string"},"per_page":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items per page (1 to 50).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["organization_id"],"title":"list_promosArguments","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_promo":{"post":{"operationId":"get_promo","summary":"Get one Megaphone promo: promoted podcast, asset format, state, status, flight dates and content and device targeting. U","description":"Get one Megaphone promo: promoted podcast, asset format, state, status, flight dates and content and device targeting. Use for \"What are the flight dates and targets of this Megaphone promo\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Megaphone organization ID (a UUID), shown in the Megaphone account settings.","maxLength":40,"title":"Organization Id","type":"string"},"promo_id":{"description":"Megaphone promo ID (a UUID), from list_promos.","maxLength":40,"title":"Promo Id","type":"string"}},"required":["organization_id","promo_id"],"title":"get_promoArguments","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_promo_advertisements":{"post":{"operationId":"list_promo_advertisements","summary":"List the advertisements of a Megaphone promo with placement, state and approval status. Use for \"Which ads belong to thi","description":"List the advertisements of a Megaphone promo with placement, state and approval status. Use for \"Which ads belong to this Megaphone promo\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Megaphone organization ID (a UUID), shown in the Megaphone account settings.","maxLength":40,"title":"Organization Id","type":"string"},"promo_id":{"description":"Megaphone promo ID (a UUID), from list_promos.","maxLength":40,"title":"Promo Id","type":"string"},"per_page":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items per page (1 to 50).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["organization_id","promo_id"],"title":"list_promo_advertisementsArguments","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_promo_assets":{"post":{"operationId":"list_promo_assets","summary":"List the promo creative assets of a Megaphone organization (name, type, status, file type, duration). File URLs are not ","description":"List the promo creative assets of a Megaphone organization (name, type, status, file type, duration). File URLs are not returned. Use for \"Which promo creatives are stored in Megaphone\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Megaphone organization ID (a UUID), shown in the Megaphone account settings.","maxLength":40,"title":"Organization Id","type":"string"},"per_page":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items per page (1 to 50).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["organization_id"],"title":"list_promo_assetsArguments","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_sponsorships":{"post":{"operationId":"list_sponsorships","summary":"List Megaphone sponsorships with dates, type, status, duration, show and sponsor, optionally filtered by name or by a st","description":"List Megaphone sponsorships with dates, type, status, duration, show and sponsor, optionally filtered by name or by a start and end date window. Use for \"Which Megaphone sponsorships are active this quarter\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Megaphone organization ID (a UUID), shown in the Megaphone account settings.","maxLength":40,"title":"Organization Id","type":"string"},"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Search text matched against sponsorship names.","title":"Name"},"start_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Filter start date, YYYY-MM-DD; when given, end_date is required.","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Filter end date, YYYY-MM-DD; when given, start_date is required.","title":"End Date"}},"required":["organization_id"],"title":"list_sponsorshipsArguments","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_sponsorship":{"post":{"operationId":"get_sponsorship","summary":"Get one Megaphone sponsorship (including embedded ones) with dates, status, sponsor and optionally its episode and cue p","description":"Get one Megaphone sponsorship (including embedded ones) with dates, status, sponsor and optionally its episode and cue point targets. Use for \"What are the targets of this Megaphone sponsorship\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Megaphone organization ID (a UUID), shown in the Megaphone account settings.","maxLength":40,"title":"Organization Id","type":"string"},"sponsorship_id":{"description":"Megaphone sponsorship ID (a UUID), from list_sponsorships.","maxLength":40,"title":"Sponsorship Id","type":"string"},"include_targets":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include the episode and cue point targets.","title":"Include Targets"}},"required":["organization_id","sponsorship_id"],"title":"get_sponsorshipArguments","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_sponsors":{"post":{"operationId":"list_sponsors","summary":"List the sponsors of a Megaphone organization (ID and name), optionally searched by name. Use for \"Which sponsors are se","description":"List the sponsors of a Megaphone organization (ID and name), optionally searched by name. Use for \"Which sponsors are set up in Megaphone\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Megaphone organization ID (a UUID), shown in the Megaphone account settings.","maxLength":40,"title":"Organization Id","type":"string"},"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Search text matched against sponsor names.","title":"Name"}},"required":["organization_id"],"title":"list_sponsorsArguments","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_bookable_sponsorship_cuepoints":{"post":{"operationId":"list_bookable_sponsorship_cuepoints","summary":"List the episodes of one show with the cue points still free for a sponsorship in a date range (Spotify show URI require","description":"List the episodes of one show with the cue points still free for a sponsorship in a date range (Spotify show URI required). Use for \"Which Megaphone episodes still have open sponsorship slots in May\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Megaphone organization ID (a UUID), shown in the Megaphone account settings.","maxLength":40,"title":"Organization Id","type":"string"},"show_uri":{"description":"Spotify URI of the show, for example spotify:show:abc123.","maxLength":100,"title":"Show Uri","type":"string"},"start_date":{"description":"Start of the availability window, YYYY-MM-DD.","maxLength":10,"title":"Start Date","type":"string"},"end_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"End of the availability window, YYYY-MM-DD.","title":"End Date"}},"required":["organization_id","show_uri","start_date"],"title":"list_bookable_sponsorship_cuepointsArguments","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}}}}