openapi: 3.0.1 info: title: Dyte v2 REST Livestreams Meetings API description: Server-side v2 REST API for the Dyte live video and voice platform. Use it to create and manage meetings, add participants and issue the auth tokens that initialize the frontend SDKs, query completed sessions, and manage recordings, livestreams, and webhooks. Authentication is HTTP Basic with the base64-encoded string organizationId:apiKey. Dyte was acquired by Cloudflare in 2025 and is transitioning to Cloudflare RealtimeKit; the Dyte v2 API is in maintenance mode. termsOfService: https://dyte.io/terms contact: name: Dyte Support url: https://docs.dyte.io/ version: '2.0' servers: - url: https://api.dyte.io/v2 description: Dyte v2 production API security: - basicAuth: [] tags: - name: Meetings description: Create and manage meeting rooms. paths: /meetings: get: operationId: listMeetings tags: - Meetings summary: Fetch all meetings description: Returns a paginated list of meetings for the organization. parameters: - $ref: '#/components/parameters/PageNo' - $ref: '#/components/parameters/PerPage' responses: '200': description: A paginated list of meetings. content: application/json: schema: $ref: '#/components/schemas/MeetingListResponse' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createMeeting tags: - Meetings summary: Create a meeting description: Creates a new meeting room and returns its id. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateMeetingRequest' responses: '201': description: Meeting created. content: application/json: schema: $ref: '#/components/schemas/MeetingResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /meetings/{meetingId}: parameters: - $ref: '#/components/parameters/MeetingId' get: operationId: getMeeting tags: - Meetings summary: Fetch a meeting responses: '200': description: Meeting details. content: application/json: schema: $ref: '#/components/schemas/MeetingResponse' '404': $ref: '#/components/responses/NotFound' patch: operationId: updateMeeting tags: - Meetings summary: Update a meeting requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateMeetingRequest' responses: '200': description: Meeting updated. content: application/json: schema: $ref: '#/components/schemas/MeetingResponse' '404': $ref: '#/components/responses/NotFound' components: responses: NotFound: description: The requested resource does not exist. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Unauthorized: description: Missing or invalid Basic auth credentials. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' BadRequest: description: The request was malformed or missing required fields. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' parameters: PerPage: name: per_page in: query required: false description: Number of items per page. schema: type: integer default: 20 MeetingId: name: meetingId in: path required: true description: Unique meeting identifier. schema: type: string format: uuid PageNo: name: page_no in: query required: false description: Page number for paginated results. schema: type: integer default: 1 schemas: Paging: type: object properties: total_count: type: integer start_offset: type: integer end_offset: type: integer MeetingResponse: type: object properties: success: type: boolean data: $ref: '#/components/schemas/Meeting' MeetingListResponse: type: object properties: success: type: boolean data: type: array items: $ref: '#/components/schemas/Meeting' paging: $ref: '#/components/schemas/Paging' ErrorResponse: type: object properties: success: type: boolean example: false error: type: object properties: code: type: integer message: type: string UpdateMeetingRequest: type: object properties: title: type: string status: type: string enum: - ACTIVE - INACTIVE Meeting: type: object properties: id: type: string format: uuid title: type: string preferred_region: type: string record_on_start: type: boolean live_stream_on_start: type: boolean status: type: string created_at: type: string format: date-time updated_at: type: string format: date-time CreateMeetingRequest: type: object properties: title: type: string example: Weekly Standup preferred_region: type: string description: Preferred media server region for the meeting. example: ap-south-1 record_on_start: type: boolean default: false live_stream_on_start: type: boolean default: false securitySchemes: basicAuth: type: http scheme: basic description: HTTP Basic auth using the base64-encoded string organizationId:apiKey (organizationId as the username, apiKey as the password).