{ "info": { "name": "Transistor API", "description": "Public REST API for the Transistor podcast hosting and analytics platform. Follows the JSON:API specification. Base URL: https://api.transistor.fm/v1. Authenticate with an API key sent in the x-api-key header (generated in the Transistor dashboard Account area). Rate limited to 10 requests per 10 seconds.", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" }, "auth": { "type": "apikey", "apikey": [ { "key": "key", "value": "x-api-key", "type": "string" }, { "key": "value", "value": "{{apiKey}}", "type": "string" }, { "key": "in", "value": "header", "type": "string" } ] }, "variable": [ { "key": "baseUrl", "value": "https://api.transistor.fm/v1", "type": "string" }, { "key": "apiKey", "value": "", "type": "string" } ], "item": [ { "name": "Account", "item": [ { "name": "Retrieve authenticated user", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/", "host": ["{{baseUrl}}"], "path": [""] }, "description": "Returns details for the authenticated user associated with the API key." } } ] }, { "name": "Shows", "item": [ { "name": "List shows", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/shows", "host": ["{{baseUrl}}"], "path": ["shows"] }, "description": "Returns a paginated list of the shows in your account." } }, { "name": "Retrieve a show", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/shows/:id", "host": ["{{baseUrl}}"], "path": ["shows", ":id"], "variable": [{ "key": "id", "value": "" }] }, "description": "Returns a single show by ID." } }, { "name": "Update a show", "request": { "method": "PATCH", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "{\n \"show\": {\n \"description\": \"Updated show description\"\n }\n}" }, "url": { "raw": "{{baseUrl}}/shows/:id", "host": ["{{baseUrl}}"], "path": ["shows", ":id"], "variable": [{ "key": "id", "value": "" }] }, "description": "Updates metadata for a single show." } } ] }, { "name": "Episodes", "item": [ { "name": "List episodes", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/episodes?show_id=&status=&query=", "host": ["{{baseUrl}}"], "path": ["episodes"], "query": [{ "key": "show_id", "value": "" }, { "key": "status", "value": "" }, { "key": "query", "value": "" }] }, "description": "Returns a paginated list of episodes, filterable by show, status, and full-text query." } }, { "name": "Authorize an audio upload", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/episodes/authorize_upload?filename=", "host": ["{{baseUrl}}"], "path": ["episodes", "authorize_upload"], "query": [{ "key": "filename", "value": "" }] }, "description": "Returns a pre-signed upload URL and an audio_url for uploading an episode audio file." } }, { "name": "Retrieve an episode", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/episodes/:id", "host": ["{{baseUrl}}"], "path": ["episodes", ":id"], "variable": [{ "key": "id", "value": "" }] }, "description": "Returns a single episode by ID." } }, { "name": "Create an episode", "request": { "method": "POST", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "{\n \"episode\": {\n \"show_id\": \"\",\n \"title\": \"My Episode\",\n \"audio_url\": \"\"\n }\n}" }, "url": { "raw": "{{baseUrl}}/episodes", "host": ["{{baseUrl}}"], "path": ["episodes"] }, "description": "Creates a new draft episode." } }, { "name": "Update an episode", "request": { "method": "PATCH", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "{\n \"episode\": {\n \"title\": \"Updated title\"\n }\n}" }, "url": { "raw": "{{baseUrl}}/episodes/:id", "host": ["{{baseUrl}}"], "path": ["episodes", ":id"], "variable": [{ "key": "id", "value": "" }] }, "description": "Updates an existing episode." } }, { "name": "Publish, schedule, or unpublish an episode", "request": { "method": "PATCH", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "{\n \"episode\": {\n \"status\": \"published\"\n }\n}" }, "url": { "raw": "{{baseUrl}}/episodes/:id/publish", "host": ["{{baseUrl}}"], "path": ["episodes", ":id", "publish"], "variable": [{ "key": "id", "value": "" }] }, "description": "Changes an episode's publication status - publish, schedule, or unpublish." } } ] }, { "name": "Analytics", "item": [ { "name": "Show analytics", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/analytics/:id?start_date=&end_date=", "host": ["{{baseUrl}}"], "path": ["analytics", ":id"], "variable": [{ "key": "id", "value": "" }], "query": [{ "key": "start_date", "value": "" }, { "key": "end_date", "value": "" }] }, "description": "Returns downloads per day for a show (default last 14 days)." } }, { "name": "All-episodes analytics for a show", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/analytics/:id/episodes?start_date=&end_date=", "host": ["{{baseUrl}}"], "path": ["analytics", ":id", "episodes"], "variable": [{ "key": "id", "value": "" }], "query": [{ "key": "start_date", "value": "" }, { "key": "end_date", "value": "" }] }, "description": "Returns download analytics aggregated across all episodes of a show (default last 7 days)." } }, { "name": "Single-episode analytics", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/analytics/episodes/:id?start_date=&end_date=", "host": ["{{baseUrl}}"], "path": ["analytics", "episodes", ":id"], "variable": [{ "key": "id", "value": "" }], "query": [{ "key": "start_date", "value": "" }, { "key": "end_date", "value": "" }] }, "description": "Returns download analytics for a single episode (default last 14 days)." } } ] }, { "name": "Subscribers", "item": [ { "name": "List subscribers", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/subscribers", "host": ["{{baseUrl}}"], "path": ["subscribers"] }, "description": "Returns a paginated list of private podcast subscribers." } }, { "name": "Retrieve a subscriber", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/subscribers/:id", "host": ["{{baseUrl}}"], "path": ["subscribers", ":id"], "variable": [{ "key": "id", "value": "" }] }, "description": "Returns a single private podcast subscriber by ID." } }, { "name": "Add a subscriber", "request": { "method": "POST", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "{\n \"subscriber\": {\n \"show_id\": \"\",\n \"email\": \"listener@example.com\"\n }\n}" }, "url": { "raw": "{{baseUrl}}/subscribers", "host": ["{{baseUrl}}"], "path": ["subscribers"] }, "description": "Adds a private podcast subscriber, optionally sending an email invitation." } }, { "name": "Add subscribers in bulk", "request": { "method": "POST", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "{\n \"show_id\": \"\",\n \"subscribers\": [\n { \"email\": \"a@example.com\" },\n { \"email\": \"b@example.com\" }\n ]\n}" }, "url": { "raw": "{{baseUrl}}/subscribers/batch", "host": ["{{baseUrl}}"], "path": ["subscribers", "batch"] }, "description": "Adds multiple private podcast subscribers in a single request." } }, { "name": "Update a subscriber", "request": { "method": "PATCH", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "{\n \"subscriber\": {\n \"email\": \"new@example.com\"\n }\n}" }, "url": { "raw": "{{baseUrl}}/subscribers/:id", "host": ["{{baseUrl}}"], "path": ["subscribers", ":id"], "variable": [{ "key": "id", "value": "" }] }, "description": "Updates a private podcast subscriber's email address." } }, { "name": "Remove a subscriber by ID", "request": { "method": "DELETE", "header": [], "url": { "raw": "{{baseUrl}}/subscribers/:id", "host": ["{{baseUrl}}"], "path": ["subscribers", ":id"], "variable": [{ "key": "id", "value": "" }] }, "description": "Removes a single private podcast subscriber by ID." } } ] }, { "name": "Webhooks", "item": [ { "name": "List webhooks", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/webhooks", "host": ["{{baseUrl}}"], "path": ["webhooks"] }, "description": "Returns the webhook subscriptions in your account." } }, { "name": "Subscribe to an event", "request": { "method": "POST", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "{\n \"event_name\": \"episode_published\",\n \"url\": \"https://example.com/webhook\",\n \"show_id\": \"\"\n}" }, "url": { "raw": "{{baseUrl}}/webhooks", "host": ["{{baseUrl}}"], "path": ["webhooks"] }, "description": "Registers a webhook that POSTs to a callback URL when an event fires." } }, { "name": "Unsubscribe a webhook", "request": { "method": "DELETE", "header": [], "url": { "raw": "{{baseUrl}}/webhooks/:id", "host": ["{{baseUrl}}"], "path": ["webhooks", ":id"], "variable": [{ "key": "id", "value": "" }] }, "description": "Deletes a webhook subscription by ID." } } ] } ] }