{ "opencollection": "1.0.0", "info": { "name": "Podbean API", "version": "1.0", "description": "OAuth 2.0 REST API for managing a user's podcast on Podbean - podcasts, episodes, media upload, oEmbed, and analytics. Base URL https://api.podbean.com/v1." }, "items": [ { "info": { "name": "Authentication", "type": "folder" }, "items": [ { "info": { "name": "Login Dialog", "type": "http" }, "http": { "method": "GET", "url": "https://api.podbean.com/v1/dialog/oauth", "params": [ { "name": "client_id", "value": "", "type": "query" }, { "name": "redirect_uri", "value": "", "type": "query" }, { "name": "response_type", "value": "code", "type": "query" }, { "name": "scope", "value": "episode_publish", "type": "query" } ] }, "docs": "Redirect a user here to authorize a third-party app; Podbean returns an authorization code." }, { "info": { "name": "Get Access Token", "type": "http" }, "http": { "method": "POST", "url": "https://api.podbean.com/v1/oauth/token", "body": { "type": "urlencoded", "data": "grant_type=client_credentials&client_id=&client_secret=" } }, "docs": "Exchange an authorization code, client credentials, or refresh token for an access token." }, { "info": { "name": "Inspect Access Token", "type": "http" }, "http": { "method": "POST", "url": "https://api.podbean.com/v1/oauth/debugToken", "body": { "type": "urlencoded", "data": "access_token=" } }, "docs": "Returns metadata about an access token - bound podcast, scopes, and expiry." }, { "info": { "name": "Get Multiple Podcasts Tokens", "type": "http" }, "http": { "method": "POST", "url": "https://api.podbean.com/v1/oauth/multiplePodcastsToken", "body": { "type": "urlencoded", "data": "grant_type=client_credentials&client_id=&client_secret=" } }, "docs": "For agencies and networks - obtain per-podcast access tokens for all managed podcasts." } ] }, { "info": { "name": "Podcast", "type": "folder" }, "items": [ { "info": { "name": "Get Podcast", "type": "http" }, "http": { "method": "GET", "url": "https://api.podbean.com/v1/podcast", "params": [{ "name": "access_token", "value": "", "type": "query" }] }, "docs": "Returns the profile and settings of the podcast the access token is bound to." } ] }, { "info": { "name": "Episode", "type": "folder" }, "items": [ { "info": { "name": "List Episodes", "type": "http" }, "http": { "method": "GET", "url": "https://api.podbean.com/v1/episodes", "params": [ { "name": "access_token", "value": "", "type": "query" }, { "name": "offset", "value": "0", "type": "query" }, { "name": "limit", "value": "20", "type": "query" } ] }, "docs": "Lists episodes for the authorized podcast." }, { "info": { "name": "Publish New Episode", "type": "http" }, "http": { "method": "POST", "url": "https://api.podbean.com/v1/episodes", "body": { "type": "urlencoded", "data": "access_token=&title=My New Episode&content=Show notes&status=publish&type=public&media_key=&logo_key=" } }, "docs": "Publishes a new episode, referencing a media_key from the file upload authorization." }, { "info": { "name": "Read Episode", "type": "http" }, "http": { "method": "GET", "url": "https://api.podbean.com/v1/episodes/:id", "params": [ { "name": "id", "value": "", "type": "path", "description": "The episode ID." }, { "name": "access_token", "value": "", "type": "query" } ] }, "docs": "Returns a single episode by its ID." }, { "info": { "name": "Update Episode", "type": "http" }, "http": { "method": "POST", "url": "https://api.podbean.com/v1/episodes/:id", "params": [{ "name": "id", "value": "", "type": "path", "description": "The episode ID." }], "body": { "type": "urlencoded", "data": "access_token=&title=Updated Episode Title" } }, "docs": "Updates an existing episode by ID." }, { "info": { "name": "Delete Episode", "type": "http" }, "http": { "method": "POST", "url": "https://api.podbean.com/v1/episodes/:id/delete", "params": [{ "name": "id", "value": "", "type": "path", "description": "The episode ID." }], "body": { "type": "urlencoded", "data": "access_token=" } }, "docs": "Deletes an episode by ID." } ] }, { "info": { "name": "File Upload", "type": "folder" }, "items": [ { "info": { "name": "Authorize File Upload", "type": "http" }, "http": { "method": "GET", "url": "https://api.podbean.com/v1/files/uploadAuthorize", "params": [ { "name": "access_token", "value": "", "type": "query" }, { "name": "filename", "value": "episode.mp3", "type": "query" }, { "name": "filesize", "value": "10485760", "type": "query" }, { "name": "content_type", "value": "audio/mpeg", "type": "query" } ] }, "docs": "Returns a presigned URL to PUT the file to, plus a file_key to pass to the Episodes API." }, { "info": { "name": "List Media Files", "type": "http" }, "http": { "method": "GET", "url": "https://api.podbean.com/v1/medias", "params": [{ "name": "access_token", "value": "", "type": "query" }] }, "docs": "Lists media files previously uploaded to the authorized podcast." } ] }, { "info": { "name": "oEmbed", "type": "folder" }, "items": [ { "info": { "name": "oEmbed", "type": "http" }, "http": { "method": "GET", "url": "https://api.podbean.com/v1/oembed", "params": [ { "name": "url", "value": "https://www.podbean.com/ew/example", "type": "query" }, { "name": "format", "value": "json", "type": "query" } ] }, "docs": "Returns embeddable player markup and metadata for a podcast or episode URL. No authentication required." } ] }, { "info": { "name": "Analytics", "type": "folder" }, "items": [ { "info": { "name": "Podcast Download Reports", "type": "http" }, "http": { "method": "GET", "url": "https://api.podbean.com/v1/analytics/podcastReports", "params": [{ "name": "access_token", "value": "", "type": "query" }] }, "docs": "Returns download/listen counts for the authorized podcast." }, { "info": { "name": "Podcast Engagement Reports", "type": "http" }, "http": { "method": "GET", "url": "https://api.podbean.com/v1/analytics/podcastEngagementReports", "params": [{ "name": "access_token", "value": "", "type": "query" }] }, "docs": "Returns listener engagement data for the authorized podcast." }, { "info": { "name": "Advertise Reports", "type": "http" }, "http": { "method": "GET", "url": "https://api.podbean.com/v1/analytics/advertiseReports", "params": [{ "name": "access_token", "value": "", "type": "query" }] }, "docs": "Returns advertising/monetization report data for the authorized podcast." } ] } ] }