---
title: "Integrations - Zoom (meeting bot)"
url: "https://docs.unified.to/integrations/zoommeetingbot"
description: "Build Zoom (meeting bot) integrations faster with our Unified API — Calendar & Meetings data, OAuth2, real-time sync."
date: "2026-11-09T23:41:55.096Z"
updated: "2026-11-09T23:41:55.096Z"
---

# Zoom (meeting bot) integration

> What this integration supports through the Unified.to API, by object. Live data: `GET https://api.unified.to/unified/integration?type=zoommeetingbot` with your workspace API key (or Core MCP `list_unified_integrations` with `type: "zoommeetingbot"`). All integrations: https://docs.unified.to/integrations.md

## Overview

- **Type:** `zoommeetingbot`
- **Categories:** [Calendar & Meetings](https://docs.unified.to/calendar/overview.md), [Call Center](https://docs.unified.to/uc/overview.md), [Authentication](https://docs.unified.to/auth/overview.md), [Passthrough](https://docs.unified.to/passthrough/overview.md)
- **Website:** https://zoom.us
- **Vendor API docs:** https://developers.zoom.us/docs/rtms/
- **Launched:** 2026-11-07

## How end users connect

- **OAuth2** authorization flow. Register your own OAuth2 app with the vendor and add its credentials to the integration.

## OAuth2 scopes

Pass Unified scopes in `scopes=` on the authorization URL; each one requests these vendor scopes. Request only what you need.

| Unified scope | Vendor scopes |
| --- | --- |
| `calendar_bot_read` | none |
| `calendar_bot_write` | `user:read:user`, `meeting:read:meeting` |
| `calendar_botevent_read` | `meeting:read:meeting_transcript` |
| `calendar_calendar_read` | none |
| `calendar_calendar_write` | none |
| `calendar_event_read` | `meeting:read:list_meetings` |
| `calendar_event_write` | `meeting:write:meeting`, `meeting:update:meeting`, `meeting:delete:meeting` |
| `calendar_link_read` | `scheduler:read:list_schedule` |
| `calendar_location_read` | `zoom_rooms:read:list_locations:admin`, `zoom_rooms:read:location:admin` |
| `calendar_recording_read` | `cloud_recording:read:list_user_recordings` |
| `calendar_room_read` | `zoom_rooms:read:list_rooms:admin`, `zoom_rooms:read:room:admin` |
| `calendar_webinar_read` | `webinar:read:list_webinars` |
| `calendar_webinar_write` | `webinar:write:webinar`, `webinar:update:webinar`, `webinar:delete:webinar`, `webinar:write:registrant`, `webinar:update:registrant`, `webinar:delete:registrant`, `webinar:write:panelist`, `webinar:update:panelist`, `webinar:delete:panelist` |
| `uc_contact_read` | `team_chat:read:list_contacts`, `team_chat:read:contact` |
| `uc_contact_write` | none |

## Supported objects

| Object | Methods | Webhooks |
| --- | --- | --- |
| [calendar_bot](#calendar_bot) | list, get, create, update, remove | none |
| [calendar_botevent](#calendar_botevent) | none | created |
| [calendar_calendar](#calendar_calendar) | list, get | none |
| [calendar_event](#calendar_event) | list, get, create, update, remove | none |
| [calendar_link](#calendar_link) | list | none |
| [calendar_location](#calendar_location) | list, get | none |
| [calendar_recording](#calendar_recording) | list | none |
| [calendar_room](#calendar_room) | list, get | none |
| [calendar_webinar](#calendar_webinar) | list, get, create, update, remove | none |
| [passthrough](#passthrough) | none | none |
| [uc_contact](#uc_contact) | list, get | none |

Values below come from the integration's support data. "Required list filters" must be sent on list calls; "Required on create" fields must be sent when creating. Webhook events are `native` (pushed by the vendor) or `virtual` (polled by Unified.to). Anything not listed is not supported; an unsupported method returns `501`.

### calendar_bot

- **Methods:** `list`, `get`, `create`, `update`, `remove`
- **Webhooks:** none
- **List filters:** `list_event_id`, `list_limit`, `list_meeting_url`, `list_offset`, `list_status`
- **Readable fields:** `created_at`, `ended_at`, `event_id`, `id`, `meeting_metadata`, `meeting_url`, `name`, `participants`, `recording_config`, `recording_id`, `started_at`, `status`, `status_changes`, `updated_at`
- **Writable fields:** `event_id`, `meeting_url`, `name`, `recording_config`
- **Vendor objects:** `meeting`
- **Model:** https://docs.unified.to/calendar/bot/model.md

### calendar_botevent

- **Methods:** none
- **Webhooks:** `created` (native)
- **Readable fields:** `bot_id`, `chat_message`, `created_at`, `id`, `participant`, `status_change`, `transcript`, `type`
- **Writable fields:** none
- **Vendor objects:** `rtms_transcript`, `rtms_chat`, `rtms_session_event`
- **Model:** https://docs.unified.to/calendar/botevent/model.md

### calendar_calendar

- **Methods:** `list`, `get`
- **Webhooks:** none
- **List filters:** none
- **Readable fields:** `id`, `name`
- **Writable fields:** none
- **Model:** https://docs.unified.to/calendar/calendar/model.md

### calendar_event

- **Methods:** `list`, `get`, `create`, `update`, `remove`
- **Webhooks:** none
- **List filters:** `list_end_lt`, `list_expand`, `list_limit`, `list_offset`, `list_start_gte`
- **Readable fields:** `attendees`, `created_at`, `end_at`, `id`, `is_free`, `is_private`, `metadata`, `notes`, `organizer`, `recurrence`, `start_at`, `status`, `subject`, `timezone`, `updated_at`, `web_url`
- **Slow fields** (skipped unless you request them in `fields`): `metadata`
- **Writable fields:** `attendees`, `is_free`, `is_private`, `metadata`, `notes`, `recurrence`, `subject`, `timezone`
- **Required on create:** `end_at`, `start_at`
- **Vendor objects:** `meeting`
- **Model:** https://docs.unified.to/calendar/event/model.md

### calendar_link

- **Methods:** `list`
- **Webhooks:** none
- **List filters:** `list_limit`, `list_offset`, `list_query`
- **Readable fields:** `description`, `duration`, `id`, `is_active`, `name`, `updated_at`, `url`
- **Writable fields:** none
- **Vendor objects:** `schedule`
- **Model:** https://docs.unified.to/calendar/link/model.md

### calendar_location

- **Methods:** `list`, `get`
- **Webhooks:** none
- **List filters:** `list_limit`, `list_offset`, `list_parent_id`, `list_query`
- **Readable fields:** `address`, `id`, `name`, `parent_id`, `timezone`, `type`
- **Writable fields:** none
- **Vendor objects:** `location`
- **Model:** https://docs.unified.to/calendar/location/model.md

### calendar_recording

- **Methods:** `list`
- **Webhooks:** none
- **List filters:** `list_end_lt`, `list_event_id`, `list_limit`, `list_offset`, `list_query`, `list_start_gte`
- **Readable fields:** `end_at`, `event_id`, `expires_at`, `id`, `media`, `start_at`
- **Slow fields** (skipped unless you request them in `fields`): `media`
- **Writable fields:** none
- **Vendor objects:** `recording`
- **Model:** https://docs.unified.to/calendar/recording/model.md

### calendar_room

- **Methods:** `list`, `get`
- **Webhooks:** none
- **List filters:** `list_limit`, `list_location_id`, `list_offset`, `list_query`, `list_type`
- **Readable fields:** `capacity`, `id`, `location_id`, `name`, `type`
- **Writable fields:** none
- **Vendor objects:** `room`
- **Model:** https://docs.unified.to/calendar/room/model.md

### calendar_webinar

- **Methods:** `list`, `get`, `create`, `update`, `remove`
- **Webhooks:** none
- **List filters:** `list_limit`, `list_offset`, `list_query`, `list_user_id`
- **Readable fields:** `created_at`, `end_at`, `has_qa`, `has_recording`, `id`, `is_auto_approve`, `is_enabled`, `join_url`, `metadata`, `notes`, `organizer`, `panelist_password`, `panelists`, `recurrence`, `registrant_password`, `registrants`, `start_at`, `status`, `subject`, `timezone`, `updated_at`, `web_url`
- **Slow fields** (skipped unless you request them in `fields`): `metadata`
- **Writable fields:** `has_qa`, `is_auto_approve`, `is_enabled`, `metadata`, `notes`, `panelists`, `recurrence`, `subject`, `timezone`
- **Required on create:** `end_at`, `start_at`
- **Vendor objects:** `webinar`
- **Model:** https://docs.unified.to/calendar/webinar/model.md

### passthrough

- **Methods:** none
- **Webhooks:** none
- **Readable fields:** none
- **Writable fields:** none

### uc_contact

- **Methods:** `list`, `get`
- **Webhooks:** none
- **List filters:** `list_limit`, `list_offset`, `list_query`
- **Readable fields:** `emails`, `first_name`, `id`, `last_name`, `name`, `telephones`
- **Writable fields:** none
- **Vendor objects:** `contact`
- **Model:** https://docs.unified.to/uc/contact/model.md
