All API requests require authentication using an API key. You can create and manage your API keys in the API Keys Management page.
Include your API key in the Authorization header of your requests:
Authorization: Bearer YOUR_API_KEY API keys can have the following permissions:
Retrieve all podcasts for the authenticated user.
{ "podcasts": [ { "id": "ABC123", "title": "My Podcast", "description": "A podcast about interesting topics", "author": "John Doe", "email": "john@example.com", "image_url": "https://example.com/image.jpg", "language": "en", "category": "Technology", "explicit": false, "user_id": "user_123" } ] }
Retrieve a specific podcast by ID.
{ "podcast": { "id": "ABC123", "title": "My Podcast", "description": "A podcast about interesting topics", "author": "John Doe", "email": "john@example.com", "image_url": "https://example.com/image.jpg", "language": "en", "category": "Technology", "explicit": false, "user_id": "user_123" } }
Create a new podcast. Requires write permission.
{ "title": "My New Podcast", "description": "A podcast about interesting topics", "author": "John Doe", "email": "john@example.com", "image_url": "https://example.com/image.jpg", "language": "en", "category": "Technology", "explicit": false }
{ "success": true, "id": "NEW_PODCAST_ID" }
Update an existing podcast. Requires write permission.
{ "id": "PODCAST_ID", "title": "Updated Podcast Title", "description": "Updated description", "author": "John Doe", "email": "john@example.com", "image_url": "https://example.com/new-image.jpg", "language": "en", "category": "Technology", "explicit": false }
{ "success": true, "message": "Podcast actualizado correctamente" }
Delete a podcast. Requires delete permission.
{ "success": true, "message": "Podcast eliminado correctamente" }
Retrieve all episodes for the authenticated user.
{ "episodes": [ { "id": "XYZ789", "title": "Episode 1", "description": "The first episode", "url": "https://example.com/episode1.mp3", "length": 12345678, "pubDate": "Wed, 01 Jan 2023 12:00:00 GMT", "duration": "30:45", "type": "audio/mpeg", "user_id": "user_123", "cover_image_url": "https://example.com/cover.jpg" } ] }
Retrieve a specific episode by ID.
{ "episode": { "id": "XYZ789", "title": "Episode 1", "description": "The first episode", "url": "https://example.com/episode1.mp3", "length": 12345678, "pubDate": "Wed, 01 Jan 2023 12:00:00 GMT", "duration": "30:45", "type": "audio/mpeg", "user_id": "user_123", "cover_image_url": "https://example.com/cover.jpg" } }
Create a new episode. Requires write permission.
This endpoint accepts multipart/form-data to upload the audio
file.
{ "success": true, "id": "NEW_EPISODE_ID", "url": "https://example.com/episode.mp3" }
Update an existing episode. Requires write permission.
This endpoint can accept either JSON data or multipart/form-data if updating the audio file.
{ "id": "EPISODE_ID", "title": "Updated Episode Title", "description": "Updated description", "cover_image_url": "https://example.com/new-cover.jpg" }
{ "success": true, "message": "Episodio actualizado correctamente" }
Delete an episode. Requires delete permission.
{ "success": true, "message": "Episodio eliminado correctamente" }
Retrieve all API keys for the authenticated user.
{ "apiKeys": [ { "id": "KEY_ID", "key": "API_KEY", "name": "My API Key", "user_id": "user_123", "created_at": "2023-01-01T12:00:00Z", "last_used_at": "2023-01-02T12:00:00Z", "permissions": "read,write", "active": true } ] }
Retrieve a specific API key by ID.
{ "apiKey": { "id": "KEY_ID", "key": "API_KEY", "name": "My API Key", "user_id": "user_123", "created_at": "2023-01-01T12:00:00Z", "last_used_at": "2023-01-02T12:00:00Z", "permissions": "read,write", "active": true } }
Create a new API key.
{ "name": "My New API Key", "permissions": "read,write" }
{ "success": true, "id": "NEW_KEY_ID", "key": "NEW_API_KEY", "name": "My New API Key", "permissions": "read,write" }
Update an existing API key.
{ "id": "KEY_ID", "name": "Updated API Key Name", "active": true, "permissions": "read,write,delete" }
{ "success": true, "message": "API key updated successfully" }
Delete an API key.
{ "success": true, "message": "API key deleted successfully" }
All API endpoints return error responses in the following format:
{ "error": "Error message describing what went wrong" }