---
title: Whereby API Integration on Truto
slug: whereby
category: Video
canonical: "https://truto.one/integrations/detail/whereby/"
---

# Whereby API Integration on Truto



**Category:** Video  
**Status:** Generally available

## MCP-ready AI tools

Truto exposes 27 tools for Whereby that AI agents can call directly.

- **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.

## How it works

1. **Link your customer's Whereby account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Whereby.** The Proxy API is a 1-to-1 mapping of the Whereby API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **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

- **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.

## FAQs

### 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.

## Related reading

- [Connect Whereby to ChatGPT: Control Meetings, Analytics & Transcripts](https://truto.one/blog/connect-whereby-to-chatgpt-control-meetings-analytics-transcripts/) — Learn how to connect Whereby to ChatGPT using Truto's managed MCP server. Execute meeting generation, async media pipelines, and insight aggregation directly from your AI agent.
- [Connect Whereby to Claude: Automate Summaries, Recordings & Themes](https://truto.one/blog/connect-whereby-to-claude-automate-summaries-recordings-themes/) — Learn how to connect Whereby to Claude using a managed MCP server. Automate meeting summaries, manage video recordings, and control room themes with AI.
- [Connect Whereby to AI Agents: Track Meeting Metrics & Participant Data](https://truto.one/blog/connect-whereby-to-ai-agents-track-meeting-metrics-participant-data/) — Learn how to connect Whereby to AI agents using Truto's /tools endpoint. Build autonomous workflows that track meeting telemetry, manage recordings, and process transcriptions.
