API Documentation

Complete reference for EasyCast Studio APIs

Authentication

All API requests require authentication using Supabase Auth. Include the user's session token in requests.

Authorization: Bearer <session_token>

Recording APIs

POST/api/recordings/create

Create a new recording record after file upload.

Request Body:

{ "filePath": "string", "fileUrl": "string", "fileName": "string", "fileSize": number, "mimeType": "string" }

Response:

{ "success": true, "recording": { "id": "uuid", "title": "string", "status": "uploaded", "file_url": "string", "created_at": "timestamp" } }
POST/api/transcribe

Transcribe audio to text with speaker diarization.Usage tracked - counts against audio minutes limit.

Request Body:

{ "audioUrl": "string", "recordingId": "uuid" }
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:

{ "transcript": "string", "recordingId": "uuid" }
POST/api/generate-content

Generate show notes, descriptions, and social posts.Pro+ only - uses GPT-4.

Collaboration APIs

POST/api/invite-guest

Send professional email invitation to recording guest.

Request Body:

{ "guestEmail": "string", "guestName": "string", "recordingTitle": "string", "recordingLink": "string", "hostName": "string" }

Response:

{ "success": true, "message": "Invite sent to guest@email.com", "guestEmail": "string", "guestName": "string" }

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:

Authorization: Bearer <CRON_SECRET>

Payment APIs

POST/api/create-checkout

Create Stripe checkout session for subscription purchase.

Request Body:

{ "priceId": "price_xxxxx", "successUrl": "string", "cancelUrl": "string" }

Rate Limits & Usage

PlanAudio MinutesStorageFeatures
Free30 minutes1 GBBasic features
Pro300 minutes10 GBAll features + GPT-4
Creator900 minutes50 GBAll features + priority
Business3000 minutes200 GBEverything + team features

Error Responses

401 Unauthorized

{ "error": "Unauthorized" }

403 Forbidden - Usage Limit

{ "error": "Usage limit exceeded", "limit": 300, "used": 305, "upgradeUrl": "/pricing" }

500 Internal Server Error

{ "error": "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