Developer API

The MeetCapture API

REST endpoints, real-time webhooks, and direct Supabase access. Everything you need to integrate meeting data into your application.

REST Endpoints

Direct Supabase PostgREST for signed-in users. Filter, sort, paginate with URL parameters.

Edge Functions

Serverless endpoints for API-key access, session detail, upload tokens, and webhook delivery.

Webhooks

Real-time HMAC-signed event notifications for session lifecycle, recordings, and transcript completion.

Authentication

MeetCapture supports two authentication methods. Use API keys for server-to-server Edge Function calls, or JWT tokens for direct Supabase table access from client applications.

API Key (x-api-key)

Best for server-side integrations. Create API keys in the dashboard. Include as the x-api-key header on MeetCapture Edge Functions.

JWT (Bearer token)

Best for client-side apps. Authenticate via Supabase Auth, then use the JWT as a Bearer token. RLS policies scope data to the user.

# Authenticate with API key against an Edge Function
curl "https://xrhwfuquudleamotznzx.supabase.co/functions/v1/mc-api-sessions?limit=10" \
  -H "x-api-key: mc_live_abc123..."

Quick Start

Three common operations to get you started.

1. List recent sessions

curl -s "https://xrhwfuquudleamotznzx.supabase.co/functions/v1/mc-api-sessions?limit=10" \
  -H "x-api-key: mc_live_abc123..."

2. Get a transcript

curl -s "https://xrhwfuquudleamotznzx.supabase.co/functions/v1/mc-api-sessions?id=SESSION_UUID" \
  -H "x-api-key: mc_live_abc123..."

3. Search transcript segments

# Search for segments containing "roadmap"
curl -s "https://xrhwfuquudleamotznzx.supabase.co/rest/v1/mc_transcript_segments?text=ilike.%25roadmap%25&order=created_at.desc&limit=20" \
  -H "apikey: YOUR_ANON_KEY" \
  -H "Authorization: Bearer USER_SUPABASE_JWT"

Endpoints Summary

API-key endpoints are served by Edge Functions; direct table reads use Supabase PostgREST with JWT auth. Base URL: https://xrhwfuquudleamotznzx.supabase.co

MethodPathDescription
GET/functions/v1/mc-api-sessionsList sessions with API-key or JWT auth
GET/functions/v1/mc-api-sessions?id={session_uuid}Get one session with recordings, transcript, and segments
GET/rest/v1/mc_sessionsList sessions for a signed-in Supabase user
GET/rest/v1/mc_transcript_segments?session_id=eq.{session_uuid}Get transcript segments with JWT auth
GET/rest/v1/mc_transcript_segments?text=ilike.%{query}%Search transcript segments with JWT auth
GET/rest/v1/mc_recordings?session_id=eq.{session_uuid}Get recording metadata with JWT auth
POST/functions/v1/mc-api-upload-tokenCreate a scoped signed upload URL for mc-recordings
GET/rest/v1/api_keysList API keys for the signed-in user
POST/rest/v1/api_keysCreate a new API key
DELETE/rest/v1/api_keys?id=eq.{id}Revoke an API key
GET/rest/v1/webhook_endpointsList webhook endpoints for the signed-in user
POST/rest/v1/webhook_endpointsCreate a webhook endpoint

SDKs

Since all MeetCapture data lives in Supabase, you can use any official Supabase client library to access it. No custom SDK needed.

JavaScript / TypeScript@supabase/supabase-js
Pythonsupabase-py
Dart / Fluttersupabase_flutter
Swift (iOS)supabase-swift
Kotlin (Android)supabase-kt

Rate Limits

Rate limits are applied per API key. Exceeding the limit returns a 429 response with a Retry-After header.

Free1,000 calls/month

Burst limit: 10 req/sec

ProUnlimited

Burst limit: 100 req/sec

EnterpriseUnlimited

Burst limit: Custom

Webhook Events

Receive real-time notifications when meeting events occur. All payloads are signed with HMAC-SHA256 using your webhook secret.

Payload: session.started
{
  "event": "session.started",
  "timestamp": "2026-04-05T10:32:45Z",
  "data": {
    "session_id": "SESSION_UUID",
    "platform": "zoom",
    "title": "Q4 Planning",
    "participants": 4
  }
}

Start integrating today

Get your API key and start building with meeting data in minutes.