JioMeet Platform Server API

Server-to-server REST API for the JioMeet video meeting platform, documented publicly at dev.jiomeet.com. Covers creating dynamic meetings, creating, fetching, updating and deleting scheduled meetings, starting, stopping and listing recordings, checking recording status, listing chat threads, and pulling meeting reports. Authentication is an HS256-signed JWT built from an app id and secret generated in the JioMeet platform console. No public base URL is stated in the documentation and no OpenAPI document is served, but the OpenAPI source is embedded in the published documentation build and has been harvested to openapi/ (11 operations, server https://jiomeetpro.jio.com).

OpenAPI Specification

reliance-jio-jiomeet-platform-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: JioMeet Platform APIs
  description: This section covers the JioMeet Platform APIs which can be used to quickly setup JioMeet
    APIs in your backend.
  version: 1.0.0
servers:
- url: https://jiomeetpro.jio.com
tags:
- name: JioMeetCpaasPlatform
paths:
  /api/platform/v1/recordings/start:
    post:
      summary: Start Recording
      description: This API allows you to start a recording. Ensure that the meeting is started for this
        API to take effect. A historyId is returned by this API which can be used to fetch the recordings
        later
      tags:
      - JioMeetCpaasPlatform
      parameters:
      - name: Content-Type
        in: header
        description: The content type should be application/json
        schema:
          type: string
        example: application/json
      - name: Authorization
        in: header
        required: true
        description: You need an app created on the JioMeet Platform and using the app credentials you
          can create a JWT to access this API. The JWT should have an issuer and the key "app" with the
          app id generated from the Plaform.
        schema:
          type: string
        example: <Authentication_token_signed_using_secret_or_private_key>
      requestBody:
        content:
          application/json:
            schema:
              example:
                jiomeetId: The 10 digit unique ID of the meeting
                roomPIN: Meeting secret that secures the meeting from unwanted access
              type: object
              properties:
                jiomeetId:
                  type: string
                  description: The 10 digit unique ID of the meeting
                roomPIN:
                  type: string
                  description: Meeting secret that secures the meeting from unwanted access
              title: RecordingStartRequestBody
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: Status whether the call was a success. Recording cant be started or stopped
                      when the meeting has no one in the call
                  historyId:
                    type: string
                    description: Unique identifier of the recording. This should be used to fetch the
                      recording once it has completed
                title: RecordingResponse
              examples:
                Example1:
                  summary: Example recording response
                  value:
                    status: OK
                    historyId: chis-123
        '400':
          content:
            application/json:
              schema:
                type: object
                properties:
                  customCode:
                    type: number
                    description: Status Code of the API
                  message:
                    type: string
                    description: The error code of the API
                  errors:
                    type: String
                    description: The error message of the API
                title: CustomError
        '401':
          content:
            application/json:
              schema:
                type: object
                properties:
                  customCode:
                    type: number
                    description: Status Code of the API
                  message:
                    type: string
                    description: The error code of the API
                  errors:
                    type: String
                    description: The error message of the API
                title: CustomError
        '412':
          content:
            application/json:
              summary: Validation Errors usually arise when the request body is incorrect
              schema:
                type: object
                properties:
                  customCode:
                    type: number
                    description: Status Code of the API
                  message:
                    type: string
                    description: The error code of the API
                  errorsArray:
                    type: Array
                    description: The errors array which includes objects with a "property" and "message"
                      properties describing the error
                title: ValidationError
  /api/platform/v1/room:
    post:
      summary: Create a dynamic meeting
      description: This API allows you to provision a dynamic meeting. Dynamic meetings are valid for
        24 hours from the time of creation.
      tags:
      - JioMeetCpaasPlatform
      parameters:
      - name: Content-Type
        in: header
        description: The content type should be application/json
        schema:
          type: string
        example: application/json
      - name: Authorization
        in: header
        required: true
        description: You need an app created on the JioMeet Platform and using the app credentials you
          can create a JWT to access this API. The JWT should have an issuer and the key "app" with the
          app id generated from the Plaform.
        schema:
          type: string
        example: <Authentication_token_signed_using_secret_or_private_key>
      requestBody:
        content:
          application/json:
            schema:
              example:
                name: name of the user creating the meeting
                title: title of the meeting
                description: description for the meeting
                hostToken: false
              type: object
              properties:
                name:
                  type: string
                  description: name of the user creating the meeting
                title:
                  type: string
                  description: title of the meeting
                description:
                  type: string
                  description: description for the meeting
                hostToken:
                  type: boolean
                  description: This boolean describes whether to return a host token or not. A host token
                    can be used to join a meeting as a host
                isAutoRecordingEnabled:
                  type: boolean
                  description: This boolean describes whether to auto recording the call. The recording
                    starts automatically when there are more than 1 user in the call if this flag is enabled
              title: RoomRequestBody
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  jiomeetId:
                    type: string
                    description: The 10 digit unique ID of the meeting
                  roomPIN:
                    type: string
                    description: Meeting PIN that secures the meeting from unwanted access
                  subdomain:
                    type: string
                    description: The JioMeet subdomain this meeting will run in
                  joinEndpoint:
                    type: string
                    description: The endpoint path for joining the guestMeetingLink/meetingLink.
                  hostToken:
                    type: string
                    description: This identifier allows a user to join with host privileges. To allow
                      a user to join as host, append this parameter in the query parameters of the meetingLink/guestMeetingLink.
                      "hostToken" is the query change
                  guestMeetingLink:
                    type: string
                    description: The meeting link that the users will use to join the meeting. These users
                      will be guest users and hence wont have any privileges to alter any meeting settings.
                  meetingLink:
                    type: string
                    description: The meeting link with your custom sub-domain that the users will use
                      to join the meeting. These users will be guest users and hence wont have any privileges
                      to alter any meeting settings.
                title: RoomResponse
              examples:
                Example1:
                  summary: Example meeting response
                  value:
                    jiomeetId: 1234567890
                    roomPIN: abcdef
                    subdomain: myjiomeetapplication
                    guestMeetingLink: https://jiomeetpro.jio.com/guest?meetingId=123456789&pwd=abcdef
                    meetingLink: https://myjiomeetapplication.platform.jiomeet.com/guest?meetingId=123456789&pwd=abcdef"
                    joinEndpoint: guest
                    hostToken: xEEREASDASAD343a
        '401':
          content:
            application/json:
              schema:
                type: object
                properties:
                  customCode:
                    type: number
                    description: Status Code of the API
                  message:
                    type: string
                    description: The error code of the API
                  errors:
                    type: String
                    description: The error message of the API
                title: CustomError
        '412':
          content:
            application/json:
              summary: Validation Errors usually arise when the request body is incorrect
              schema:
                type: object
                properties:
                  customCode:
                    type: number
                    description: Status Code of the API
                  message:
                    type: string
                    description: The error code of the API
                  errorsArray:
                    type: Array
                    description: The errors array which includes objects with a "property" and "message"
                      properties describing the error
                title: ValidationError
  /api/platform/v1/recordings/list:
    post:
      summary: List Recordings
      description: This API list recordings for a JioMeet meeting using the jiomeetId, roomPIN and the
        historyId (historyId is obtained through the start/stop recording APIs)
      tags:
      - JioMeetCpaasPlatform
      parameters:
      - name: Content-Type
        in: header
        description: The content type should be application/json
        schema:
          type: string
        example: application/json
      - name: Authorization
        in: header
        required: true
        description: You need an app created on the JioMeet Platform and using the app credentials you
          can create a JWT to access this API. The JWT should have an issuer and the key "app" with the
          app id generated from the Plaform.
        schema:
          type: string
        example: <Authentication_token_signed_using_secret_or_private_key>
      requestBody:
        content:
          application/json:
            schema:
              example:
                jiomeetId: The 10 digit unique ID of the meeting
                roomPIN: Meeting secret that secures the meeting from unwanted access
                historyId: Unique identifier of the recording. This should be used to fetch the recording
                  once it has completed
              type: object
              properties:
                jiomeetId:
                  type: string
                  description: The 10 digit unique ID of the meeting
                roomPIN:
                  type: string
                  description: Meeting secret that secures the meeting from unwanted access
                historyId:
                  type: string
                  description: Unique identifier of the recording. This should be used to fetch the recording
                    once it has completed
              title: RecordingListRequestBody
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  callRecordings:
                    type: array
                    description: An array of objects containing the recording download URL. Ensure you
                      call the download URL with the proper Authorization header to download the recording
                title: RecordingsListResponse
              examples:
                Example1:
                  summary: Example recording response
                  value:
                    callRecordings:
                    - recorderId: Etglyx
                      url: https://example.jio.com/api/shorturl/getVideo?hash=dFnCz8qIO10215123
                      customName: Recording(1)_10:24__10:27
                      duration: null
                      dateCreated: '2022-03-10T04:54:50.254Z'
                      startTime: '2022-03-10T04:54:55.247Z'
                      endTime: '2022-03-10T04:57:22.785Z'
                      fileSize: 4255450
        '400':
          content:
            application/json:
              schema:
                type: object
                properties:
                  customCode:
                    type: number
                    description: Status Code of the API
                  message:
                    type: string
                    description: The error code of the API
                  errors:
                    type: String
                    description: The error message of the API
                title: CustomError
        '401':
          content:
            application/json:
              schema:
                type: object
                properties:
                  customCode:
                    type: number
                    description: Status Code of the API
                  message:
                    type: string
                    description: The error code of the API
                  errors:
                    type: String
                    description: The error message of the API
                title: CustomError
        '412':
          content:
            application/json:
              summary: Validation Errors usually arise when the request body is incorrect
              schema:
                type: object
                properties:
                  customCode:
                    type: number
                    description: Status Code of the API
                  message:
                    type: string
                    description: The error code of the API
                  errorsArray:
                    type: Array
                    description: The errors array which includes objects with a "property" and "message"
                      properties describing the error
                title: ValidationError
  /api/platform/v1/schedule/meeting:
    put:
      summary: Scheduled Meeting - Update a scheduled meeting
      description: This API updates a scheduled meeting using the meetingId returned when the meeting
        was created
      tags:
      - JioMeetCpaasPlatform
      parameters:
      - name: Content-Type
        in: header
        description: The content type should be application/json
        schema:
          type: string
        example: application/json
      - name: Authorization
        in: header
        required: true
        description: You need an app created on the JioMeet Platform and using the app credentials you
          can create a JWT to access this API. The JWT should have an issuer and the key "app" with the
          app id generated from the Plaform.
        schema:
          type: string
        example: <Authentication_token_signed_using_secret_or_private_key>
      requestBody:
        content:
          application/json:
            schema:
              example:
                meetingId: The meeting returned when you scheduled the meeting
                topic: My Updated Scheduled Meeting
                startTime: '2023-09-11T13:50:00.000Z'
                endTime: '2023-09-11T14:20:00.000Z'
              type: object
              properties:
                meetingId:
                  type: string
                  description: The meeting id of the meeting
                topic:
                  type: string
                  description: The topic of the meeting
                startTime:
                  type: string
                  description: The start time of the meeting in ISO format
                endTime:
                  type: string
                  description: The end time of the meeting in ISO format
                isAutoRecordingEnabled:
                  type: boolean
                  description: This boolean describes whether to auto recording the call. The recording
                    starts automatically when there are more than 1 user in the call if this flag is enabled
                advancedOptions:
                  type: object
                  properties:
                    joinBeforeHost:
                      type: boolean
                      description: This boolean describes whether to allow users to join the meeting before
                        the host
                    waitingRoom:
                      type: boolean
                      description: This boolean describes whether to enable the waiting room for the meeting
                    participantHardAudioMute:
                      type: boolean
                      description: This boolean describes whether to hard mute all participants in the
                        meeting
                    participantHardVideoMute:
                      type: boolean
                      description: This boolean describes whether to hard mute all participants in the
                        meeting
                    isClassroomMode:
                      type: boolean
                      description: This boolean describes whether to enable classroom mode for the meeting
                  title: AdvancedOptions
              title: UpdateScheduledMeetingRequestBody
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  meetingId:
                    type: String
                    description: The meeting id that can be used to update, delete or fetch this meeting
                  jiomeetId:
                    type: string
                    description: The 10 digit unique ID of the meeting
                  topic:
                    type: string
                    description: The topic of the meeting
                  isAutoRecordingEnabled:
                    type: boolean
                    description: This boolean describes whether to auto recording the call. The recording
                      starts automatically when there are more than 1 user in the call if this flag is
                      enabled
                  startTime:
                    type: string
                    description: The start time of the meeting in ISO format
                  endTime:
                    type: string
                    description: The end time of the meeting in ISO format
                  scheduledDuration:
                    type: number
                    description: The duration of the meeting in milliseconds
                  meetingUrl:
                    type: string
                    description: The meeting link that the users will use to join the meeting. These users
                      will be guest users and hence wont have any privileges to alter any meeting settings.
                  hostUrl:
                    type: string
                    description: The meeting link that the hosts will use to join the meeting. These users
                      will be host users and hence will have privileges to alter meeting settings.
                  hostToken:
                    type: string
                    description: This identifier allows a user to join with host privileges. To allow
                      a user to join as host, append this parameter in the query parameters of the meetingLink.
                      "hostToken" is the query change
                  roomPIN:
                    type: string
                    description: Meeting secret that secures the meeting from unwanted access
                  status:
                    type: string
                    description: The status of the meeting
                  advancedOptions:
                    type: object
                    properties:
                      joinBeforeHost:
                        type: boolean
                        description: This boolean describes whether to allow users to join the meeting
                          before the host
                      waitingRoom:
                        type: boolean
                        description: This boolean describes whether to enable the waiting room for the
                          meeting
                      participantHardAudioMute:
                        type: boolean
                        description: This boolean describes whether to hard mute all participants in the
                          meeting
                      participantHardVideoMute:
                        type: boolean
                        description: This boolean describes whether to hard mute all participants in the
                          meeting
                      isClassroomMode:
                        type: boolean
                        description: This boolean describes whether to enable classroom mode for the meeting
                    title: AdvancedOptions
                title: ScheduledMeetingResponseBody
              examples:
                Example1:
                  summary: Example update scheduled meeting response
                  value:
                    jiomeetId: '5319535369'
                    topic: My Updated Scheduled Meeting
                    isAutoRecordingEnabled: false
                    startTime: '2023-09-11T13:50:00.000Z'
                    endTime: '2023-09-11T14:20:00.000Z'
                    scheduledDuration: 1800000
                    meetingUrl: https://platform.jiomeet.com/guest?meetingId=5319535369&pwd=n5CrU
                    hostUrl: https://platform.jiomeet.com/guest?meetingId=5319535369&pwd=n5CrU&hostToken=Z5gdmTRSb11A
                    hostToken: Z5gdmTRSb11A
                    advancedOptions:
                      joinBeforeHost: true
                      waitingRoom: false
                      participantHardAudioMute: false
                      participantHardVideoMute: false
                      isClassroomMode: false
                    status: active
                    roomPIN: n5CaU
                    meetingId: sm-77189593-f31a-4b62-941a-74f9147e465
        '400':
          content:
            application/json:
              schema:
                type: object
                properties:
                  customCode:
                    type: number
                    description: Status Code of the API
                  message:
                    type: string
                    description: The error code of the API
                  errors:
                    type: String
                    description: The error message of the API
                title: CustomError
        '401':
          content:
            application/json:
              schema:
                type: object
                properties:
                  customCode:
                    type: number
                    description: Status Code of the API
                  message:
                    type: string
                    description: The error code of the API
                  errors:
                    type: String
                    description: The error message of the API
                title: CustomError
        '412':
          content:
            application/json:
              summary: Validation Errors usually arise when the request body is incorrect
              schema:
                type: object
                properties:
                  customCode:
                    type: number
                    description: Status Code of the API
                  message:
                    type: string
                    description: The error code of the API
                  errorsArray:
                    type: Array
                    description: The errors array which includes objects with a "property" and "message"
                      properties describing the error
                title: ValidationError
    delete:
      summary: Scheduled Meeting - Delete a scheduled meeting
      description: This API deletes a scheduled meeting using the meetingId returned when the meeting
        was created
      tags:
      - JioMeetCpaasPlatform
      parameters:
      - name: Content-Type
        in: header
        description: The content type should be application/json
        schema:
          type: string
        example: application/json
      - name: Authorization
        in: header
        required: true
        description: You need an app created on the JioMeet Platform and using the app credentials you
          can create a JWT to access this API. The JWT should have an issuer and the key "app" with the
          app id generated from the Plaform.
        schema:
          type: string
        example: <Authentication_token_signed_using_secret_or_private_key>
      requestBody:
        content:
          application/json:
            schema:
              example:
                meetingId: The meeting returned when you scheduled the meeting
                type: current
              type: object
              properties:
                meetingId:
                  type: String
                  description: The meeting id that can be used to update, delete or fetch this meeting
                type:
                  type: String
                  description: Should be 'current' to delete current meeting
              title: DeleteScheduledMeetingRequestBody
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: Indicates whether meeting is DELETED or NOT_DELETED
                title: DeleteScheduledMeetingResponseBody
              examples:
                Example1:
                  summary: Example delete scheduled meeting response
                  value:
                    status: DELETED
        '400':
          content:
            application/json:
              schema:
                type: object
                properties:
                  customCode:
                    type: number
                    description: Status Code of the API
                  message:
                    type: string
                    description: The error code of the API
                  errors:
                    type: String
                    description: The error message of the API
                title: CustomError
        '401':
          content:
            application/json:
              schema:
                type: object
                properties:
                  customCode:
                    type: number
                    description: Status Code of the API
                  message:
                    type: string
                    description: The error code of the API
                  errors:
                    type: String
                    description: The error message of the API
                title: CustomError
        '412':
          content:
            application/json:
              summary: Validation Errors usually arise when the request body is incorrect
              schema:
                type: object
                properties:
                  customCode:
                    type: number
                    description: Status Code of the API
                  message:
                    type: string
                    description: The error code of the API
                  errorsArray:
                    type: Array
                    description: The errors array which includes objects with a "property" and "message"
                      properties describing the error
                title: ValidationError
    post:
      summary: Scheduled Meeting - Create a scheduled meeting
      description: This API creates a scheduled meeting. Scheduled meetings are valid for till after 1
        day from the start time of the meeting.
      tags:
      - JioMeetCpaasPlatform
      parameters:
      - name: Content-Type
        in: header
        description: The content type should be application/json
        schema:
          type: string
        example: application/json
      - name: Authorization
        in: header
        required: true
        description: You need an app created on the JioMeet Platform and using the app credentials you
          can create a JWT to access this API. The JWT should have an issuer and the key "app" with the
          app id generated from the Plaform.
        schema:
          type: string
        example: <Authentication_token_signed_using_secret_or_private_key>
      requestBody:
        content:
          application/json:
            schema:
              example:
                topic: The title of your meeting
                startTime: '2023-09-11T12:50:00.000Z'
                endTime: '2023-09-11T12:50:00.000Z'
              type: object
              properties:
                topic:
                  type: string
                  description: The topic of the meeting
                startTime:
                  type: string
                  description: The start time of the meeting in ISO format
                endTime:
                  type: string
                  description: The end time of the meeting in ISO format
                isAutoRecordingEnabled:
                  type: boolean
                  description: This boolean describes whether to auto recording the call. The recording
                    starts automatically when there are more than 1 user in the call if this flag is enabled
                advancedOptions:
                  type: object
                  properties:
                    joinBeforeHost:
                      type: boolean
                      description: This boolean describes whether to allow users to join the meeting before
                        the host
                    waitingRoom:
                      type: boolean
                      description: This boolean describes whether to enable the waiting room for the meeting
                    participantHardAudioMute:
                      type: boolean
                      description: This boolean describes whether to hard mute all participants in the
                        meeting
                    participantHardVideoMute:
                      type: boolean
                      description: This boolean describes whether to hard mute all participants in the
                        meeting
                    isClassroomMode:
                      type: boolean
                      description: This boolean describes whether to enable classroom mode for the meeting
                  title: AdvancedOptions
              title: ScheduledMeetingRequestBody
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  meetingId:
                    type: String
                    description: The meeting id that can be used to update, delete or fetch this meeting
                  jiomeetId:
                    type: string
                    description: The 10 digit unique ID of the meeting
                  topic:
                    type: string
                    description: The topic of the meeting
                  isAutoRecordingEnabled:
              

# --- truncated at 32 KB (62 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/reliance-jio/refs/heads/main/openapi/reliance-jio-jiomeet-platform-openapi.yml