Cloudflare.RealtimeKit reference
Source:
src/Cloudflare/RealtimeKit/App.ts
A Cloudflare RealtimeKit app — the organizational container for RealtimeKit meetings, presets, and webhooks.
RealtimeKit (the acquired Dyte platform) is in beta and must be enabled on the account. The API is create-only today: there is no update and no delete endpoint. Destroying the resource therefore only forgets the app from state (with a warning) — the app itself remains on the account until Cloudflare ships a delete API. Because of this, an existing app with the same name is adopted rather than duplicated.
App: Creating an App
Section titled “App: Creating an App”Basic app
const app = yield* Cloudflare.RealtimeKit.App("Meetings", { name: "my-meetings-app",});Child resources
const app = yield* Cloudflare.RealtimeKit.App("Meetings", {});
const webhook = yield* Cloudflare.RealtimeKit.Webhook("Events", { appId: app.appId, url: "https://example.com/webhook", events: ["meeting.started", "meeting.ended"],});Preset
Section titled “Preset”Source:
src/Cloudflare/RealtimeKit/Preset.ts
A Cloudflare RealtimeKit preset — a named participant role (e.g. host,
guest) bundling permissions, media quality, and UI design tokens for a
RealtimeKit app.
Name, config, UI, and permissions are all mutable in place; only moving the preset to a different app forces a replacement. The create API requires the full config / UI / permissions objects, so the resource fills unspecified sections with sensible defaults.
Preset: Creating a Preset
Section titled “Preset: Creating a Preset”Default group-call preset
const app = yield* Cloudflare.RealtimeKit.App("Meetings", {});
const guest = yield* Cloudflare.RealtimeKit.Preset("Guest", { appId: app.appId, name: "guest",});Host preset with moderation permissions
const host = yield* Cloudflare.RealtimeKit.Preset("Host", { appId: app.appId, name: "host", permissions: { ...Cloudflare.RealtimeKit.defaultRealtimeKitPresetPermissions(), canRecord: true, kickParticipant: true, pinParticipant: true, acceptWaitingRequests: true, },});Preset: Updating a Preset
Section titled “Preset: Updating a Preset”const preset = yield* Cloudflare.RealtimeKit.Preset("Guest", { appId: app.appId, name: "guest", config: { ...Cloudflare.RealtimeKit.defaultRealtimeKitPresetConfig(), viewType: "WEBINAR", },});Webhook
Section titled “Webhook”Source:
src/Cloudflare/RealtimeKit/Webhook.ts
A Cloudflare RealtimeKit webhook — receives meeting, recording, livestream, transcript, and summary events for a RealtimeKit app.
Name, URL, events, and enablement are all mutable in place; only moving the webhook to a different app forces a replacement.
Webhook: Creating a Webhook
Section titled “Webhook: Creating a Webhook”Meeting lifecycle events
const app = yield* Cloudflare.RealtimeKit.App("Meetings", {});
const webhook = yield* Cloudflare.RealtimeKit.Webhook("Lifecycle", { appId: app.appId, url: "https://example.com/webhook", events: ["meeting.started", "meeting.ended"],});Recording events to a Worker
const webhook = yield* Cloudflare.RealtimeKit.Webhook("Recordings", { appId: app.appId, url: worker.url, events: ["recording.statusUpdate"],});Webhook: Updating a Webhook
Section titled “Webhook: Updating a Webhook”const webhook = yield* Cloudflare.RealtimeKit.Webhook("Lifecycle", { appId: app.appId, url: "https://example.com/webhook", events: ["meeting.started", "meeting.ended"], enabled: false,});