Dyte Meetings API

Create and manage meeting rooms.

OpenAPI Specification

dyte-meetings-api-openapi.yml Raw ↑
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).