openapi: 3.0.3 info: title: Megaphone Campaigns Direct Sales v2 API description: 'The Megaphone API lets podcast producers and partners manage podcasts, episodes, and advertising on Megaphone by Spotify - an enterprise podcast hosting, distribution, and ad-monetization platform. The v1 API (base https://cms.megaphone.fm/api) covers networks, podcasts, episodes, and legacy Direct Sales resources; a v2 Direct Sales API (base https://cms.megaphone.fm/api/v2) manages advertisers, campaigns, orders, assets, advertisements, and targeting. All requests authenticate with a per-user API token sent as the header `Authorization: Token token=""`, generated under User Settings. List responses paginate via an RFC 5988 Link header (rel="next"). The API is rate limited to 60 requests per minute (1 request per second). Documentation is public, but a token requires a paid Megaphone account. The v1 network/podcast/episode/campaign/order/advertisement paths are confirmed from Megaphone''s docs, the Apiary reference, and the open-source theatlantic/megaphone Python client. The v2 Direct Sales paths and the Metrics/Impressions export paths are honestly modeled from the documented resource descriptions where the exact reference was not publicly retrievable; verify against developers.megaphone.fm before production use.' version: '2.0' contact: name: Megaphone by Spotify url: https://developers.megaphone.fm/ x-support-email: support-megaphone@spotify.com servers: - url: https://cms.megaphone.fm/api description: Megaphone API v1 (networks, podcasts, episodes, legacy Direct Sales) - url: https://cms.megaphone.fm/api/v2 description: Megaphone Direct Sales API v2 (advertisers, campaigns, orders, assets, advertisements, targeting) security: - tokenAuth: [] tags: - name: Direct Sales v2 description: v2 advertisers, campaigns, orders, assets, advertisements, and targeting (modeled). paths: /v2/advertisers: servers: - url: https://cms.megaphone.fm/api/v2 get: operationId: listAdvertisersV2 tags: - Direct Sales v2 summary: List advertisers (v2, modeled) description: Lists advertisers in the v2 Direct Sales API. Path modeled from documented resources. responses: '200': description: A list of advertisers. content: application/json: schema: type: array items: $ref: '#/components/schemas/Advertiser' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createAdvertiserV2 tags: - Direct Sales v2 summary: Create an advertiser (v2, modeled) description: Creates an advertiser in the v2 Direct Sales API. Path modeled from documented resources. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Advertiser' responses: '201': description: The created advertiser. content: application/json: schema: $ref: '#/components/schemas/Advertiser' '401': $ref: '#/components/responses/Unauthorized' /v2/campaigns: servers: - url: https://cms.megaphone.fm/api/v2 get: operationId: listCampaignsV2 tags: - Direct Sales v2 summary: List campaigns (v2, modeled) description: Lists direct-sales campaigns in the v2 API. Path modeled from documented resources. responses: '200': description: A list of campaigns. content: application/json: schema: type: array items: $ref: '#/components/schemas/Campaign' '401': $ref: '#/components/responses/Unauthorized' /v2/orders: servers: - url: https://cms.megaphone.fm/api/v2 get: operationId: listOrdersV2 tags: - Direct Sales v2 summary: List orders (v2, modeled) description: Lists direct-sales orders in the v2 API. Path modeled from documented resources. responses: '200': description: A list of orders. content: application/json: schema: type: array items: $ref: '#/components/schemas/Order' '401': $ref: '#/components/responses/Unauthorized' /v2/assets: servers: - url: https://cms.megaphone.fm/api/v2 get: operationId: listAssetsV2 tags: - Direct Sales v2 summary: List creative assets (v2, modeled) description: Lists creative assets used by advertisements in the v2 API. Path modeled from documented resources. responses: '200': description: A list of assets. content: application/json: schema: type: array items: $ref: '#/components/schemas/Asset' '401': $ref: '#/components/responses/Unauthorized' /v2/targeting: servers: - url: https://cms.megaphone.fm/api/v2 get: operationId: getTargetingOptionsV2 tags: - Direct Sales v2 summary: List targeting options (v2, modeled) description: Lists targeting reference data (geos - countries, regions, DMAs - devices, Nielsen segments, and advertiser categories) available to v2 advertisements. Path modeled from documented resources. responses: '200': description: Targeting options. content: application/json: schema: $ref: '#/components/schemas/TargetingOptions' '401': $ref: '#/components/responses/Unauthorized' components: schemas: Advertiser: type: object description: An advertiser (v2 Direct Sales). properties: id: type: string name: type: string agencyId: type: string categoryId: type: string TargetingOptions: type: object description: Reference data available for targeting v2 advertisements. properties: countries: type: array items: type: string regions: type: array items: type: string dmas: type: array items: type: string devices: type: array items: type: string nielsenSegments: type: array items: type: string Campaign: type: object description: A direct-sales advertising campaign. properties: id: type: string name: type: string advertiserId: type: string startsAt: type: string format: date endsAt: type: string format: date Order: type: object description: A campaign order or promo order under a campaign. properties: id: type: string campaignId: type: string type: type: string description: campaign or promo. name: type: string status: type: string Asset: type: object description: A creative asset used by an advertisement (v2 Direct Sales). properties: id: type: string name: type: string url: type: string durationSeconds: type: number Error: type: object properties: error: type: string message: type: string responses: Unauthorized: description: Missing or invalid API token. content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: tokenAuth: type: apiKey in: header name: Authorization description: 'Per-user API token sent as `Authorization: Token token=""`. Generated on account creation and managed under User Settings; treat as a password and do not reuse across organizations.'