canonical: https://jentic.com/apis/dyte.io/dyte

# Dyte REST APIs

Jentic publishes the only available OpenAPI specification for the Dyte REST APIs, keeping it validated and agent-ready. Dyte is a developer platform for embedding real-time video, audio, and chat into apps, exposing endpoints to manage organisations, meetings, participants, recordings, livestreams, sessions, webhooks, and analytics. Engineering teams use it to power video calling inside their own products without building infrastructure for media routing, recording, and livestream packaging.

## For AI agents

Create meetings and participants, manage live sessions and recordings, run livestreams, configure webhooks and presets, and pull session analytics for embedded video and audio applications.

## Scope

Does not provide hosted on-demand video catalogues, native phone-network calling, or messaging outside of in-meeting chat - use for real-time meetings, livestreams, and recordings only.

## Capabilities

- Create meetings and add participants with auth tokens for client SDK joins
- Start, pause, resume, and stop meeting recordings via the recordings resource
- Start, stop, enable, disable, and inspect livestreams for a meeting
- Manage active sessions: kick or mute participants, run polls, and fetch session details
- Read meeting and session analytics, including day-wise breakdowns and livestream summaries
- Configure webhooks for meeting and recording lifecycle events
- Manage organisations and presets that control meeting layout and feature toggles

## Use cases

### Embedded Video Meetings in a SaaS App

A SaaS product creates a Dyte meeting via POST /meetings when a user starts a call, adds participants with POST `/meetings/{meeting_id}/participants`, and hands the returned auth tokens to its front-end SDK so users join directly into the embedded experience. Meetings inherit a preset that locks the layout and feature set to the product's design.

Example prompt: POST /meetings with title and preset, then POST `/meetings/{meeting_id}/participants` with each user's name and role to receive auth tokens for client SDK joins

### Compliance Recording and Transcript Workflow

A regulated industry app starts recording each call with POST /recordings, listens for the recording.completed webhook, and pulls the transcript via GET `/sessions/{session_id}/transcript` and the AI summary via GET `/sessions/{session_id}/summary.` The combination gives a compliant audit trail without bolting on a separate recording service.

Example prompt: POST /recordings for the active meeting, then on webhook completion GET `/sessions/{session_id}/transcript` and POST `/sessions/{session_id}/summary` to attach to the case file

### Webinar Livestreaming

A webinar tool starts a Dyte meeting and then triggers POST `/meetings/{meeting_id}/livestreams` to push the session out to a livestream. Active livestreams are tracked with `/meetings/{meeting_id}/active-livestream` and stopped via `/meetings/{meeting_id}/active-livestream/stop`, while standalone livestreams via POST /livestreams cover broadcast use cases that don't need a meeting back-end.

Example prompt: POST `/meetings/{meeting_id}/livestreams` to start broadcasting, then POST `/meetings/{meeting_id}/active-livestream/stop` when the webinar ends

### Live Session Moderation

A community app monitors active sessions and gives moderators kick and mute controls via POST `/meetings/{meeting_id}/active-session/kick`, /kick-all, /mute, and /mute-all. The same active-session resource hosts polls (POST `/meetings/{meeting_id}/active-session/poll`), so moderators can drive engagement and enforce rules from one surface.

Example prompt: POST `/meetings/{meeting_id}/active-session/kick` with the participant_id of a rule-breaking user to remove them from the session

### Agent-Driven Meeting Orchestration via Jentic

An AI scheduling agent creates a Dyte meeting through Jentic, adds invited participants, and emails the join links - all via Jentic-mediated calls. The agent searches for 'create a Dyte meeting', loads the operation, and executes it with the desired preset, never holding the Bearer or Basic credentials directly.

Example prompt: Use Jentic to search 'create a Dyte meeting', load the POST /meetings operation, and execute it with title, preset, and participant list

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/meetings` | Create a meeting |
| POST | `/meetings/{meeting_id}/participants` | Add a participant to a meeting |
| POST | `/recordings` | Start recording a meeting |
| POST | `/meetings/{meeting_id}/livestreams` | Start livestreaming a meeting |
| POST | `/meetings/{meeting_id}/active-session/kick` | Kick participants from an active session |
| GET | `/sessions/{session_id}/transcript` | Fetch the transcript for a session |
| POST | `/webhooks` | Add a webhook |
| GET | `/analytics/daywise` | Day-wise session and recording analytics |

## Key resources

- **Meetings** — Create, list, fetch, update, and replace meetings; manage participants per meeting
- **Participants** — Add, fetch, edit, and delete participants and refresh participant auth tokens
- **Recordings** — Start, list, fetch, pause/resume/stop, and inspect active recordings
- **Livestreams** — Create independent livestreams or attach to meetings; enable, disable, reset stream key, and stop
- **Sessions** — Read sessions, participants, chat, transcripts, and AI-generated summaries
- **Active Session** — Kick, kick-all, mute, mute-all, and run polls in an active meeting session
- **Webhooks** — Add, list, fetch, edit, replace, and delete webhook subscriptions
- **Organisations** — Fetch, create, and edit organisation details
- **Analytics** — Day-wise and overall analytics for sessions, recordings, and livestreams

## Why Jentic

- **Setup:** Wiring Dyte by hand means setting up its Basic, Bearer, and OrgBearer schemes, choosing the right scheme per operation, and coding the meeting, recording, and livestream calls against the /v2 host yourself. Through Jentic you install once, import Dyte from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** Dyte puts the meeting id in the URL path (`/meetings/{meeting_id}/participants`, `/meetings/{meeting_id}/livestreams`), so a rule can pin your agent to one meeting: it can add participants and start a livestream for that meeting and nothing else. You choose the operations it may call, so actions like kicking a participant from the active session are not included unless you add them.
- **Credential handling:** Your Dyte Basic, Bearer, and OrgBearer credentials are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a Dyte meeting' or 'start recording', and Jentic returns the matching Dyte operation with its input schema, including the auth scheme it requires, so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **DynTube API** — Hosted on-demand video and gated playback - hosting-first compared to Dyte's real-time meeting focus
- **E-goi Marketing API** — Send meeting invites and webinar reminders by email, SMS, or push alongside Dyte meeting creation
- **DynaPictures API** — Render personalised meeting invite images or webinar banners for use with Dyte sessions

## FAQ

### Why is there no official OpenAPI spec for the Dyte REST APIs?

Dyte does not publish a public OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call the Dyte REST APIs via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Dyte REST APIs use?

Dyte supports HTTP Basic auth (organisation ID + API key) and Bearer tokens for participant-scoped calls, plus an OrgBearer scheme for org-wide bearer auth. Through Jentic, all three credential types are stored in the vault and the agent receives a scoped execution token instead of holding the secrets directly.

### Can I record a Dyte meeting via the API?

Yes. POST /recordings starts a recording for a meeting; PUT `/recordings/{recording_id}` pauses, resumes, or stops it; GET /recordings and GET `/recordings/active-recording/{meeting_id}` list and inspect recordings. Pair this with a webhook subscription to be notified when a recording finishes.

### What are the rate limits for the Dyte REST APIs?

The spec's info block notes that rate limits apply per user across GET, POST, PUT, and DELETE within a time window, but does not declare numeric values - exceeding the limit returns an error response. For high-volume usage, contact Dyte to lift the cap or batch participant additions per meeting.

### How do I create a meeting and add a participant through Jentic?

Run pip install jentic, search for 'create a Dyte meeting', load the operation for POST /meetings, execute it with title and preset, then load POST `/meetings/{meeting_id}/participants` and execute with the participant's name and role. The response includes an auth token for the client SDK to join.

### Can I get a transcript and AI summary of a session?

Yes. GET `/sessions/{session_id}/transcript` returns the full transcript and POST `/sessions/{session_id}/summary` generates an AI summary, which can then be retrieved with GET `/sessions/{session_id}/summary.` These work for sessions where transcription was enabled at meeting creation.

### Can I limit what my agent is allowed to do with the Dyte REST APIs?

Yes. Jentic One runs self-hosted, so your own rules decide which Dyte operations and credentials the agent may use. Because Dyte puts the meeting id in the URL path, such as `/meetings/{meeting_id}/participants` and `/meetings/{meeting_id}/livestreams`, a rule can pin the agent to a single meeting where it can only add participants and start a livestream. You also choose the operations it may call, so moderation actions like kicking a participant from the active session are excluded unless you explicitly allow them.
