openapi: 3.1.0 info: title: Podbean Analytics OAuth API version: v1 description: 'Podbean''s HTTP API for managing podcasts, episodes, private members, and analytics reports. Uses OAuth 2.0 with the client_credentials grant (and a multi-podcast token endpoint for accounts that publish several podcasts). Endpoint paths reflect those documented at https://developers.podbean.com/podbean-api-docs/ and confirmed against open-source Podbean clients. ' contact: name: Podbean Developer Documentation url: https://developers.podbean.com/podbean-api-docs/ servers: - url: https://api.podbean.com description: Podbean production API security: - oauth2ClientCredentials: [] - accessTokenQuery: [] tags: - name: OAuth description: Token issuance endpoints. paths: /v1/oauth/token: post: tags: - OAuth operationId: getAccessToken summary: Request an access token description: 'OAuth 2.0 token endpoint. Use HTTP Basic with client_id / client_secret and POST `grant_type=client_credentials`. ' security: - basicAuth: [] requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - grant_type properties: grant_type: type: string enum: - client_credentials - authorization_code - refresh_token code: type: string redirect_uri: type: string format: uri refresh_token: type: string responses: '200': description: Access token issued content: application/json: schema: $ref: '#/components/schemas/AccessToken' /v1/oauth/multiplePodcastsToken: post: tags: - OAuth operationId: getMultiplePodcastsToken summary: Request per-podcast access tokens description: 'Returns a map of per-podcast access tokens for accounts with multiple podcasts under the same Podbean app. ' security: - basicAuth: [] requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - grant_type properties: grant_type: type: string enum: - client_credentials podcast_id: type: string responses: '200': description: Per-podcast tokens content: application/json: schema: $ref: '#/components/schemas/MultiplePodcastsToken' components: schemas: AccessToken: type: object properties: access_token: type: string token_type: type: string expires_in: type: integer scope: type: string MultiplePodcastsToken: type: object properties: podcast_tokens: type: array items: type: object properties: podcast_id: type: string access_token: type: string expires_in: type: integer securitySchemes: basicAuth: type: http scheme: basic description: HTTP Basic for OAuth token requests (client_id / client_secret). oauth2ClientCredentials: type: oauth2 flows: clientCredentials: tokenUrl: https://api.podbean.com/v1/oauth/token scopes: {} accessTokenQuery: type: apiKey in: query name: access_token description: 'Podbean accepts the OAuth bearer token as the `access_token` query parameter on resource endpoints. '