Skip to main content
The Vexa API is platform-agnostic: you use the same endpoints for Google Meet, Teams, and Zoom. The only platform differences are in the meeting identifiers you pass (native_meeting_id, and passcode for Teams). If you’re new, start here:

Authentication

All requests use:
  • X-API-Key: <your token>
Hosted users can get an API key from: Self-hosted users can create users/tokens via:

Base URL

Set these once in your shell:
export API_BASE="http://localhost:8056"   # or https://api.cloud.vexa.ai
export API_KEY="YOUR_API_KEY_HERE"

The Happy Path (3 requests)

1) Send a bot to a meeting

  • POST /bots
Examples (Meet/Teams/Zoom) are here:

2) Read the transcript

  • GET /transcripts/{platform}/{native_meeting_id}
Examples are here:

3) Post-meeting playback (if a recording exists)

If recording was enabled and capture succeeded, the transcript response includes:
  • recordings[] → each has media_files[]
For browser playback, stream through the API:
  • GET /recordings/{recording_id}/media/{media_file_id}/raw (supports Range/206 seeking)
Full recordings reference: Recording management endpoints (explicit):
  • GET /recordings
  • GET /recordings/{recording_id}
  • DELETE /recordings/{recording_id}

Pagination

List endpoints use limit and offset query parameters:
GET /recordings?limit=50&offset=0
GET /meetings?limit=100&offset=0
ParameterTypeDefaultDescription
limitintvaries (50-100)Maximum items to return
offsetint0Number of items to skip
Admin endpoints use skip instead of offset (same behavior):
GET /admin/users?skip=0&limit=100

Reference

Zoom caveats: