Video
Whereby
API integration
Ship Video features without building the integration. Full Whereby API access via Proxy and 20+ MCP-ready tools for AI agents — extend models and mappings to fit your product.
Talk to usUse Cases
Why integrate with Whereby
Common scenarios for SaaS companies building Whereby integrations for their customers.
Embed video interviews inside ATS platforms
HR tech and ATS products can provision Whereby rooms for scheduled interviews, delivering separate host and candidate URLs, then sync AI-generated summaries back onto the candidate scorecard automatically.
Power telehealth consultations with usage-based billing
Digital health platforms can spin up secure, ephemeral rooms per appointment and pull participant minutes from Whereby Insights to generate accurate invoices for insurance claims or patient billing.
Add native sales calls to CRMs with conversational intelligence
CRMs and sales enablement tools can embed video calls directly into deal workflows, then trigger transcription and summary generation post-call to attach coaching insights and recording links to the deal record.
White-label video for multi-tenant SaaS
Platforms serving multiple end-customers can dynamically restyle every Whereby room — logos, theme tokens, backgrounds, knock page — to match the branding of the tenant hosting the call.
Deliver virtual classrooms with attendance tracking
EdTech products can create per-session rooms for tutoring or cohort classes and use Insights participant data to verify attendance, track engagement time, and diagnose connection quality issues.
What You Can Build
Ship these features with Truto + Whereby
Concrete product features your team can ship faster by leveraging Truto’s Whereby integration instead of building from scratch.
Just-in-time room provisioning
Create Whereby meetings on demand when a user schedules an event, storing the host and guest room URLs against your internal records.
Per-tenant room theming
Programmatically update each room's logo, theme tokens, background, and knock page background to match the branding of the customer hosting the call.
Post-call AI summary sync
Trigger transcription and summary creation after a meeting ends, then fetch the generated summary and attach it to the corresponding record in your app.
Recording library with secure access links
List and retrieve Whereby recordings, then surface time-limited access links to end users inside your product without hosting media yourself.
Usage-based billing from participant minutes
Pull room sessions and participant data from Whereby Insights to calculate billable minutes per meeting and drive invoicing or seat-usage dashboards.
Call quality diagnostics dashboard
Surface participant-level metrics like user agent, packet loss, and sample rate to help support teams troubleshoot dropped or degraded sessions.
SuperAI
Whereby AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
create_a_whereby_meeting
Create a new transient meeting room in Whereby. Returns meetingId, roomUrl, and endDate on every call; startDate, roomName, hostRoomUrl, and viewerRoomUrl are returned optionally (hostRoomUrl and viewerRoomUrl only when requested via the fields parameter). Required: endDate.
list_all_whereby_meetings
List meetings in Whereby. Returns: meetingId, roomName, roomUrl, startDate, endDate, hostRoomUrl, viewerRoomUrl.
get_single_whereby_meeting_by_id
Get a single Whereby meeting by id. Returns meetingId, roomUrl, and endDate on every call; startDate, roomName, hostRoomUrl, and viewerRoomUrl are returned optionally (hostRoomUrl and viewerRoomUrl only when requested via the fields parameter). Required: id.
delete_a_whereby_meeting_by_id
Delete a Whereby meeting by id. The endpoint is idempotent and will succeed even if the meeting has already been deleted. Returns an empty 204 response on success. Required: id.
list_all_whereby_insight_rooms
List Whereby room insights summaries. Returns roomName, createdAt, endAt, firstSessionStartedAt, lastSessionStartedAt, totalParticipantMinutes, totalUniqueParticipants, totalSessions, rating, and related usage totals per room. Optionally filter by roomName or createdAt, or sort results with sortBy.
list_all_whereby_insight_room_sessions
List session-level insights for a given room in Whereby. Returns: roomSessionId, roomName, startedAt, endedAt, totalParticipantMinutes, totalRecorderMinutes, totalStreamerMinutes, totalUniqueParticipants, totalUniqueRecorders, totalUniqueStreamers, rating, totalRatings. Required: roomName.
list_all_whereby_insight_participants
List participants in a Whereby session filtered by session ID or external ID. Returns: roomSessionId, participantId, deviceId, userId, roleName, displayName, joinedAt, leftAt, externalId, rating, tags, comment. Required: roomSessionId (or externalId).
get_single_whereby_insight_participant_by_id
Get detailed session data for a specific participant in a Whereby session, including user agent, bandwidth, and packet loss metrics. Returns: displayName, userRole, userAgent, timeStamp, sampleRateMs, samples. Required: roomSessionId, participantId.
list_all_whereby_recordings
List recordings in Whereby. Returns: recordingId, roomSessionId, filename, startDate, endDate, sizeInMegaBytes. Optionally filter by roomName or sort using sortBy (e.g., roomName:asc).
get_single_whereby_recording_by_id
Get metadata for a single Whereby recording by id. Returns: recordingId, roomSessionId, filename, startDate, endDate, sizeInMegaBytes. Required: id.
whereby_recordings_bulk_delete
Asynchronously delete multiple Whereby recordings at once. The endpoint schedules a background job and returns immediately; it is idempotent and safe to call even if the recordings have already been deleted or do not exist. Returns an empty 204 response on success. Required: recordingIds.
delete_a_whereby_recording_by_id
Delete a single Whereby recording by id. The endpoint is idempotent. Returns an empty 204 response on success. Required: id.
list_all_whereby_recording_access_links
Get the access link for a Whereby-hosted recording. Returns: accessLink, expires, recordingId, roomSessionId, filename, startDate, endDate, sizeInMegaBytes. Required: recording_id. Available for Whereby-hosted recordings only.
create_a_whereby_transcription
Create a transcription for a recording in Whereby by scheduling a background transcription job. Returns an empty 201 response on success. Required: recordingId.
list_all_whereby_transcriptions
List transcriptions in Whereby. Returns each transcription's transcriptionId, roomSessionId, roomName, createdAt, startDate, endDate, state, durationInSeconds, type, filename, and storageType. Optionally filter by roomName or sort results with sortBy.
get_single_whereby_transcription_by_id
Get a single Whereby transcription by id. Returns transcription metadata including transcriptionId, roomSessionId, roomName, createdAt, startDate, endDate, state, durationInSeconds, type, filename, and storageType. Required: id.
whereby_transcriptions_bulk_delete
Bulk delete multiple Whereby transcriptions asynchronously by scheduling a background deletion job. The operation is idempotent and succeeds even if transcriptions have already been deleted or do not exist. Returns an empty 204 response on success. Required: transcriptionIds.
delete_a_whereby_transcription_by_id
Delete a Whereby transcription by id. The operation is idempotent and succeeds even if the transcription has already been deleted. Returns an empty 204 response on success. Required: id.
list_all_whereby_transcription_access_links
Get a temporary download link for a Whereby-hosted transcription. Returns: accessLink, expires, transcriptionId, roomSessionId, roomName, createdAt, startDate, endDate, state, durationInSeconds, filename, storageType. Required: transcription_id. Available for Whereby-hosted transcriptions only; the link is valid for up to 43200 seconds (default 3600).
create_a_whereby_summary
Create a new summary in Whereby for a specified transcription. Schedules a summary generation job asynchronously and returns an empty 201 response on success. Required: transcriptionId.
list_all_whereby_summaries
List summaries in Whereby. Returns a collection of summary records each including summaryId, transcriptionId, summary, roomSessionId, roomName, createdAt, startDate, endDate, state, modifiedAt, and template. Supports sorting via the sortBy parameter.
get_single_whereby_summary_by_id
Get a single Whereby summary by id. Returns the summary record including summaryId, transcriptionId, summary, roomSessionId, roomName, createdAt, startDate, endDate, state, modifiedAt, and template. Required: id.
delete_a_whereby_summary_by_id
Delete a Whereby summary by id. The endpoint is idempotent and Returns an empty 204 response on success. Returns an empty 204 response on success. Required: id.
update_a_whereby_room_theme_logo_by_id
Upload a logo image for a Whereby room via multipart/form-data. Accepts a PNG image (at least 400px wide recommended). Returns an empty 204 response on success. Required: room_name.
update_a_whereby_room_theme_token_by_id
Set primary, secondary, and focus room theme colors in Whereby for a specific room. Supply custom color values via `tokens.colors` and control whether they are applied with `tokensPreset`. Returns an empty 204 response on success. Required: room_name.
update_a_whereby_room_theme_background_by_id
Upload a custom background image for a Whereby room using multipart/form-data. Returns an empty 204 response on success. Required: room_name.
update_a_whereby_room_theme_knock_page_background_by_id
Upload a custom knock page background image for a Whereby room using multipart form data. Returns an empty 204 response on success. Required: room_name.
Why Truto
Why use Truto’s MCP server for Whereby
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 600+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
How It Works
From zero to integrated
Go live with Whereby in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Whereby account
Use Truto’s frontend SDK to connect your customer’s Whereby account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Whereby
Truto’s Proxy API is a 1-to-1 mapping of the Whereby API. You call us, we call Whereby, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Whereby’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Whereby on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
How does authentication work when my end users connect their Whereby account?
Whereby uses API key authentication scoped to a Whereby organization. Truto handles secure storage and injection of each end user's API key, so your app calls a single unified endpoint and Truto authenticates the request against the correct customer's Whereby workspace.
Which Whereby operations are supported through Truto?
The current toolset covers meetings (create, list, get, delete), Insights (rooms, sessions, participants), recordings (list, get, delete, bulk delete, access links), transcriptions (create, list, get, delete, bulk delete, access links), summaries (create, list, get, delete), and room theme customization (logo, token, background, knock page background).
Can I customize the look and feel of embedded rooms per customer?
Yes. You can update each room's logo, theme tokens (colors), background, and knock page background via dedicated theme endpoints, which is how multi-tenant SaaS platforms deliver white-labeled video per end customer.
How do I retrieve transcripts and AI summaries after a call?
After a meeting, call create_a_whereby_transcription and create_a_whereby_summary to kick off async jobs. You can then poll the get endpoints and use the transcription and recording access link endpoints to fetch time-limited URLs to the underlying media and text.
How fresh is the Insights data for participant minutes and quality metrics?
Insights data (rooms, sessions, participants) is fetched on demand from Whereby's API through Truto, so you get the latest available values at query time. Post-call analytics like totalParticipantMinutes and per-participant network metrics are available once Whereby has processed the session.
Do Whereby rooms expire, and how should I handle that?
Yes — Whereby rooms are ephemeral and require an endDate at creation. Your integration should generate rooms just-in-time for each scheduled event and treat roomUrl and hostRoomUrl as short-lived, single-purpose links rather than persistent meeting rooms.
From the Blog
Whereby integration guides
Deep dives, architecture guides, and practical tutorials for building Whereby integrations.
Whereby
Get Whereby integrated into your app
Our team understands what it takes to make a Whereby integration successful. A short, crisp 30 minute call with folks who understand the problem.