Zoom · API-first · Apache 2.0

Zoom
Transcription
API

Real-time Zoom meeting transcription via open-source REST API. Drop a bot into any Zoom call — no Pro plan, no cloud-recording subscription, no Zoom App Marketplace approval. Self-host or use Vexa cloud.

No credit card required
Starred by 2k+ developers on GitHub
vexa · live transcript
LIVE

Waiting for meeting participants…

Connected · Google Meet
Teams
Meet
Vexa
🦀
Real-time Meeting Data for AI

Feed meetings into your AI. Live.

AI needs data, and the best data is real-time. Vexa streams transcripts, audio, and context from any meeting straight to your models and agents — as it happens.

Built for Zoom

Vexa drops a meeting bot into Zoom calls via the Zoom web client and streams live transcripts back through a REST API. Unlike Zoom's own transcription, you do not need a Pro / Business plan, you do not need cloud recording enabled, and you do not need to ship a Zoom Marketplace app for approval. The bot joins through the meeting URL just like any guest. Transcripts come from Whisper running locally or in our hosted cloud, and the same API also covers Google Meet and Microsoft Teams.

  • No Zoom Pro plan, no cloud-recording subscription, no Zoom App Marketplace approval — join via meeting ID + passcode
  • Real-time transcript chunks via WebSocket or REST, with speaker diarization
  • Apache 2.0 — self-host the bot + Whisper inside your VPC for full audio control
Drop a bot into a Zoom meeting
# Extract from https://us05web.zoom.us/j/12345678901?pwd=YOUR_PWD
#   native_meeting_id = "12345678901"
#   passcode          = "YOUR_PWD"  (optional)

curl -X POST "$API_BASE/bots" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $API_KEY" \
  -d '{
    "platform": "zoom",
    "native_meeting_id": "12345678901",
    "passcode": "YOUR_PWD",
    "transcribe_enabled": true,
    "transcription_tier": "realtime"
  }'

# Poll transcripts
curl "$API_BASE/transcripts/zoom/12345678901" \
  -H "X-API-Key: $API_KEY"

Set $API_BASE to https://api.cloud.vexa.ai (hosted) or http://localhost:8056 (self-host). Get $API_KEY from /get-started.

Zoom transcription FAQ

Things developers and buyers usually want to know before they wire Zoom up.

Do I need a Zoom Pro plan or cloud-recording subscription?

No. Zoom's own transcription requires a Pro / Business plan and cloud recording enabled — those settings live with the meeting host and aren't under your control if you're a guest. Vexa joins as a regular participant via the meeting URL, captures audio from the web client, and runs transcription separately. The Zoom plan tier doesn't matter.

Do I need to ship a Zoom App Marketplace app to use this?

No. As of v0.10.4 Vexa joins via the Zoom Web Client by default — no Marketplace listing, no OAuth setup, no SDK credentials. The legacy Native SDK path is still available (set ZOOM_SDK=true) for operators who already have credentials, but most users won't need it.

How does this compare to Zoom's built-in AI Companion?

AI Companion is a Zoom feature — it works inside Zoom's UI and writes summaries to the host's Zoom account, with no programmatic access for downstream automation. Vexa is an API: you POST a meeting URL and receive transcripts as they happen. If you're building a CRM-update flow, an MCP tool call, or a real-time agent that needs live meeting text, AI Companion isn't designed for that.

What's the current state of speaker identification on Zoom?

Speaker diarization on the Zoom web client has a known regression we're actively working on (see GitHub issue #318). Transcript content is accurate; speaker-attribution labels can mis-assign across speakers in some web-client meeting configurations. If your use case is single-speaker (sales calls with one rep) or doesn't require per-turn speaker labels, this isn't a blocker. For multi-party meetings with strict per-speaker attribution, validate against your call shape before production.

Are Zoom Events / Zoom Webinars supported?

Zoom Webinars (numeric meeting ID format) work the same way as regular meetings. Zoom Events (events.zoom.us) are NOT supported — Events uses unique per-registrant join links that can't be shared with a bot.

Common patterns

What teams build with the Zoom API

Three shapes we see repeatedly across customers integrating Vexa with Zoom.

01Pattern 1

Webinar transcription & search

Scenario

You run product webinars and customer Q&A on Zoom. You want full transcripts indexed and searchable post-event without paying for Zoom Business + cloud recording.

What you get

Auto-transcribe every webinar via Vexa, push to your help center or content platform with speaker tags. SEO-friendly transcripts of every event without the Zoom upsell.

02Pattern 2

Customer-discovery interviews

Scenario

Product and sales teams run customer interviews on Zoom. You need transcripts feeding research synthesis (Dovetail, Notion, Coda) and CRM enrichment.

What you get

Single API call per interview, transcripts piped to research tools via n8n or direct webhook. No Zoom recording-policy gymnastics.

03Pattern 3

Coaching & call-review automation

Scenario

Sales managers want every rep's Zoom call coached. You need transcripts feeding a coaching AI or a Gong-style review tool — without the Gong price tag.

What you get

Vexa transcribes every Zoom call, your coaching layer ingests text via webhook, surfaces patterns and review items per rep. Build the Gong workflow on your own terms.

Quickstart

Get a Zoom bot live in 5 minutes

The full flow from sign-up to first transcript — no SDK install, no Marketplace approval, no admin consent for unmanaged tenants.

  1. 1

    Get an API key

    Sign up at vexa.ai/get-started, or run the self-hosted gateway and mint a key locally.

  2. 2

    Extract meeting ID + passcode

    From https://us05web.zoom.us/j/12345678901?pwd=PWD take the numeric ID and the pwd value.

  3. 3

    POST /bots

    Send platform=zoom with native_meeting_id and (optional) passcode. No Marketplace approval needed.

  4. 4

    Host admits the bot

    Bot joins the Zoom web client, waits in lobby if enabled, becomes active when host admits.

  5. 5

    Receive transcripts

    Poll GET /transcripts/zoom/{id} or subscribe to a webhook for push delivery.

How it works under the hood

Zoom architecture

As of v0.10.4 Vexa joins via the Zoom Web Client (app.zoom.us/wc/...) in a Playwright-driven bot pod. Audio is captured from the browser session, streamed to a Whisper-large-v3-turbo service, and emitted as transcript chunks. The legacy native SDK path remains available via ZOOM_SDK=true plus Marketplace credentials for operators who need it. ZoomGov URLs are supported with the same flow.

Pipeline

bot pod audio capture whisper-svc transcript chunks REST / WebSocket
Pricing

Pay only for
what you use

Self-host for free, or let us run it for you. Simple usage-based pricing—no per-seat tax.

Free
$0

Apache 2.0 · Self-host forever

Best for teams who need full control

View on GitHub
Full platform — no limits
Your infrastructure, your data
Google Meet + Teams + Zoom
Docker Compose / K8s deploy
REST API + WebSockets + Dashboard
Community support
Individual
$12/mo

1 bot · Flat monthly · Everything included

Best for personal use — 1 meeting at a time

No credit card required

1 concurrent bot
Google Meet + Teams + Zoom
Real-time transcription included
Audio capture + webhooks
12-month audio storage
REST API + WebSockets + Dashboard
Pay-as-you-go
$0.30/hr

Bot infrastructure · +$0.20/hr transcription

Best for teams & API builders · $5 free credit

No credit card required

Unlimited bots
Google Meet + Teams + Zoom
Transcription add-on: +$0.20/hr
Audio capture + webhooks
12-month audio storage
REST API + WebSockets + Dashboard
Enterprise

On-premises, OpenShift, Kubernetes. Dedicated support + SLA.

Book a call
Transcription API

For self-hosted Vexa bot users. Transcription only — $0.002/min.

Get started
Bot: Vexa $0.30/hr vs Recall.ai $0.50/hr —40% cheaper

Frequently asked questions

What's included in the $0.30/hr Bot Service?

The base rate covers bot infrastructure: audio capture, webhooks, and 12 months of audio storage across Google Meet, Microsoft Teams, and Zoom. Add real-time transcription for +$0.20/hr ($0.50/hr total).

Which plan is right for me?

Choose Individual ($12/mo) if you need one bot for personal use—it includes real-time transcription, storage, and the Dashboard. Choose Pay-as-you-go ($0.30/hr) if you need multiple simultaneous bots or want to pay only for what you use—ideal for teams and API integrations. Both plans include Google Meet and Microsoft Teams support. Self-host for free from GitHub if you need full data control.

How does the free credit work?

Every new account gets $5 in free bot credit—no credit card required. That covers ~16 hours of bot time at $0.30/hr. All features are available: audio capture, transcription, real-time data, and full API access.

Can I self-host Vexa?

Yes. Vexa is Apache 2.0 licensed and fully self-hostable. Deploy with Docker Compose, Kubernetes, or OpenShift on your own infrastructure with complete data sovereignty.

How does Vexa compare to Recall.ai?

Vexa is open source, self-hostable, and up to 40% cheaper. Bot: $0.30/hr vs Recall.ai ~$0.50/hr. Transcription add-on: $0.20/hr vs ~$0.15/hr. See our detailed comparison.

What's the Individual plan for?

The Individual plan ($12/mo) is for single users who need one concurrent bot with unlimited meetings. It includes real-time transcription, recording, storage, REST API, WebSockets, and the UI Dashboard—everything you need for personal meeting intelligence. It supports Google Meet and Microsoft Teams, with Zoom coming soon.

Ready when you are

Start with Zoom.
First transcript in 5 minutes.

No credit card, no Marketplace approval, no admin consent for unmanaged tenants. Get an API key, POST a meeting URL, receive transcripts.

Apache 2.0 · Self-host or cloud · No credit card required