Skip to main content

REST API Overview

The WackyPod REST API provides programmatic access to episode generation, user management, webhooks, RSS feeds, briefings, and billing.

Base URL

https://api.wackypod.com

All endpoints are served over HTTPS. HTTP requests are rejected.

Authentication

Include your token in the Authorization header:

Authorization: Bearer <your-token>

You can use either a JWT access token or an API key (prefixed wp_). See the Authentication guide for details.

Content type

All request and response bodies use JSON:

Content-Type: application/json

The exception is file upload endpoints, which use multipart/form-data.

Response format

Success responses

All successful responses include success: true:

{
"success": true,
"data": { ... }
}

Error responses

All error responses include success: false:

{
"success": false,
"error": "Error type",
"message": "Human-readable error description"
}

Some errors include additional context:

{
"success": false,
"error": "Weak password",
"message": "Password does not meet requirements",
"errors": ["Must be 8+ chars", "Must contain uppercase", "Must contain number"]
}

HTTP status codes

CodeMeaningDescription
200OKRequest successful
201CreatedResource created
202AcceptedAsync operation started
400Bad RequestInvalid parameters
401UnauthorizedAuthentication required or failed
403ForbiddenInsufficient permissions
404Not FoundResource not found
409ConflictResource already exists
413Payload Too LargeFile exceeds size limit
429Too Many RequestsRate limit or quota exceeded
500Internal Server ErrorServer error

Rate limits

Hourly request limits

TierRequests/Hour
Free10
Creator50
Professional200
Enterprise1,000

Monthly episode quotas

TierEpisodes/MonthMax DurationMax File Size
Free33 min5 MB
Creator2515 min20 MB
Professional10030 min50 MB
EnterpriseUnlimitedUnlimited100 MB

Quota exceeded response

{
"success": false,
"error": "Monthly quota exceeded",
"quota": {
"tier": "free",
"limit": 3,
"used": 3,
"remaining": 0
},
"upgrade": {
"message": "Upgrade to create more episodes",
"url": "/pricing"
}
}

Pagination

List endpoints support pagination with limit and offset query parameters:

GET /api/episodes?limit=25&offset=50

Paginated responses include a pagination object:

{
"success": true,
"episodes": [...],
"pagination": {
"total": 142,
"limit": 25,
"offset": 50
}
}

API endpoints

CategoryEndpoints
AuthenticationRegister, login, token refresh, password reset
EpisodesCreate, list, get, delete episodes
PlaylistsCreate, manage, reorder playlists
User ProfileProfile, quota, usage, API keys
WebhooksRegister, manage, test webhooks
RSSRSS feed endpoints
BriefingsAutomated briefing configuration
BillingSubscriptions, checkout, invoices

SDKs

LanguagePackageStatus
Pythonpip install wackypodProduction
JavaScriptnpm install wackypodComing Q1 2026

Best practices

  1. Use API keys for server-to-server -- Safer than storing user credentials
  2. Handle async operations -- Episode generation is asynchronous; use webhooks or polling
  3. Implement exponential backoff -- For retries on 429 and 5xx errors
  4. Check quotas before creating -- Call GET /api/user/quota to avoid quota errors
  5. Verify webhook signatures -- Always validate the X-WackyPod-Signature header
  6. Use HTTPS -- All endpoints require HTTPS