API Documentation
Complete reference for EasyCast Studio APIs
Authentication
EasyCast Studio supports two auth mechanisms depending on the API you're calling.
Session (Bearer token)
Most api/* endpoints are app-internal and require a Supabase user session token.
Developer API Key
The developer-facing API under /api/v1/* uses API keys.
Create/manage keys in the app at /api-keys.
Developer API (v1)
This is the public, API-key authenticated surface intended for external integrations. Requests must include an x-api-key header.
GET/api/v1/recordings
List recordings for the API key owner (user scoped).
Headers:
Query Parameters:
Response:
POST/api/v1/recordings
Create a new recording row for the API key owner.
Headers:
Request Body:
Response:
POST/api/v1/webhooks
Register a public HTTPS endpoint for recording.completed, transcript.ready, and clip.generated events. The response reveals the signing secret once. A recording-completed event means its metadata and uploaded media are saved with a ready status; transcript and clip completion have their own events.
Required scope:
List registered endpoints with GET /api/v1/webhooks and the webhooks:read scope. Accounts may register up to 10 endpoints.
Request Body:
Verify a delivery:
Hash the one-time secret to its raw 32-byte SHA-256 digest, use that digest as the HMAC-SHA256 key for the exact request body, and timing-safely compare the result to x-easycast-signature.
Disable, update, or delete an endpoint:
Recording APIs
POST/api/recordings/create
Create a new recording record after file upload.
Request Body:
Response:
POST/api/transcribe
Transcribe audio to text with speaker diarization. Usage tracked - counts against audio minutes limit.
Request Body:
POST/api/enhance-audio
Enhance audio quality using AI. Premium feature - requires paid plan.
POST/api/remove-silence
Remove silence and pauses from audio. Premium feature - requires paid plan.
POST/api/remove-fillers
Remove filler words (um, uh, like, etc.) from audio.
AI Content APIs
POST/api/suggest-clips
AI-powered clip suggestions for social media. Pro+ only - uses GPT-4.
Request Body:
POST/api/generate-content
Generate show notes, descriptions, and social posts. Pro+ only - uses GPT-4.
Collaboration APIs
POST/api/invite-guest
Send an email invitation to a recording guest. Requires a session bearer token; you must host the room or own the recording you invite to.
Request Body:
Response:
Webhook APIs
POST/api/webhooks/stripe
Stripe payment webhook endpoint. Handles all payment lifecycle events and sends automated emails.
⚠️ Internal Use Only: This endpoint is called by Stripe servers. Requires valid Stripe signature for verification.
POST/api/check-usage-warnings
Automated cron job endpoint. Checks all users' usage and sends warning emails at 80% threshold.
🔒 Requires Authorization: Must include Bearer token with CRON_SECRET.
Headers:
Payment APIs
POST/api/create-checkout
Create Stripe checkout session for subscription purchase.
Request Body:
Plan Usage Allowances
These are monthly account quotas, not per-key request-rate limits. EasyCast does not currently advertise or enforce a requests-per-hour limit for the developer API.
| Plan | Audio Minutes | Storage | Features |
|---|---|---|---|
| Free | 30 minutes | 1 GB | Basic AI |
| Starter | 30 minutes | 1 GB | Basic AI + email support |
| Pro | 500 minutes | 50 GB | All AI features + priority support |
| Business | Unlimited | 500 GB | Advanced analytics + custom branding |
Error Responses
401 Unauthorized
403 Forbidden - Usage Limit
500 Internal Server Error
Need Help?
For questions, support, or feature requests, contact us:
- 📧 Email: support@easycaststudio.com
- 💬 Discord: Join our community
- 📚 Docs: easycaststudio.com/docs