openapi: 3.0.0 x-stoplight: id: 1x3mjhpqe378c info: version: v2 title: Dyte REST APIs description: |- ## Rate Limiting Rate limits specify the maximum number of requests (GET, POST, PUT, or DELETE) a user can make in a given time period. When you exceed a rate limit, the API request fails and returns the HTTP 429 status code. The HTTP 429 status code indicates that the user made too many requests in a given period of time ("rate limiting"). We apply rate limits at the IP address level. ### Rate Limit by IP Address The rate limit threshold is set at 2000 calls per minute per IP address. After 2000 calls, a 429 status code is sent, and access to any of our APIs is denied. Note: Rate limit is applied at the domain level, which means that all APIs are included in the threshold. | Number of Requests | Resources | Time Window | Status Code Returned when Threshold Exceeds | |--|--|--|--| | 2000 | Per IP | Per minute | HTTP 429 | ### Sample The following sample shows the API response for the status code 429. ```http HTTP/1.1 429 Too Many Requests retry-after: 4 x-envoy-ratelimited: true date: Tue, 06 Sep 2022 08:32:55 GMT server: envoy ``` ### Why Do You Set a Rate Limit? Rate limiting is required to prevent the network from becoming overloaded as a result of numerous requests. This could be due to hacking activity, overuse of the Dyte APIs by a bot, or a bug in the code. Setting a rate limit helps to prevent this type of API overuse. Setting a rate limit also protects us from various types of attacks, such as: - [Brute Force Attack](https://www.fortinet.com/resources/cyberglossary/brute-force-attack) - [DDOS attack](https://aws.amazon.com/shield/ddos-attack-protection/) - [Web-scraping](https://www.geeksforgeeks.org/what-is-web-scraping-and-how-to-use-it/) license: name: '' servers: - url: 'https://api.dyte.io/v2' description: '' paths: /livestreams: post: tags: - Live streams summary: Create an independent livestream description: 'Creates a livestream for the given organization ID and returns ingest server, stream key, and playback URL. You can pass custom input to the ingest server and stream key, and freely distribute the content using the playback URL on any player that supports HLS/LHLS.' requestBody: description: '' content: application/json: schema: type: object properties: name: type: string nullable: true description: Name of the livestream pattern: '^[a-zA-Z0-9-_]*$' x-examples: example-1: name: prdmmp-xhycsl-asdf examples: example-1: value: name: prdmmp-xhycsl responses: '201': description: Successful response content: application/json: schema: type: object properties: success: type: boolean data: type: object properties: status: type: string enum: - LIVE - IDLE - ERRORED - INVOKED name: type: string meeting_id: type: string nullable: true ingest_server: type: string description: The server URL to which the RTMP encoder should send the video and audio data. id: type: string description: The livestream ID. stream_key: type: string description: Unique key for accessing each livestream. playback_url: type: string description: The web address that viewers can use to watch the livestream. disabled: type: boolean description: Specifies if the livestream was disabled. x-examples: null examples: example-1: value: success: true data: status: INVOKED name: Livestreaming-Demo meeting_id: null ingest_server: 'rtmps://2ec802dd47b0.global-contribute.live-video.net:443/app/' id: 78dd0b50-4147-4bb8-88d3-2ccc2e98bff0 stream_key: sk_ap-south-1_BSErwBSdrcWn_0eG01cFGCJcRcCsflOAX3Eu4B3RyRX playback_url: 'https://2ec802dd47b0.ap-south-1.playback.live-video.net/api/video/v1/ap-south-1.944908621410.channel.Jk1l97eJF0ME.m3u8' disabled: false security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: nz9hm51c7fm1g get: tags: - Live streams summary: Fetch all livestreams description: 'Returns details of livestreams associated with the given organization ID. It includes livestreams created by your organization and Dyte meetings that are livestreamed by your organization. If you only want details of livestreams created by your organization and not Dyte meetings, you can use the `exclude_meetings` query parameter.' operationId: fetch_all_livestreams parameters: - name: exclude_meetings in: query description: Exclude the Dyte meetings that are livestreamed. schema: type: boolean default: false - name: per_page in: query description: Number of results per page. schema: type: integer - name: page_no in: query description: The page number from which you want your page search results to be displayed. schema: type: integer - name: status in: query description: Specifies the status of the operation. schema: type: string enum: - LIVE - IDLE - ERRORED - INVOKED - name: start_time in: query description: Specify the start time range in ISO format to access the live stream. schema: type: string format: date-time - name: end_time in: query description: Specify the end time range in ISO format to access the live stream. schema: type: string format: date-time - name: sort_order in: query description: Specifies the sorting order for the results. schema: type: string enum: - ASC - DSC responses: '200': description: OK content: application/json: schema: type: object properties: success: type: boolean data: type: object properties: status: type: string enum: - LIVE - IDLE - ERRORED - INVOKED id: type: string description: The ID of the livestream. format: uuid example: 3fd739f4-3c41-456e-bfba-6ebd51e16d2d name: type: string description: Name of the livestream. example: test ingest_server: type: string description: The server URL to which the RTMP encoder sends the video and audio data. example: 'rtmps://2ec802dd47b0.global-contribute.live-video.net:443/app/' stream_key: type: string description: Unique key for accessing each livestream. example: sk_ap-south-1_fiETVh5SNa3V_MAs0NlNCkJqTokqrMbrdWyA2naII25 playback_url: type: string description: The web address that viewers can use to watch the livestream. example: 'https://2ec802dd47b0.ap-south-1.playback.live-video.net/api/video/v1/ap-south-1.944908621410.channel.mA2dNqrBulpi.m3u8' meeting_id: type: string description: ID of the meeting. created_at: type: string description: Timestamp the object was created at. The time is returned in ISO format. format: date-time example: '2023-07-15T11:48:34.753Z' updated_at: type: string description: Timestamp the object was updated at. The time is returned in ISO format. format: date-time example: '2023-07-15T11:48:34.753Z' disabled: type: string description: Specifies if the livestream was disabled. paging: type: object properties: total_count: type: integer example: 1 start_offset: type: integer example: 1 end_offset: type: integer example: 1 x-examples: null examples: example-0: summary: Get All Live streams Of An Org Staging Success value: success: true data: - id: 3fd739f4-3c41-456e-bfba-6ebd51e16d2c name: null ingest_server: 'rtmps://1ab802dd26b0.global-contribute.live-video.net:344/app/' stream_key: sk_ap-south-1_fiETVh5SNa3V_ABs0NlNCkJqTokqrMbrdWyA1bcII32 status: IDLE meeting_id: null playback_url: 'https://2ec802dd47b0.ap-south-1.playback.live-video.net/api/video/v1/ap-south-1.811208621215.channel.mA2dNqrBulpi.m3u8' created_at: '2023-07-15T11:48:34.753Z' updated_at: '2023-07-15T11:48:34.753Z' disabled: false paging: total_count: 1 start_offset: 1 end_offset: 1 security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: vpmpbbpl8z8v4 '/meetings/{meeting_id}/active-livestream/stop': post: tags: - Live streams summary: Stop livestreaming a meeting description: Stops the active livestream of a meeting associated with the given meeting ID. Retreive the meeting ID using the `Create a meeting` API. operationId: stop_livestreaming parameters: - name: meeting_id in: path description: ID of the meeting required: true schema: type: string format: uuid requestBody: content: {} responses: '200': description: OK content: application/json: schema: type: object properties: success: type: boolean data: type: object properties: message: type: string x-examples: null examples: example-1: value: success: true data: message: Stopped live stream successfully security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: v4kih4b0uoo87 '/meetings/{meeting_id}/livestream': get: tags: - Live streams summary: Fetch livestream session details for a meeting description: Returns livestream session details for the given meeting ID. Retreive the meeting ID using the `Create a meeting` API. operationId: livestream-session-details parameters: - name: page_no in: query description: The page number from which you want your page search results to be displayed. schema: type: integer - name: per_page in: query description: Number of results per page. schema: type: integer - name: meeting_id in: path description: ID of the meeting required: true schema: type: string format: uuid responses: '200': description: OK content: application/json: schema: type: object properties: success: type: boolean data: type: object properties: livestreams: type: array items: type: object properties: status: type: string enum: - LIVE - INVOKED - ERRORED - IDLE name: type: string nullable: true description: Name of the livestream. meeting_id: type: string description: The ID of the meeting that was livestreamed. created_at: type: string description: The timestamp at which the livestream was created. The time is returned in ISO format. format: date-time updated_at: type: string description: The timestamp at which the livestream was updated. The time is returned in ISO format. format: date-time ingest_server: type: string description: The server URL to which the RTMP encoder sends the video and audio data. id: type: string description: The livestream ID. stream_key: type: string description: Unique key for accessing each livestream. playback_url: type: string description: The web address that viewers can use to watch the livestream. disabled: type: boolean description: Specifies if the livestream was disabled. sessions: type: object properties: id: type: string description: The ID of the livestream session. livestream_id: type: string description: The ID of the livestream. err_message: type: string invoked_time: type: string description: The time at which the livestream was invoked. format: date-time started_time: type: string description: The time at which the livestream was started. format: date-time stopped_time: type: string description: The time at which the livestream was stopped. format: date-time created_at: type: string description: The timestamp at which the livestream was created. The time is returned in ISO format. format: date-time updated_at: type: string description: The timestamp at which the livestream was updated. The time is returned in ISO format. format: date-time ingest_seconds: type: string description: The time duration for which the input was given or the meeting was streamed. paging: type: object properties: total_count: type: integer example: 1 start_offset: type: integer example: 1 end_offset: type: integer example: 1 x-examples: null examples: example-0: summary: Get LiveStream From StreamId Success value: success: true data: livestream: id: b60ef3da-fbbb-441b-9168-8235b0035248 name: null ingest_server: 'rtmps://2ec802dd47b0.global-contribute.live-video.net:233/app/' stream_key: sk_ap-south-1_x3lKBdJa8UDN_3q6ABCDJnqnbnhyrkXrOG103ABsxnZ status: LIVE meeting_id: aaa87945-df1c-49d9-8159-262a7ae6cfde playback_url: 'https://2ec802dd47b0.ap-south-1.playback.live-video.net/api/video/v1/ap-south-1.855008621410.channel.ob5KQUrP5Zaf.m3u8' created_at: '2023-07-15T07:08:26.634Z' updated_at: '2023-07-15T07:08:40.726Z' disabled: false sessions: - id: cf55a850-c3fd-46b5-b5d2-25b3b9aa1686 livestream_id: b60ef3da-fbbb-441b-9168-8235b0035248 err_message: null invoked_time: null started_time: '2023-07-15T07:08:39.000Z' stopped_time: null created_at: '2023-07-15T07:08:40.742Z' updated_at: '2023-07-15T07:08:40.742Z' ingest_seconds: 60 viewer_seconds: 60 paging: total_count: 1 start_offset: 1 end_offset: 1 security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: h5n4xx5dlxyxm '/meetings/{meeting_id}/livestreams': post: tags: - Live streams summary: Start livestreaming a meeting description: Starts livestream of a meeting associated with the given meeting ID. Retreive the meeting ID using the `Create a meeting` API. operationId: start-livestreaming parameters: - name: meeting_id in: path description: ID of the meeting required: true schema: type: string format: uuid requestBody: content: application/json: schema: type: object properties: name: type: string nullable: true pattern: '^[a-zA-Z0-9-_]*$' video_config: type: object properties: height: type: integer description: Height of the livestreaming video in pixels width: type: integer description: Width of the livestreaming video in pixels x-examples: example-1: name: prdmmp-xhycsl examples: example-1: value: name: prdmmp-xhycsl responses: '201': description: Created content: application/json: schema: type: object properties: success: type: boolean data: type: object properties: status: type: string enum: - LIVE - IDLE - ERRORED - INVOKED ingest_server: type: string description: The server URL to which the RTMP encoder sends the video and audio data. id: type: string description: The livestream ID. stream_key: type: string description: Unique key for accessing each livestream. playback_url: type: string description: The web address that viewers can use to watch the livestream. x-examples: null examples: example-1: value: success: true data: status: INVOKED ingest_server: 'rtmps://2ec802dd47b0.global-contribute.live-video.net:443/app/' id: 7088bba8-f522-49a8-b59b-3cd0e946bbb0 stream_key: sk_ap-south-1_AfnVpeYZjidO_fBpWKody7sDUOEfy9Zc6XAZegkR0Va playback_url: 'https://2ec802dd47b0.ap-south-1.playback.live-video.net/api/video/v1/ap-south-1.944908621410.channel.rVKA2KM5Lunt.m3u8' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: hbqf2621hh2rj '/livestreams/{livestream_id}/reset-stream-key': post: tags: - Live streams summary: Reset a livestream's stream key description: Resets the stream key for the given livestream ID. Retreive the livestream ID using the `Start livestreaming a meeting` API. operationId: reset-stream-key parameters: - name: livestream_id in: path required: true schema: type: string requestBody: content: {} responses: '200': description: OK content: application/json: schema: type: object properties: success: type: boolean data: type: object properties: id: type: string description: The ID of the livestream. name: type: string description: Name of the livestream. ingest_server: type: string description: The server URL to which the RTMP encoder sends the video and audio data. stream_key: type: string description: Unique key for accessing each livestream. status: type: string enum: - LIVE - IDLE - ERRORED - INVOKED meeting_id: type: string description: The ID of the meeting. playback_url: type: string description: The web address that viewers can use to watch the livestream. created_at: type: string description: Timestamp the object was created at. The time is returned in ISO format. format: date-time updated_at: type: string description: Timestamp the object was updated at. The time is returned in ISO format. format: date-time disabled: type: string description: Specifies if the livestream was disabled. x-examples: example-1: success: false examples: Example 1: value: success: true data: id: 61e03cb4-d4da-42ad-9169-f53360f4f4b4 name: null ingest_server: 'rtmps://2ec802dd47b0.global-contribute.live-video.net:223/app/' stream_key: '' status: LIVE meeting_id: bbb03399-24e3-4b0c-90ec-172e97e636be playback_url: 'https://2ec802dd47b0.ap-south-1.playback.live-video.net/api/video/v1/ap-south-1.124408622242.channel.9Ztr6yk4vndX.m3a1' created_at: '2023-07-15T11:58:08.404Z' updated_at: '2023-07-15T12:02:48.242Z' disabled: true application/xml: schema: type: object properties: success: type: string data: $ref: '#/components/schemas/LivestreamBase' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: enyj2erev0l8i /analytics/livestreams/overall: get: tags: - Live streams - LivestreamAnalytics summary: Fetch complete analytics data for your livestreams description: Returns livestream analytics for the specified time range. operationId: get-livestream-analytics-complete parameters: - name: start_time in: query description: Specify the start time range in ISO format to access the livestream analytics. schema: type: string format: date-time - name: end_time in: query description: Specify the end time range in ISO format to access the livestream analytics. schema: type: string format: date-time responses: '200': description: OK content: application/json: schema: type: object properties: success: type: boolean data: type: object properties: count: type: integer description: Count of total livestreams. total_ingest_seconds: type: integer description: Total time duration for which the input was given or the meeting was streamed. total_viewer_seconds: type: integer description: Total view time for which the viewers watched the stream. examples: Example 1: value: success: true data: - date: '2023-07-15T00:00:00.000Z' count: 4 total_ingest_seconds: 531 total_viewer_seconds: 116 security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: e8mdnrsg1yzya /analytics/livestreams/daywise: get: tags: - Live streams - LivestreamAnalytics summary: Fetch day-wise analytics data for your livestreams description: Returns day-wise livestream analytics data for the specified time range. operationId: get-livestream-analytics-daywise parameters: - name: start_time in: query description: Specify the start time range in ISO format to access the livestream analytics. schema: type: string format: date-time - name: end_time in: query description: Specify the end time range in ISO format to access the livestream analytics. schema: type: string format: date-time responses: '200': description: OK content: application/json: schema: type: object properties: success: type: boolean data: type: object properties: date: type: string description: 'The livestream timestamp, provided in ISO format.' count: type: string description: Count of total livestreams. total_ingest_seconds: type: string description: Total time duration for which the input was given or the meeting was streamed. total_viewer_seconds: type: string description: Total view time for which the viewers watched the stream. examples: Example 1: value: success: true data: - date: '2023-07-15T00:00:00.000Z' count: 4 total_ingest_seconds: 531 total_viewer_seconds: 116 security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: l0kuv6cct2tjb /analytics/daywise: get: tags: - Analytics - Organizations summary: Fetch day-wise session and recording analytics data for an organization description: 'Returns day-wise session and recording analytics data of an organization for the specified time range start_date to end_date. If start_date and end_date are not provided, the default time range is set from 30 days ago to the current date.' operationId: get-org-analytics parameters: - $ref: '#/components/parameters/startDate' - $ref: '#/components/parameters/endDate' responses: '200': description: OK content: application/json: schema: type: object properties: success: type: boolean data: type: object properties: session_stats: type: object description: Session statistics of an organization during the range specified properties: sessions_count: type: integer description: Total number of sessions during the range specified sessions_minutes_consumed: type: number description: Total session minutes during the range specified day_stats: type: array description: Day wise session stats items: type: object properties: day: type: string total_sessions: type: integer description: Total number of sessions for a specific day total_session_minutes: type: number description: Total session minutes for a specific day recording_stats: type: object description: Recording statistics of an organization during the range specified properties: recording_count: type: integer description: Total number of recordings during the range specified recording_minutes_consumed: type: number description: Total recording minutes during the range specified day_stats: type: array description: Day wise recording stats items: type: object properties: day: type: string total_recordings: type: integer description: Total number of recordings for a specific day total_recording_minutes: type: integer description: Total recording minutes for a specific day x-examples: Example 1: success: true data: session_stats: sessions_count: 4 sessions_minutes_consumed: 243.5 day_stats: - day: '2023-10-17T00:00:00.000Z' total_sessions: 2 total_session_minutes: 221 - day: '2023-10-18T00:00:00.000Z' total_sessions: 2 total_session_minutes: 22.5 recording_stats: recording_count: 7 recording_minutes_consumed: 573.666666666667 day_stats: - day: '2023-10-16T00:00:00.000Z' total_recordings: 1 total_recording_minutes: 14 - day: '2023-10-17T00:00:00.000Z' total_recordings: 5 total_recording_minutes: 365.66666666666697 - day: '2023-10-18T00:00:00.000Z' total_recordings: 1 total_recording_minutes: 194 security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: b3p3htnyy280y '/livestreams/{livestream_id}/enable': put: tags: - Live streams summary: Enable a livestream description: Enables a livestream for the given livestream ID. Retreive the livestream ID using the `Start livestreaming a meeting` API. operationId: enable-livestream parameters: - name: livestream_id in: path required: true schema: type: string responses: '200': description: OK content: application/json: schema: type: object properties: success: type: boolean data: $ref: '#/components/schemas/LivestreamBase' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: cw8bj29l370y6 '/livestreams/{livestream_id}/disable': put: tags: - Live streams summary: Disable a livestream description: Disables a livestream for the given livestream ID. Retreive the livestream ID using the `Start livestreaming a meeting` API. operationId: disable-livestream parameters: - name: livestream_id in: path required: true schema: type: string responses: '200': description: OK content: application/json: schema: type: object properties: success: $ref: '#/components/schemas/success' LivestreamBase: $ref: '#/components/schemas/LivestreamBase' examples: Example 1: value: success: true data: status: LIVE name: string meeting_id: string ingest_server: string id: string stream_key: string playback_url: string created_at: '2019-08-24T14:15:22Z' updated_at: '2019-08-24T14:15:22Z' disabled: false org_id: string security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: ghruwon13q7qi '/sessions/{session_id}/livestream-sessions': get: tags: - Live streams summary: Fetch livestream session details using a session ID description: Returns livestream session details for the given session ID. Retreive the session ID using the `Fetch all sessions of an organization` API. operationId: get-v2-livestreamsession-session-meetingId-active-livestream parameters: - name: per_page in: query description: Number of results per page. schema: type: number - name: page_no in: query description: The page number from which you want your page search results to be displayed. schema: type: number - name: session_id in: path required: true schema: type: string responses: '200': description: OK content: application/json: schema: type: object properties: success: type: boolean data: type: object properties: err_message: type: string enum: - LIVE - IDLE - ERRORED - INVOKED invoked_time: type: string nullable: true description: Name of the livestream. livestream_id: type: string description: The ID of the livestream. created_at: type: string description: Timestamp the object was created at. The time is returned in ISO format. format: date-time updated_at: type: string description: Timestamp the object was updated at. The time is returned in ISO format. format: date-time id: type: string description: The livestream session ID. stopped_time: type: string description: Specifies if the livestream was disabled. format: date-time ingest_seconds: type: number description: The time duration for which the input was given or the meeting was streamed. viewer_seconds: type: number description: The total view time for which the viewers watched the stream. paging: type: object properties: total_count: type: number start_offset: type: number end_offset: type: number x-examples: null examples: example-1: value: success: true data: data: - id: cf55a850-c3fd-46b5-b5d2-25b3b9aa1686 livestream_id: b60ef3da-fbbb-441b-9168-8235b0035123 err_message: null invoked_time: null started_time: '2023-07-15T07:08:39.000Z' stopped_time: '2023-07-15T07:10:45.000Z' created_at: '2023-07-15T07:08:40.742Z' updated_at: '2023-07-15T07:11:47.274Z' ingest_seconds: 118 viewer_seconds: 116.11599994199997 paging: total_count: 1 start_offset: 1 end_offset: 1 security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: im1xtiw8yrrh0 '/meetings/{meeting_id}/active-livestream': get: tags: - Live streams summary: Fetch active livestreams for a meeting description: Returns details of all active livestreams for the given meeting ID. operationId: get-v2-meetings-meetingId-active-livestream parameters: - name: meeting_id in: path description: ID of the meeting required: true schema: type: string format: uuid responses: '200': description: OK content: application/json: schema: type: object properties: success: type: boolean data: type: object properties: status: type: string enum: - LIVE - IDLE - ERRORED - INVOKED name: type: string nullable: true description: Name of the livestream. meeting_id: type: string created_at: type: string description: Timestamp the object was created at. The time is returned in ISO format. format: date-time updated_at: type: string description: Timestamp the object was updated at. The time is returned in ISO format. format: date-time ingest_server: type: string description: The server URL to which the RTMP encoder sends the video and audio data. id: type: string description: The livestream ID. stream_key: type: string description: Unique key for accessing each livestream. playback_url: type: string description: The web address that viewers can use to watch the livestream. disabled: type: string description: Specifies if the livestream was disabled. x-examples: null examples: example-1: value: success: true data: id: 61e03cb4-d4da-42ad-9169-f53360f4f4b4 name: null status: LIVE meeting_id: bbb03399-24e3-4b0c-90ec-172e97e636be playback_url: 'https://2ec802dd47b0.ap-south-1.playback.live-video.net/api/video/v1/ap-south-1.811208621410.channel.9Ztr6yk4vndX.a1c3' created_at: '2023-07-15T11:58:08.404Z' updated_at: '2023-07-15T11:58:24.278Z' disabled: false security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: jnb5kv6obhs9n '/livestreams/sessions/{livestream-session-id}': get: tags: - Live streams summary: Fetch livestream session details using livestream session ID description: Returns livestream session details for the given livestream session ID. Retrieve the `livestream_session_id`using the `Fetch livestream session details using a session ID` API. operationId: get-v2-livestreams-livestream-session-id parameters: - name: livestream-session-id in: path required: true schema: type: string responses: '200': description: OK content: application/json: schema: type: object properties: success: type: boolean data: type: object properties: livestream_id: type: string created_at: type: string description: Timestamp the object was created at. The time is returned in ISO format. format: date-time updated_at: type: string description: Timestamp the object was updated at. The time is returned in ISO format. err_message: type: string description: The server URL to which the RTMP encoder sends the video and audio data. id: type: string description: The livestream ID. started_time: type: string description: Unique key for accessing each livestream. stopped_time: type: string description: The web address that viewers can use to watch the livestream. ingest_seconds: type: integer description: Name of the livestream. viewer_seconds: type: integer description: Specifies if the livestream was disabled. x-examples: null examples: example-1: value: success: true data: id: cf55a850-c3fd-46b5-b5d2-25b3b9aa1686 livestream_id: b60ef3da-fbbb-441b-9168-8235b0035248 err_message: null invoked_time: null started_time: '2023-07-15T07:08:39.000Z' stopped_time: null created_at: '2023-07-15T07:08:40.742Z' updated_at: '2023-07-15T07:08:40.742Z' ingest_seconds: 60 viewer_seconds: 60 security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: 3addvzui8v10d '/livestreams/{livestream_id}/active-livestream-session': get: tags: - Live streams summary: Fetch active livestream session details description: Returns details of all active livestreams for the given livestream ID. Retreive the livestream ID using the `Start livestreaming a meeting` API. operationId: get-v2-active-livestream-session-details parameters: - name: livestream_id in: path required: true schema: type: string responses: '200': description: OK content: application/json: schema: type: object properties: success: type: boolean data: type: object properties: livestream: type: object properties: id: type: string name: type: string description: Name of the livestream. ingest_server: type: string description: The server URL to which the RTMP encoder sends the video and audio data. stream_key: type: string description: Unique key for accessing each livestream. status: type: string enum: - LIVE - IDLE - ERRORED - INVOKED meeting_id: type: string description: ID of the meeting. playback_url: type: string description: The web address that viewers can use to watch the livestream. created_at: type: string description: Timestamp the object was created at. The time is returned in ISO format. format: date-time updated_at: type: string description: Timestamp the object was updated at. The time is returned in ISO format. format: date-time disabled: type: string description: Specifies if the livestream was disabled. session: type: object properties: id: type: string livestream_id: type: string err_message: type: string invoked_time: type: string description: Timestamp the object was invoked. The time is returned in ISO format. format: date-time started_time: type: string description: Timestamp the object was started. The time is returned in ISO format. format: date-time stopped_time: type: string description: Timestamp the object was stopped. The time is returned in ISO format. format: date-time created_at: type: string description: Timestamp the object was created at. The time is returned in ISO format. format: date-time updated_at: type: string description: Timestamp the object was updated at. The time is returned in ISO format. format: date-time ingest_seconds: type: string description: The time duration for which the input was given or the meeting was streamed. viewer_seconds: type: string description: The total view time for which the viewers watched the stream. x-examples: null examples: example-1: value: success: true data: livestream: id: b60ef3da-fbbb-441b-9168-8235b0035248 name: null ingest_server: 'rtmps://2ec802dd47b0.global-contribute.live-video.net:443/app/' stream_key: sk_ap-south-1_x3lKBdJa8UDN_3q6PPLMJnqnbnhyrkXrOG504MUsxnZ status: LIVE meeting_id: bbb87945-df1c-49d9-8159-262a7ae6cfde playback_url: 'https://2ec802dd47b0.ap-south-1.playback.live-video.net/api/video/v1/ap-south-1.944908621410.channel.ob5KQUrP5Zaf.m3u8' created_at: '2023-07-15T07:08:26.634Z' updated_at: '2023-07-15T07:08:40.726Z' disabled: false session: id: cf55a850-c3fd-46b5-b5d2-25b3b9aa1686 livestream_id: b60ef3da-fbbb-441b-9168-8235b0035248 err_message: null invoked_time: null started_time: '2023-07-15T07:08:39.000Z' stopped_time: null created_at: '2023-07-15T07:08:40.742Z' updated_at: '2023-07-15T07:08:40.742Z' ingest_seconds: 60 viewer_seconds: 60 security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: pocdfb7efg4av '/livestreams/{livestream_id}': get: tags: - Live streams summary: Fetch livestream details using livestream ID description: Returns details of a livestream with sessions for the given livestream ID. Retreive the livestream ID using the `Start livestreaming a meeting` API. operationId: get-v2-livestream-session-livestream-id parameters: - name: page_no in: query description: The page number from which you want your page search results to be displayed. schema: type: integer - name: per_page in: query description: Number of results per page. schema: type: integer - name: livestream_id in: path required: true schema: type: string responses: '200': description: OK content: application/json: schema: type: object properties: success: type: boolean data: type: object properties: livestream: type: object properties: id: type: string description: ID of the livestream. name: type: string description: Name of the livestream. ingest_server: type: string description: The server URL to which the RTMP encoder sends the video and audio data. stream_key: type: string description: Unique key for accessing each livestream. status: type: string enum: - LIVE - IDLE - ERRORED - INVOKED meeting_id: type: string description: The ID of the meeting. playback_url: type: string description: The web address that viewers can use to watch the livestream. created_at: type: string description: Timestamp the object was created at. The time is returned in ISO format. updated_at: type: string description: Timestamp the object was updated at. The time is returned in ISO format. disabled: type: string description: Specifies if the livestream was disabled. session: type: object properties: id: type: string description: ID of the session. livestream_id: type: string err_message: type: string invoked_time: type: string description: Timestamp the object was invoked. The time is returned in ISO format. format: date-time started_time: type: string description: Timestamp the object was started. The time is returned in ISO format. format: date-time stopped_time: type: string description: Timestamp the object was stopped. The time is returned in ISO format. format: date-time created_at: type: string description: Timestamp the object was created at. The time is returned in ISO format. format: date-time updated_at: type: string description: Timestamp the object was updated at. The time is returned in ISO format. format: date-time ingest_seconds: type: number description: The time duration for which the input was given or the meeting was streamed. viewer_seconds: type: number description: The total view time for which the viewers watched the stream. paging: type: object properties: total_count: type: integer example: 1 start_offset: type: integer example: 1 end_offset: type: integer example: 1 x-examples: null examples: example-1: value: success: true data: livestream: id: b60ef3da-fbbb-441b-9168-8235b0035248 name: null ingest_server: 'rtmps://2ec802dd47b0.global-contribute.live-video.net:443/app/' stream_key: sk_ap-south-1_x3lKBdJa8UDN_3q6PPLMJnqnbnhyrkXrOG504MUsxnZ status: LIVE meeting_id: bbb87945-df1c-49d9-8159-262a7ae6cfde playback_url: 'https://2ec802dd47b0.ap-south-1.playback.live-video.net/api/video/v1/ap-south-1.944908621410.channel.ob5KQUrP5Zaf.m3u8' created_at: '2023-07-15T07:08:26.634Z' updated_at: '2023-07-15T07:08:40.726Z' disabled: false sessions: - id: cf55a850-c3fd-46b5-b5d2-25b3b9aa1686 livestream_id: b60ef3da-fbbb-441b-9168-8235b0035248 err_message: null invoked_time: null started_time: '2023-07-15T07:08:39.000Z' stopped_time: null created_at: '2023-07-15T07:08:40.742Z' updated_at: '2023-07-15T07:08:40.742Z' ingest_seconds: 60 viewer_seconds: 60 paging: total_count: 1 start_offset: 1 end_offset: 1 security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: nv03rzb3s7mfo '/meetings/{meeting_id}/active-session': get: tags: - Active session summary: Fetch details of an active session description: Returns details of an ongoing active session for the given meeting ID. operationId: GetActiveSession parameters: - $ref: '#/components/parameters/meetingId' responses: '200': $ref: '#/components/responses/GetActiveSession' '404': $ref: '#/components/responses/GetActiveSessionNotFound' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: xldpd9v5h2hj1 '/meetings/{meeting_id}/active-session/kick': post: tags: - Active session summary: Kick participants from an active session description: Kicks one or more participants from an active session using user ID or custom participant ID. operationId: KickPartcipants parameters: - $ref: '#/components/parameters/meetingId' requestBody: $ref: '#/components/requestBodies/KickParticipantsBody' responses: '200': $ref: '#/components/responses/KickParticipants' '404': $ref: '#/components/responses/ParticipantNotFound' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: ztb9z9p5k0t78 '/meetings/{meeting_id}/active-session/kick-all': post: tags: - Active session summary: Kick all participants description: Kicks all participants from an active session for the given meeting ID. operationId: KickAllParticipants parameters: - $ref: '#/components/parameters/meetingId' responses: '200': $ref: '#/components/responses/KickAllParticipants' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: 195ksgurovtaq '/meetings/{meeting_id}/active-session/mute': post: tags: - Active session summary: Mute participants of an active session description: Mutes one or more participants from an active session using user ID or custom participant ID. operationId: MuteParticipants parameters: - $ref: '#/components/parameters/meetingId' requestBody: $ref: '#/components/requestBodies/KickParticipantsBody' responses: '200': $ref: '#/components/responses/MuteParticipants' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: r4g81wsxydh7s '/meetings/{meeting_id}/active-session/mute-all': post: tags: - Active session summary: Mute all participants description: Mutes all participants of an active session for the given meeting ID. operationId: MuteAllParticipants parameters: - $ref: '#/components/parameters/meetingId' requestBody: $ref: '#/components/requestBodies/MuteAllParticipantsBody' responses: '200': $ref: '#/components/responses/MuteAllParticipants' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: 8chhunikviwmg '/meetings/{meeting_id}/active-session/poll': post: tags: - Active session summary: Create a poll description: Creates a new poll in an active session for the given meeting ID. operationId: CreatePoll parameters: - $ref: '#/components/parameters/meetingId' requestBody: $ref: '#/components/requestBodies/CreatePollBody' responses: '201': $ref: '#/components/responses/CreatePoll' '400': description: Bad Request security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: rf9x3n3g9ck27 /sessions: get: tags: - Sessions summary: Fetch all sessions of an organization description: Returns details of all sessions of an organization. operationId: GetSessions parameters: - $ref: '#/components/parameters/pageNo' - $ref: '#/components/parameters/perPage' - $ref: '#/components/parameters/sortBy' - $ref: '#/components/parameters/sortOrder' - $ref: '#/components/parameters/startTime' - $ref: '#/components/parameters/endTime' - $ref: '#/components/parameters/participants' - $ref: '#/components/parameters/status' - name: search in: query description: 'Search string that matches sessions based on meeting title, meeting ID, and session ID' schema: type: string - name: associated_id in: query description: ID of the meeting that sessions should be associated with schema: type: string responses: '200': $ref: '#/components/responses/GetSessions' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: bawukvkfcg0dl '/sessions/{session_id}': get: tags: - Sessions summary: Fetch details of a session description: Returns data of the given session ID including recording details. operationId: GetSessionDetails parameters: - name: include_breakout_rooms in: query description: List all breakout rooms schema: type: boolean default: false - name: session_id in: path description: ID of the session required: true schema: type: string responses: '200': $ref: '#/components/responses/GetSessionDetails' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: oixeaf4dcgwrz '/sessions/{session_id}/participants': get: tags: - Sessions summary: Fetch participants list of a session description: Returns a list of participants for the given session ID. operationId: GetSessionParticipants parameters: - $ref: '#/components/parameters/search' - $ref: '#/components/parameters/pageNo' - $ref: '#/components/parameters/perPage' - $ref: '#/components/parameters/sortOrder' - $ref: '#/components/parameters/participantsSortBy' - name: include_peer_events in: query description: 'if true, response includes all the peer events of participants.' schema: type: boolean default: false - name: view in: query description: 'In breakout room sessions, the view parameter can be set to `raw` for session specific duration for participants or `consolidated` to accumulate breakout room durations.' schema: type: string enum: - raw - consolidated default: raw - name: session_id in: path description: ID of the session required: true schema: type: string responses: '200': $ref: '#/components/responses/GetSessionParticipants' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: 4tudy3qmgjwuu '/sessions/{session_id}/participants/{participant_id}': get: tags: - Sessions summary: Fetch details of a participant description: Returns details of the given participant ID along with call statistics for the given session ID. operationId: GetParticipantDetails parameters: - name: filters in: query description: Comma separated list of filters to apply. Note that there must be no spaces between the filters. allowEmptyValue: true schema: type: string enum: - device_info - ip_information - precall_network_information - events - quality_stats example: 'device_info,ip_information,events' - name: include_peer_events in: query description: 'if true, response includes all the peer events of participant.' schema: type: boolean default: false - name: participant_id in: path description: ID of the participant required: true schema: type: string - name: session_id in: path description: ID of the session required: true schema: type: string responses: '200': $ref: '#/components/responses/GetParticipantDetails' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: 2nkgqir8940m0 '/sessions/{session_id}/chat': get: tags: - Sessions summary: Fetch all chat messages of a session description: | Returns a URL to download all chat messages of the session ID in CSV format. > #### NOTE > > This API is in beta and is disabled by default. [Contact us](https://dyte.io/contact) to enable it > for your organization. operationId: GetSessionChat parameters: - name: session_id in: path description: ID of the session required: true schema: type: string responses: '200': $ref: '#/components/responses/GetSessionChat' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: iruxw3iac8w0v '/sessions/{session_id}/transcript': get: tags: - Sessions summary: Fetch the complete transcript for a session description: Returns a URL to download the transcript for the session ID in CSV format. operationId: GetSessionTranscript parameters: - name: session_id in: path description: ID of the session required: true schema: type: string responses: '200': $ref: '#/components/responses/GetSessionTranscript' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: 4oy7qt81hg3oz '/sessions/{session_id}/summary': get: tags: - Sessions summary: Fetch summary of transcripts for a session description: Returns a Summary URL to download the Summary of Transcripts for the session ID as plain text. operationId: GetSessionSummary parameters: - name: session_id in: path required: true schema: type: string responses: '200': $ref: '#/components/responses/GetSessionTranscriptSummary' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: vos29wohs4s77 post: tags: - Sessions summary: Generate summary of Transcripts for the session description: Trigger Summary generation of Transcripts for the session ID. operationId: post-sessions-session_id-summary parameters: - name: session_id in: path required: true schema: type: string responses: 2XX: description: Success content: application/json: schema: type: object properties: success: type: boolean data: type: object properties: success: type: boolean message: type: string x-examples: Example 1: success: true data: success: true message: Success security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: b833yb2kvgtgd /webhooks: get: tags: - Webhooks summary: Fetch all webhooks details description: Returns details of all webhooks for an organization. operationId: getAllWebhooks responses: '200': description: Operation successful content: application/json: schema: $ref: '#/components/schemas/WebhooksListSuccessResponse' '401': description: Invalid credentials content: application/json: examples: default: value: | { message: "Unauthorized" } security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: siayboa6w8l0q post: tags: - Webhooks summary: Add a webhook description: Adds a new webhook to an organization. operationId: addWebhook requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WebhookRequest' responses: '201': description: Webhook registered successfully content: application/json: schema: $ref: '#/components/schemas/WebhookSuccessResponse' '400': description: Error - malformed request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: default: value: | { success: false, error: { code: 400, message: 'BAD_REQUEST: "name" is required' } } '401': description: Invalid credentials content: application/json: examples: default: value: | { message: "Unauthorized" } security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: 7n148lewumfd5 '/webhooks/{webhook_id}': get: tags: - Webhooks summary: Fetch details of a webhook description: Returns webhook details for the given webhook ID. operationId: getWebhook parameters: - name: webhook_id in: path description: ID of the webhook required: true schema: type: string responses: '200': description: Operation successful content: application/json: schema: $ref: '#/components/schemas/WebhookSuccessResponse' '400': description: Error - malformed request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: default: value: | { success: false, error: { code: 400, message: 'BAD_REQUEST: "id" must be a valid GUID' } } '401': description: Invalid credentials content: application/json: examples: default: value: | { message: "Unauthorized" } security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: nelt7q77bex8d put: tags: - Webhooks summary: Replace a webhook description: Replace all details for the given webhook ID. operationId: replaceWebhook parameters: - name: webhook_id in: path description: ID of the webhook required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WebhookRequest' examples: default: value: | { "name": "test", "events": [ "meeting.started" ], "url": "https://new-test-url.com" } responses: '200': description: Operation successful content: application/json: schema: $ref: '#/components/schemas/WebhookSuccessResponse' examples: default: value: | { "success": true, "data": { id: "901e9adf-ebd9-41f0-9098-28171bc04ddd", "name": "test", "events": [ "meeting.started" ], "url": "https://new-test-url.com", "created_at": "2021-09-09T10:25:12.330Z", "updated_at": "2021-09-09T10:25:12.376Z" } } '400': description: Error - malformed request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: default: value: | { "success": false, "error": { "code": 400, "message": "BAD_REQUEST \"id\" must be a valid GUID" } } '401': description: Invalid credentials content: application/json: examples: default: value: | { message: "Unauthorized" } security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: 3rvi0pp2y4nqe patch: tags: - Webhooks summary: Edit a webhook description: Edits the webhook details for the given webhook ID. operationId: editWebhook parameters: - name: webhook_id in: path description: ID of the webhook required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PatchWebhookRequest' examples: default: value: | { "name": "test", "events": [ "meeting.started" ], "url": "https://new-test-url.com" } responses: '200': description: Operation successful content: application/json: schema: $ref: '#/components/schemas/WebhookSuccessResponse' examples: default: value: | { "success": true, "data": { id: "901e9adf-ebd9-41f0-9098-28171bc04ddd", "name": "test", "events": [ "meeting.started" ], "url": "https://new-test-url.com", "created_at": "2021-09-09T10:25:12.330Z", "updated_at": "2021-09-09T10:25:12.376Z" } } '400': description: Error - malformed request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: default: value: | { "success": false, "error": { "code": 400, "message": "BAD_REQUEST \"id\" must be a valid GUID" } } '401': description: Invalid credentials content: application/json: examples: default: value: | { "message": "Unauthorized" } security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: fpw2hfs7c10vh delete: tags: - Webhooks summary: Delete a webhook description: Removes a webhook for the given webhook ID. operationId: deleteWebhook parameters: - name: webhook_id in: path description: ID of the webhook required: true schema: type: string responses: '200': description: Operation successful content: application/json: schema: $ref: '#/components/schemas/WebhookSuccessResponse' '400': description: Error - malformed request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: default: value: | { "success": false, "error": { "code": 400, "message": "BAD_REQUEST \"id\" must be a valid GUID" } } '401': description: Invalid credentials content: application/json: examples: default: value: | { "message": "Unauthorized" } security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: tw95zv89hqy43 /orgs: get: tags: - Organizations summary: Fetch organization details of all users description: Returns organization details of all the users. operationId: getAllOrgs parameters: - name: per_page in: query description: Number of values to return in a single page. Default value is 25. schema: type: integer minimum: 1 - name: page_no in: query description: The page number to return. Default value is 1. schema: type: integer minimum: 1 responses: '200': description: Operation successful content: application/json: schema: $ref: '#/components/schemas/OrganizationListSuccessResponse' '400': description: Malformed request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized user content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' security: - OrgBearer: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: a5idlmqypu93c post: tags: - Organizations summary: Create an organization description: Creates an organization. The authenticated user becomes the owner of the organization. operationId: createOrg requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OrganizationRequest' responses: '201': description: Operation successful content: application/json: schema: $ref: '#/components/schemas/OrganizationSuccessResponse' '400': description: Malformed request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized user content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '409': description: Organization with the provided name already exists content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' security: - OrgBearer: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: vrlefbpje6s7h '/orgs/{org_id}': get: tags: - Organizations summary: Fetch details of an organization description: Returns organization details for the given organization ID. The user must be the organization's owner. operationId: getOrg parameters: - name: org_id in: path description: ID of the organization required: true schema: type: string responses: '200': description: Operation successful content: application/json: schema: $ref: '#/components/schemas/OrganizationSuccessResponse' '400': description: Malformed request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: User is not authorized to perform this operation. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' security: - OrgBearer: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: wa5zqayea198b patch: tags: - Organizations summary: Edit details of an organization description: Edits organization details for the given organization ID. The user must be the organization's owner. operationId: editOrg parameters: - name: org_id in: path description: ID of the organization required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PatchOrganizationRequest' responses: '200': description: Operation successful content: application/json: schema: $ref: '#/components/schemas/OrganizationSuccessResponse' '400': description: Malformed request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized user content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' security: - OrgBearer: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: hjnb38tlvob22 /meetings: get: tags: - Meetings summary: Fetch all meetings for an organization description: Returns all meetings for the given organization ID. operationId: get_all_meetings parameters: - $ref: '#/components/parameters/pageNo' - $ref: '#/components/parameters/perPage' - $ref: '#/components/parameters/startTime' - $ref: '#/components/parameters/endTime' - $ref: '#/components/parameters/search' responses: '200': $ref: '#/components/responses/GetAllMeetings' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: kj9pdaxo6u0ga post: tags: - Meetings summary: Create a meeting description: Create a meeting for the given organization ID. operationId: create_meeting requestBody: $ref: '#/components/requestBodies/CreateMeetingBody' responses: '201': $ref: '#/components/responses/GetMeeting' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: 6osgak2u7k84r '/meetings/{meeting_id}': get: tags: - Meetings summary: Fetch a meeting for an organization description: Returns a meeting details in an organization for the given meeting ID. operationId: get_meeting parameters: - name: name in: query schema: type: string - name: meeting_id in: path description: ID of the meeting. Fetch the meeting ID using the create a meeting API. required: true schema: type: string format: uuid responses: '200': $ref: '#/components/responses/GetMeeting' '500': $ref: '#/components/responses/GenericError' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: wldf2ss668vdn patch: tags: - Meetings summary: Update a meeting description: Updates a meeting in an organization for the given meeting ID. operationId: update_meeting parameters: - name: meeting_id in: path description: ID of the meeting. Fetch the meeting ID using the create a meeting API. required: true schema: type: string format: uuid requestBody: $ref: '#/components/requestBodies/UpdateMeetingBody' responses: '200': $ref: '#/components/responses/GetMeeting' '500': $ref: '#/components/responses/GenericError' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: qjtvimlaco8la put: tags: - Meetings summary: Replace a meeting description: Replaces all the details for the given meeting ID. operationId: replace_meeting parameters: - name: meeting_id in: path description: ID of the meeting. Fetch the meeting ID using the create a meeting API. required: true schema: type: string format: uuid requestBody: $ref: '#/components/requestBodies/CreateMeetingBody' responses: '200': $ref: '#/components/responses/GetMeeting' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: aa27dj5cjb4zi '/meetings/{meeting_id}/participants': get: tags: - Meetings summary: Fetch all participants of a meeting description: Returns all participants detail for the given meeting ID. operationId: get_meeting_participants parameters: - $ref: '#/components/parameters/pageNo' - $ref: '#/components/parameters/perPage' - name: meeting_id in: path description: ID of the meeting. Fetch the meeting ID using the create a meeting API. required: true schema: type: string format: uuid responses: '200': $ref: '#/components/responses/GetAllParticipants' '500': $ref: '#/components/responses/GenericError' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: 3w2004i972ck2 post: tags: - Meetings summary: Add a participant description: Adds a participant to the given meeting ID. operationId: add_participant parameters: - name: meeting_id in: path description: ID of the meeting. Fetch the meeting ID using the create a meeting API. required: true schema: type: string format: uuid requestBody: $ref: '#/components/requestBodies/AddParticipantBody' responses: '201': $ref: '#/components/responses/AddParticipant' '500': $ref: '#/components/responses/GenericError' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: lvx4w6yrk9sdw '/meetings/{meeting_id}/participants/{participant_id}': get: tags: - Meetings summary: Fetch a participant's detail description: Returns a participant details for the given meeting and participant ID. operationId: get_meeting_participant parameters: - name: meeting_id in: path description: ID of the meeting. You can fetch the meeting ID using the create a meeting API. required: true schema: type: string format: uuid - name: participant_id in: path description: ID of the participant. You can fetch the participant ID using the add a participant API. required: true schema: type: string responses: '200': $ref: '#/components/responses/GetParticipant' '500': $ref: '#/components/responses/GenericError' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: eo1dy3yjyl4tq patch: tags: - Meetings summary: Edit a participant's detail description: Updates a participant's details for the given meeting and participant ID. operationId: edit_participant parameters: - name: meeting_id in: path description: ID of the meeting. You can fetch the meeting ID using the create a meeting API. required: true schema: type: string format: uuid - name: participant_id in: path description: ID of the participant. You can fetch the participant ID using the add a participant API. required: true schema: type: string requestBody: $ref: '#/components/requestBodies/EditParticipantBody' responses: '200': $ref: '#/components/responses/AddParticipant' '500': $ref: '#/components/responses/GenericError' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: exnh47kiu3xay delete: tags: - Meetings summary: Delete a participant description: Deletes a participant for the given meeting and participant ID. operationId: delete_meeting_participant parameters: - name: meeting_id in: path description: ID of the meeting. You can fetch the meeting ID using the create a meeting API. required: true schema: type: string format: uuid - name: participant_id in: path description: ID of the participant. You can fetch the participant ID using the add a participant API. required: true schema: type: string responses: '200': $ref: '#/components/responses/DeleteParticipant' '500': $ref: '#/components/responses/GenericError' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: 2tstmoy1pxd4y '/meetings/{meeting_id}/participants/{participant_id}/token': post: tags: - Meetings summary: Refresh participant's authentication token description: Regenerates participant's authentication token for the given meeting and participant ID. operationId: regenerate_token parameters: - name: meeting_id in: path description: ID of the meeting. You can fetch the meeting ID using the create a meeting API. required: true schema: type: string format: uuid - name: participant_id in: path description: ID of the participant. You can fetch the participant ID using the add a participant API. required: true schema: type: string responses: '200': $ref: '#/components/responses/RegenToken' '500': $ref: '#/components/responses/GenericError' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: xg9ircet51uql /recordings: get: tags: - Recordings summary: Fetch all recordings for an organization description: 'Returns all recordings for an organization. If the `meeting_id` parameter is passed, returns all recordings for the given meeting ID.' operationId: get_all_recordings parameters: - name: meeting_id in: query description: ID of a meeting. Optional. Will limit results to only this meeting if passed. required: false schema: type: string format: uuid - $ref: '#/components/parameters/pageNo' - $ref: '#/components/parameters/perPage' - name: expired in: query description: 'If passed, only shows expired/non-expired recordings on Dyte''s bucket' required: false schema: type: boolean - $ref: '#/components/parameters/search' - $ref: '#/components/parameters/recordingSortBy' - $ref: '#/components/parameters/sortOrder' - $ref: '#/components/parameters/startTime' - $ref: '#/components/parameters/endTime' - $ref: '#/components/parameters/recordingStatus' responses: '200': $ref: '#/components/responses/GetRecordings' '201': description: Created security: - Authorization: [] - Bearer: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: bwaxkfumr11kr post: tags: - Recordings summary: Start recording a meeting description: 'Starts recording a meeting. The meeting can be started by an organization admin directly, or a participant with permissions to start a recording, based on the type of authorization used.' operationId: start_recording requestBody: $ref: '#/components/requestBodies/StartRecording' responses: '200': $ref: '#/components/responses/GetRecording' security: - Authorization: [] - Bearer: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: 8u6zagpc9f5cj '/recordings/active-recording/{meeting_id}': get: tags: - Recordings summary: Fetch active recording description: Returns the active recording details for the given meeting ID. operationId: get_active_recording parameters: - name: meeting_id in: path description: ID of the meeting required: true schema: type: string responses: '200': $ref: '#/components/responses/GetActiveRecording' '404': $ref: '#/components/responses/GenericError' security: - Authorization: [] - Bearer: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: w9orxmedpx65c '/recordings/{recording_id}': get: tags: - Recordings summary: Fetch details of a recording description: Returns details of a recording for the given recording ID. operationId: get_one_recording parameters: - name: recording_id in: path description: ID of the recording required: true schema: type: string responses: '200': $ref: '#/components/responses/GetRecording' security: - Authorization: [] - Bearer: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: um0x64efuch8i put: tags: - Recordings summary: Pause/Resume/Stop recording description: Pause/Resume/Stop a given recording ID. operationId: pause_resume_stop_recording parameters: - name: recording_id in: path description: ID of the recording required: true schema: type: string requestBody: description: '' content: application/json: schema: type: object properties: action: type: string enum: - stop - pause - resume required: - action responses: '200': $ref: '#/components/responses/GetRecording' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: obt2uzuny52fl /presets: get: tags: - Presets summary: Fetch all presets description: Fetches all the presets belonging to an organization. operationId: get-presets parameters: - $ref: '#/components/parameters/perPage' - $ref: '#/components/parameters/pageNo' responses: '200': $ref: '#/components/responses/GetAllPresets' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: nfegdw1qgh9yn post: tags: - Presets summary: Create a preset description: Creates a preset belonging to the current organization operationId: post-presets requestBody: $ref: '#/components/requestBodies/CreatePresetBody' responses: '200': $ref: '#/components/responses/GetPresetBody' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: h6rzzzmfsf6mc '/presets/{preset_id}': get: tags: - Presets summary: Fetch details of a preset description: Fetches details of a preset using the provided preset ID operationId: get-presets-preset_id parameters: - name: preset_id in: path description: ID of the preset to fetch required: true schema: type: string responses: '200': $ref: '#/components/responses/GetPresetBody' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: nqu3p2czfzrsf delete: tags: - Presets summary: Delete a preset description: Deletes a preset using the provided preset ID operationId: delete-presets-preset_id parameters: - name: preset_id in: path description: ID of the preset to fetch required: true schema: type: string responses: '200': $ref: '#/components/responses/GetPresetBody' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: iv681z39c79cw patch: tags: - Presets summary: Update a preset description: Update a preset by the provided preset ID operationId: patch-presets-preset_id parameters: - name: preset_id in: path description: ID of the preset to fetch required: true schema: type: string requestBody: $ref: '#/components/requestBodies/UpdatePresetBody' responses: '200': $ref: '#/components/responses/GetPresetBody' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: omgnej5ghq10b '/sessions/peer-report/{peer_id}': get: tags: - Sessions summary: Fetch details of peer description: Returns details of the given peer ID along with call statistics for the given session ID. operationId: GetParticipantDataFromPeerId parameters: - name: filters in: query description: Comma separated list of filters to apply. Note that there must be no spaces between the filters. schema: type: string enum: - device_info - ip_information - precall_network_information - events - quality_stats - name: peer_id in: path description: ID of the peer required: true schema: type: string responses: '200': $ref: '#/components/responses/GetParticipantDataFromPeerId' security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: wppv219g0sb3m /recordings/track: post: tags: - Recordings summary: '' description: |- > #### NOTE > > This API is in beta. [Contact us](https://dyte.io/contact) if you face > any issues. Starts a track recording in a meeting. Track recordings consist of "layers". Layers are used to map audio/video tracks in a meeting to output destinations. More information about track recordings is available in the [Track Recordings Guide Page](https://docs.dyte.io/guides/capabilities/recording/recording-overview). operationId: Start Track Recording for a Meeting requestBody: $ref: '#/components/requestBodies/StartTrackRecordingBody' responses: '200': description: OK security: - Authorization: [] servers: - url: 'https://api.dyte.io/v2' description: '' x-stoplight: id: tm8rfp8vuyopg tags: - name: Meetings - name: Presets - name: Sessions - name: Recordings - name: Webhooks - name: Active session - name: Live streams - name: Analytics - name: Organizations - name: Chat externalDocs: url: 'https://docs.dyte.io' components: parameters: pageNo: name: page_no in: query description: The page number from which you want your page search results to be displayed. required: false allowEmptyValue: true schema: type: number minimum: 0 perPage: name: per_page in: query description: Number of results per page required: false allowEmptyValue: true schema: type: number minimum: 0 search: name: search in: query description: The search query string. You can search using the meeting ID or title. required: false schema: type: string sortBy: name: sort_by in: query required: false schema: type: string enum: - minutesConsumed - createdAt sortOrder: name: sort_order in: query required: false schema: type: string enum: - ASC - DESC startTime: name: start_time in: query description: The start time range for which you want to retrieve the meetings. The time must be specified in ISO format. required: false schema: type: string format: date-time endTime: name: end_time in: query description: The end time range for which you want to retrieve the meetings. The time must be specified in ISO format. required: false schema: type: string format: date-time participants: name: participants in: query required: false schema: type: string example: '1:10' examples: default: value: '1:10' status: name: status in: query required: false schema: type: string enum: - LIVE - ENDED recordingStatus: name: status in: query description: Filter by one or more recording status required: false explode: false schema: type: array items: type: string enum: - INVOKED - RECORDING - UPLOADING - UPLOADED recordingSortBy: name: sort_by in: query required: false schema: type: string enum: - invokedTime participantsSortBy: name: sort_by in: query schema: type: string enum: - joinedAt - duration startDate: name: start_date in: query description: start date in YYYY-MM-DD format schema: type: string example: '2022-09-01' examples: default: value: '2022-09-01' endDate: name: end_date in: query description: end date in YYYY-MM-DD format schema: type: string example: '2022-09-22' examples: default: value: '2022-09-22' streamId: name: stream_id in: path description: ID of the livestream required: true style: simple schema: type: number meetingId: name: meeting_id in: path description: ID of the meeting required: true schema: type: string sessionId: name: session_id in: path description: ID of the session required: true schema: type: string participantId: name: participant_id in: path description: ID of the participant required: true schema: type: string requestBodies: KickParticipantsBody: description: Request body for kicking participants from an active session. Only one of `participant_id` or `custom_participant_id` is required. content: application/json: schema: type: object properties: participant_ids: type: array items: type: string custom_participant_ids: type: array items: type: string MuteAllParticipantsBody: description: Request body for muting all participants in an active session. content: application/json: schema: type: object properties: allow_unmute: type: boolean description: 'if false, participants won''t be able to unmute themselves after they are muted' CreatePollBody: description: Request body for creating a new poll content: application/json: schema: type: object properties: question: type: string description: Question of the poll options: type: array description: Different options for the question items: type: string anonymous: type: boolean description: if voters on a poll are anonymous hide_votes: type: boolean description: if votes on an option are visible before a person votes CreateMeetingBody: description: Create meeting body content: application/json: schema: type: object properties: title: type: string nullable: true description: Title of the meeting preferred_region: type: string nullable: true enum: - ap-south-1 - ap-southeast-1 - us-east-1 - eu-central-1 - null description: The region in which this meeting should be created. record_on_start: type: boolean nullable: true description: Specifies if the meeting should start getting recorded as soon as someone joins the meeting. default: false live_stream_on_start: type: boolean nullable: true description: Specifies if the meeting should start getting livestreamed on start. default: false recording_config: $ref: '#/components/schemas/RecordingConfig' ai_config: $ref: '#/components/schemas/AIConfig' persist_chat: type: boolean description: 'If a meeting is set to persist_chat, meeting chat would remain for a week within the meeting space.' default: false summarize_on_end: type: boolean description: 'Automatically generate summary of meetings using transcripts. Requires Transcriptions to be enabled, and can be retrieved via Webhooks or summary API.' default: false UpdateMeetingBody: description: Create meeting body content: application/json: schema: type: object properties: title: type: string description: Title of the meeting preferred_region: type: string enum: - ap-south-1 - ap-southeast-1 - us-east-1 - eu-central-1 description: The region in which this meeting should be created. record_on_start: type: boolean description: Specifies if the meeting should start getting recorded as soon as someone joins the meeting. default: false live_stream_on_start: type: boolean description: Specifies if the meeting should start getting livestreamed on start. default: false status: type: string enum: - ACTIVE - INACTIVE description: Whether the meeting is `ACTIVE` or `INACTIVE`. Users will not be able to join an `INACTIVE` meeting. example: INACTIVE persist_chat: type: boolean description: 'If a meeting is updated to persist_chat, meeting chat would remain for a week within the meeting space.' default: false summarize_on_end: type: boolean description: 'Automatically generate summary of meetings using transcripts. Requires Transcriptions to be enabled, and can be retrieved via Webhooks or summary API.' default: false ai_config: $ref: '#/components/schemas/AIConfig' AddParticipantBody: content: application/json: schema: type: object required: - preset_name - custom_participant_id properties: name: type: string description: '(Optional) Name of the participant. ' example: Mary Sue nullable: true picture: type: string description: '(Optional) A URL to a picture to be used for the participant. ' format: uri example: 'https://i.imgur.com/test.jpg' nullable: true preset_name: type: string description: Name of the preset to apply to this participant. default: group_call_host custom_participant_id: type: string description: 'A unique participant ID. You must specify a unique ID for the participant, for example, UUID, email address, and so on. ' EditParticipantBody: content: application/json: schema: type: object properties: name: type: string nullable: true description: (Optional) Name of the participant. example: Jane Doe picture: type: string nullable: true description: (Optional) A URL to a picture to be used for the participant. format: uri preset_name: type: string nullable: true description: (Optional) Name of the preset to apply to this participant. StartRecording: content: application/json: schema: type: object properties: meeting_id: type: string description: ID of the meeting to record. format: uuid max_seconds: type: integer description: 'Specifies the maximum duration for recording in seconds, ranging from a minimum of 60 seconds to a maximum of 24 hours.' minimum: 60 maximum: 86400 storage_config: $ref: '#/components/schemas/StorageConfig' video_config: $ref: '#/components/schemas/VideoConfig' audio_config: $ref: '#/components/schemas/AudioConfig' rtmp_out_config: $ref: '#/components/schemas/LivestreamingConfig' file_name_prefix: type: string description: Update the recording file name. url: type: string description: Pass a custom url to record arbitary screen format: uri dyte_bucket_config: $ref: '#/components/schemas/DyteBucketConfig' interactive_config: $ref: '#/components/schemas/InteractiveConfig' allow_multiple_recordings: type: boolean description: 'By default, a meeting allows only one recording to run at a time. Enabling the `allow_multiple_recordings` parameter to true allows you to initiate multiple recordings concurrently in the same meeting. This allows you to record separate videos of the same meeting with different configurations, such as portrait mode or landscape mode.' default: false required: - meeting_id examples: Example 1: value: meeting_id: 97440c6a-140b-40a9-9499-b23fd7a3868a max_seconds: 60 storage_config: type: aws secret: string bucket: string region: us-east-1 path: string auth_method: KEY username: string password: string host: string port: 0 private_key: string video_config: codec: H264 width: 1280 height: 720 watermark: url: 'http://example.com' size: width: 1 height: 1 position: left top export_file: true audio_config: codec: AAC channel: stereo export_file: true file_name_prefix: string dyte_bucket_config: enabled: true interactive_config: type: ID3 allow_multiple_recordings: false CreatePresetBody: content: application/json: schema: $ref: '#/components/schemas/Preset' UpdatePresetBody: content: application/json: schema: $ref: '#/components/schemas/UpdatePreset' StartTrackRecordingBody: description: For now only "default" layer key is supported. content: application/json: schema: type: object properties: meeting_id: type: string description: ID of the meeting to record. layers: type: object additionalProperties: $ref: '#/components/schemas/TrackConfigLayer' max_seconds: type: string description: Maximum seconds this recording should be active for (beta) required: - layers examples: Example 1: value: meeting_id: string layers: default: file_name_prefix: string outputs: - type: DYTE_BUCKET - type: STORAGE_CONFIG storage_config: type: aws secret: string bucket: string region: us-east-1 path: string auth_method: KEY username: string password: string host: string port: 0 private_key: string max_seconds: string securitySchemes: Authorization: type: http scheme: basic Bearer: type: http description: Provide bearer token for a participant who has permissions for recording. Note that this is only useful for the `/recordings` routes. scheme: bearer OrgBearer: type: http description: Provide auth token obtained from Dyte CLI scheme: bearer responses: GetActiveSession: description: Active Session Success response content: application/json: schema: type: object properties: success: type: boolean data: $ref: '#/components/schemas/ActiveSession' examples: activeSessionSuccess: $ref: '#/components/examples/GetActiveSessionSuccessResponse' GetActiveSessionNotFound: description: Active Session is not found for the given meetingId content: application/json: schema: $ref: '#/components/schemas/GenericErrorResponse' examples: activeSessionNotFound: $ref: '#/components/examples/GetActiveSessionNotFoundResponse' KickParticipants: description: Kick participants success response content: application/json: schema: type: object properties: success: type: boolean data: type: object properties: action: type: string participants: type: array items: $ref: '#/components/schemas/SessionParticipant' ParticipantNotFound: description: No participant found for the given `participant_id` or `custom_participant_id` content: application/json: schema: $ref: '#/components/schemas/GenericErrorResponse' examples: participantNotFound: $ref: '#/components/examples/ParticipantNotFoundResponse' KickAllParticipants: description: Kick all participants from a meeting content: application/json: schema: type: object properties: success: type: boolean data: type: object properties: action: type: string kicked_participants_count: type: number MuteParticipants: description: Mute one or more participants of a meeting content: application/json: schema: type: object properties: success: type: boolean data: type: object properties: action: type: string participants: type: array items: $ref: '#/components/schemas/SessionParticipant' MuteAllParticipants: description: Mute all participants of a meeting content: application/json: schema: type: object properties: success: type: boolean data: type: object properties: action: type: string muted_participants_count: type: number CreatePoll: description: response for creating a poll content: application/json: schema: type: object properties: success: type: boolean data: type: object properties: action: type: string poll: $ref: '#/components/schemas/Poll' GetSessions: description: Get all sessions success response content: application/json: schema: type: object properties: success: type: boolean data: type: object properties: sessions: type: array items: $ref: '#/components/schemas/ActiveSession' GetSessionDetails: description: Get details about a particular session content: application/json: schema: type: object properties: success: type: boolean data: type: object properties: session: $ref: '#/components/schemas/ActiveSession' GetSessionParticipants: description: Get participants list of a particular session content: application/json: schema: type: object properties: success: type: boolean data: type: object properties: participants: type: array items: $ref: '#/components/schemas/ParticipantsList' examples: ParticipantListSuccess: $ref: '#/components/examples/ParticipantListSuccess' ParticipantListWithPeerStatsSuccess: $ref: '#/components/examples/ParticipantListWithPeerEventSucces' GetParticipantDetails: description: Returns details of a participant along with callstats data. content: application/json: schema: type: object properties: success: type: boolean data: type: object properties: participant: allOf: - $ref: '#/components/schemas/ParticipantsList' - $ref: '#/components/schemas/ParticipantPeerStats' - $ref: '#/components/schemas/ParticipantQualityStats' GetSessionChat: description: Returns all chat messages of a session. content: application/json: schema: type: object properties: success: type: boolean data: $ref: '#/components/schemas/ChatMessage' GetSessionTranscript: description: Returns the complete transcript of a session. content: application/json: schema: type: object properties: success: type: boolean data: $ref: '#/components/schemas/Transcript' GetOverallStats: description: Returns complete analytics of an organization content: application/json: schema: type: object properties: success: type: boolean data: $ref: '#/components/schemas/OverallStats' examples: OverallStatsSuccess: $ref: '#/components/examples/OverallStatsSuccessResponse' GetDaywiseStats: description: Returns daywise analytics of an organization content: application/json: schema: type: object properties: succes: type: boolean data: type: array items: $ref: '#/components/schemas/DaywiseStats' examples: DaywiseStatsSuccess: $ref: '#/components/examples/DaywiseStatsSuccessResponse' GetMeeting: description: Success Response content: application/json: schema: allOf: - $ref: '#/components/schemas/GenericSuccessResponse' - type: object allOf: - type: object properties: data: $ref: '#/components/schemas/Meeting' - type: object properties: data: type: object properties: recording_config: $ref: '#/components/schemas/RecordingConfig' - type: object properties: data: type: object properties: ai_config: $ref: '#/components/schemas/AIConfig' - type: object GetAllMeetings: description: Success response content: application/json: schema: allOf: - $ref: '#/components/schemas/PagingResponse' - type: object properties: data: type: array items: $ref: '#/components/schemas/Meeting' GenericError: description: Failure response content: application/json: schema: $ref: '#/components/schemas/GenericErrorResponse' GetAllParticipants: description: Success response content: application/json: schema: allOf: - $ref: '#/components/schemas/PagingResponse' - type: object properties: data: type: array items: $ref: '#/components/schemas/Participant' AddParticipant: description: Success response content: application/json: schema: allOf: - $ref: '#/components/schemas/GenericSuccessResponse' - type: object properties: data: allOf: - $ref: '#/components/schemas/Participant' - type: object properties: token: type: string description: The participant's auth token that can be used for joining a meeting from the client side. required: - token GetParticipant: description: Success response content: application/json: schema: allOf: - $ref: '#/components/schemas/GenericSuccessResponse' - type: object properties: data: $ref: '#/components/schemas/Participant' required: - data DeleteParticipant: description: Success response content: application/json: schema: allOf: - $ref: '#/components/schemas/GenericSuccessResponse' - type: object properties: data: type: object properties: custom_participant_id: type: string description: A unique participant ID generated by the client. preset_id: type: string description: ID of the preset applied to this participant. format: uuid created_at: type: string description: Timestamp this object was created at. The time is returned in ISO format. format: date-time updated_at: type: string description: Timestamp this object was updated at. The time is returned in ISO format. format: date-time required: - custom_participant_id - preset_id - created_at - updated_at RegenToken: description: Example response content: application/json: schema: allOf: - $ref: '#/components/schemas/GenericSuccessResponse' - type: object properties: data: type: object properties: token: type: string description: Regenerated participant's authentication token. required: - token required: - data GetRecordings: description: Success response content: application/json: schema: allOf: - $ref: '#/components/schemas/PagingResponse' - type: object properties: data: type: array items: allOf: - $ref: '#/components/schemas/Recording' - type: object properties: storage_config: $ref: '#/components/schemas/StorageConfig' - type: object properties: meeting: $ref: '#/components/schemas/Meeting' GetRecording: description: Success response content: application/json: schema: allOf: - $ref: '#/components/schemas/GenericSuccessResponse' - type: object properties: data: allOf: - $ref: '#/components/schemas/Recording' - type: object properties: storage_config: $ref: '#/components/schemas/StorageConfig' start_reason: $ref: '#/components/schemas/startReason' stop_reason: $ref: '#/components/schemas/stopReason' GetActiveRecording: description: Success response content: application/json: schema: allOf: - $ref: '#/components/schemas/GenericSuccessResponse' - type: object properties: data: $ref: '#/components/schemas/Recording' required: - data GetAllPresets: description: Example response content: application/json: schema: allOf: - $ref: '#/components/schemas/PagingResponse' - type: object properties: data: type: array items: $ref: '#/components/schemas/PresetListItem' GetPresetBody: description: Success response content: application/json: schema: allOf: - $ref: '#/components/schemas/GenericSuccessResponse' - type: object properties: data: allOf: - type: object properties: id: type: string description: ID of the preset format: uuid required: - id - $ref: '#/components/schemas/Preset' required: - data GetParticipantDataFromPeerId: description: Returns details of a participant (using peer id) along with callstats data. content: application/json: schema: type: object properties: success: type: boolean data: type: object properties: participant: type: object properties: id: type: string user_id: type: string custom_participant_id: type: string display_name: type: string role: type: string joined_at: type: string left_at: type: string duration: type: number created_at: type: string updated_at: type: string peer_stats: type: object properties: events: type: array items: type: object properties: type: type: string timestamp: type: string metadata: type: object properties: connection_info: type: object properties: ip_details: type: object properties: city: type: string country: type: string region: type: string loc: type: string timezone: type: string ip: type: string postal: type: string asn: type: object properties: asn: type: string effective_network_type: type: string location: type: object properties: coords: type: object properties: latitude: type: number longitude: type: number turn_connectivity: type: boolean connectivity: type: object properties: host: type: boolean relay: type: boolean reflexive: type: boolean throughput: type: integer fractional_loss: type: integer r_t_t: type: number jitter: type: integer backend_r_t_t: type: number device_info: type: object properties: browser: type: string browser_version: type: string cpus: type: integer engine: type: string is_mobile: type: boolean os: type: string os_version: type: string sdk_name: type: string sdk_version: type: string user_agent: type: string webgl_support: type: string ip_information: type: object properties: city: type: string country: type: string timezone: type: string region: type: string asn: type: object properties: asn: type: string ipv4: type: string ip_location: type: string org: type: string precall_network_information: type: object properties: backend_rtt: type: number effective_networktype: type: string fractional_loss: type: integer jitter: type: integer reflexive_connectivity: type: boolean relay_connectivity: type: boolean rtt: type: number throughput: type: integer turn_connectivity: type: boolean quality_stats: type: object properties: audio_stats: type: array items: type: object video_stats: type: array items: type: object peer_ids: type: array items: type: string start: type: string nullable: true end: type: string nullable: true total_audio_packets: type: integer total_audio_packets_lost: type: integer total_video_packets: type: integer total_video_packets_lost: type: integer first_audio_packet_received: type: string first_video_packet_received: type: string last_audio_packet_received: type: string last_video_packet_received: type: string average_quality: type: integer audio_bandwidth: type: integer video_bandwidth: type: integer peer_report: type: object properties: metadata: type: object properties: events: type: array items: type: object properties: name: type: string timestamp: type: string pc_metadata: type: array items: type: object properties: effective_network_type: type: string reflexive_connectivity: type: boolean relay_connectivity: type: boolean turn_connectivity: type: boolean timestamp: type: string audio_devices_updates: type: array items: type: object video_devices_updates: type: array items: type: object speaker_devices_updates: type: array items: type: object selected_device_updates: type: array items: type: object candidate_pairs: type: object properties: producing_transport: type: array items: type: object properties: nominated: type: boolean current_round_trip_time: type: number total_round_trip_time: type: number bytes_received: type: integer bytes_sent: type: integer available_outgoing_bitrate: type: integer last_packet_received_timestamp: type: integer last_packet_sent_timestamp: type: integer local_candidate_id: type: string remote_candidate_id: type: string bytes_discarded_on_send: type: integer packets_sent: type: integer packets_received: type: integer packets_discarded_on_send: type: integer local_candidate_type: type: string local_candidate_address: type: string local_candidate_port: type: integer local_candidate_protocol: type: string local_candidate_network_type: type: string local_candidate_related_address: type: string local_candidate_related_port: type: integer remote_candidate_type: type: string remote_candidate_address: type: string remote_candidate_port: type: integer remote_candidate_protocol: type: string consuming_transport: type: array items: type: object device_info: type: object properties: cpus: type: integer is_mobile: type: boolean os: type: string os_version: type: string browser_metadata: type: object properties: browser: type: string browser_version: type: string engine: type: string user_agent: type: string webgl_support: type: string sdk_name: type: string sdk_version: type: string room_view_type: type: string ip_information: type: object properties: city: type: string country: type: string timezone: type: string region: type: string asn: type: object properties: asn: type: string ipv4: type: string quality: type: object properties: video_consumer: type: array items: type: object audio_consumer: type: array items: type: object screenshare_video_consumer: type: array items: type: object screenshare_audio_consumer: type: array items: type: object video_producer: type: array items: type: object audio_producer: type: array items: type: object properties: mos_quality: type: integer timestamp: type: string packets_lost: type: integer jitter: type: integer rtt: type: number packets_sent: type: integer bytes_sent: type: integer producer_id: type: string ssrc: type: integer mid: type: string screenshare_video_producer: type: array items: type: object screenshare_audio_producer: type: array items: type: object video_consumer_cumulative: type: object audio_consumer_cumulative: type: object screenshare_video_consumer_cumulative: type: object screenshare_audio_consumer_cumulative: type: object video_producer_cumulative: type: object screenshare_video_producer_cumulative: type: object audio_producer_cumulative: type: object properties: quality_mos: type: object properties: avg: type: integer p50: type: integer p75: type: integer p90: type: integer packet_loss: type: object properties: avg: type: integer 50_or_greater_event_fraction: type: integer 25_or_greater_event_fraction: type: integer 10_or_greater_event_fraction: type: integer 5_or_greater_event_fraction: type: integer rtt: type: object properties: avg: type: number 500ms_or_greater_event_fraction: type: number 250ms_or_greater_event_fraction: type: number 100ms_or_greater_event_fraction: type: number screenshare_audio_producer_cumulative: type: object x-examples: Example 1: success: true data: participant: id: bd45f5a3-44d0-4d48-a9e5-b880b39d9e1c user_id: aaad2360-4bf6-451d-b89a-98617f2bc549 custom_participant_id: 0.svveiltvjko display_name: sush role: group_call_participant joined_at: '2023-12-14T13:35:36.332Z' left_at: '2023-12-14T13:36:42.872Z' duration: 1.109 created_at: '2023-12-14T13:35:36.346Z' updated_at: '2023-12-14T13:36:42.907Z' peer_stats: events: - type: precall_begin timestamp: '2023-12-14T13:35:33.288Z' - type: video_off timestamp: '2023-12-14T13:35:35.182Z' - type: audio_off timestamp: '2023-12-14T13:35:35.558Z' - type: call_join metadata: peer_meta_data: user_id: aaad2360-4bf6-451d-b89a-98617f2bc549 peer_id: bd45f5a3-44d0-4d48-a9e5-b880b39d9e1c display_name: sush room_u_u_i_d: 8b25af6b-14f4-4c50-948a-ad1ca48d4ad8 room_view_type: groupCall room_name: bbbf5e93-289c-4c9b-bd44-d677a9206df7 device_info: is_mobile: false browser_name: Chrome os_name: macOS browser_version: 119.0.0.0 os_version_name: 10.15.7 engine_name: Blink user_agent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36' memory: 8 cpus: 8 sdk_name: web-core sdk_version: 1.21.1-staging.3 meta_data: {} permissions: {} meeting_env: devel timestamp: '2023-12-14T13:35:36.552Z' - type: audio_off timestamp: '2023-12-14T13:35:36.553Z' - type: video_off timestamp: '2023-12-14T13:35:36.553Z' - type: tab_change metadata: is_meetings_tab_active: false timestamp: '2023-12-14T13:35:38.593Z' - type: browser_backgrounded timestamp: '2023-12-14T13:35:38.593Z' - type: precall_end metadata: connection_info: ip_details: city: Nashik country: IN region: Maharashtra loc: '20.00240,73.79450' timezone: Asia/Kolkata ip: 103.183.81.21 postal: '422003' asn: asn: AS135248 effective_network_type: 4g location: coords: latitude: 20.0024 longitude: 73.7945 turn_connectivity: true connectivity: host: true relay: true reflexive: false throughput: 7931 fractional_loss: 0 r_t_t: 0.03 jitter: 0 backend_r_t_t: 0.031 timestamp: '2023-12-14T13:35:41.144Z' device_info: browser: Chrome browser_version: 119.0.0.0 cpus: 8 engine: Blink is_mobile: false os: macOS os_version: 10.15.7 sdk_name: web-core sdk_version: 1.21.1-staging.3 user_agent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36' webgl_support: null ip_information: city: Nashik country: IN timezone: Asia/Kolkata region: Maharashtra asn: asn: AS135248 ipv4: 103.183.81.21 ip_location: 103.183.81.21 org: 103.183.81.21 precall_network_information: backend_rtt: 0.031 effective_networktype: 4g fractional_loss: 0 jitter: 0 reflexive_connectivity: false relay_connectivity: true rtt: 0.03 throughput: 7931 turn_connectivity: true quality_stats: audio_stats: [] video_stats: [] peer_ids: - bd45f5a3-44d0-4d48-a9e5-b880b39d9e1c start: null end: null total_audio_packets: 0 total_audio_packets_lost: 0 total_video_packets: 0 total_video_packets_lost: 0 first_audio_packet_received: null first_video_packet_received: null last_audio_packet_received: null last_video_packet_received: null average_quality: 0 audio_bandwidth: 0 video_bandwidth: 0 peer_report: metadata: events: - name: precall_begin timestamp: '2023-12-14T13:35:33.288Z' - name: video_off timestamp: '2023-12-14T13:35:35.182Z' - name: audio_off timestamp: '2023-12-14T13:35:35.558Z' - name: audio_off timestamp: '2023-12-14T13:35:36.553Z' - name: video_off timestamp: '2023-12-14T13:35:36.553Z' - name: meeting_view_backgrounded timestamp: '2023-12-14T13:35:38.593Z' pc_metadata: - effective_network_type: 4g reflexive_connectivity: false relay_connectivity: true turn_connectivity: true timestamp: '2023-12-14T13:35:41.144Z' audio_devices_updates: [] video_devices_updates: [] speaker_devices_updates: [] selected_device_updates: [] candidate_pairs: producing_transport: - nominated: true current_round_trip_time: 0.009 total_round_trip_time: 4.055 bytes_received: 33950 bytes_sent: 200996 available_outgoing_bitrate: 54858 last_packet_received_timestamp: 1702561000121 last_packet_sent_timestamp: 1702561000139 local_candidate_id: IKf7CPY3N remote_candidate_id: IAEFfn0BW bytes_discarded_on_send: 0 packets_sent: 3203 packets_received: 692 packets_discarded_on_send: 0 local_candidate_type: prflx local_candidate_address: 103.183.81.21 local_candidate_port: 64799 local_candidate_protocol: udp local_candidate_network_type: wifi local_candidate_related_address: 192.168.0.119 local_candidate_related_port: 64799 remote_candidate_type: host remote_candidate_address: 43.205.177.161 remote_candidate_port: 46252 remote_candidate_protocol: udp consuming_transport: [] device_info: cpus: 8 is_mobile: false os: macOS os_version: 10.15.7 browser_metadata: browser: Chrome browser_version: 119.0.0.0 engine: Blink user_agent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36' webgl_support: null sdk_name: web-core sdk_version: 1.21.1-staging.3 room_view_type: groupCall ip_information: city: Nashik country: IN timezone: Asia/Kolkata region: Maharashtra asn: asn: AS135248 ipv4: 103.183.81.21 quality: video_consumer: [] audio_consumer: [] screenshare_video_consumer: [] screenshare_audio_consumer: [] video_producer: [] audio_producer: - mos_quality: 1 timestamp: '2023-12-14T13:35:36.554Z' packets_lost: 0 jitter: 0 rtt: 0 packets_sent: 5 bytes_sent: 86 producer_id: fb6e75d3-d353-42a9-87cb-ce57f30e44b5 ssrc: 2051826975 mid: '0' - mos_quality: 1 timestamp: '2023-12-14T13:35:44.140Z' packets_lost: 0 jitter: 0 rtt: 0.782913 packets_sent: 382 bytes_sent: 8162 producer_id: fb6e75d3-d353-42a9-87cb-ce57f30e44b5 ssrc: 2051826975 mid: '0' - mos_quality: 1 timestamp: '2023-12-14T13:35:51.140Z' packets_lost: 0 jitter: 0 rtt: 0.014374 packets_sent: 350 bytes_sent: 6300 producer_id: fb6e75d3-d353-42a9-87cb-ce57f30e44b5 ssrc: 2051826975 mid: '0' - mos_quality: 1 timestamp: '2023-12-14T13:35:58.142Z' packets_lost: 0 jitter: 0 rtt: 0.49529999999999996 packets_sent: 351 bytes_sent: 6318 producer_id: fb6e75d3-d353-42a9-87cb-ce57f30e44b5 ssrc: 2051826975 mid: '0' - mos_quality: 1 timestamp: '2023-12-14T13:36:05.143Z' packets_lost: 0 jitter: 0 rtt: 0.009659 packets_sent: 350 bytes_sent: 6300 producer_id: fb6e75d3-d353-42a9-87cb-ce57f30e44b5 ssrc: 2051826975 mid: '0' - mos_quality: 1 timestamp: '2023-12-14T13:36:12.143Z' packets_lost: 0 jitter: 0 rtt: 0.008513999999999999 packets_sent: 350 bytes_sent: 6300 producer_id: fb6e75d3-d353-42a9-87cb-ce57f30e44b5 ssrc: 2051826975 mid: '0' - mos_quality: 1 timestamp: '2023-12-14T13:36:19.136Z' packets_lost: 0 jitter: 0 rtt: 0.013321 packets_sent: 349 bytes_sent: 6282 producer_id: fb6e75d3-d353-42a9-87cb-ce57f30e44b5 ssrc: 2051826975 mid: '0' - mos_quality: 1 timestamp: '2023-12-14T13:36:26.142Z' packets_lost: 0 jitter: 0 rtt: 0.009888 packets_sent: 351 bytes_sent: 6318 producer_id: fb6e75d3-d353-42a9-87cb-ce57f30e44b5 ssrc: 2051826975 mid: '0' - mos_quality: 1 timestamp: '2023-12-14T13:36:33.141Z' packets_lost: 0 jitter: 0 rtt: 0.011932 packets_sent: 350 bytes_sent: 6300 producer_id: fb6e75d3-d353-42a9-87cb-ce57f30e44b5 ssrc: 2051826975 mid: '0' - mos_quality: 1 timestamp: '2023-12-14T13:36:40.138Z' packets_lost: 0 jitter: 0 rtt: 0.011108 packets_sent: 350 bytes_sent: 6300 producer_id: fb6e75d3-d353-42a9-87cb-ce57f30e44b5 ssrc: 2051826975 mid: '0' screenshare_video_producer: [] screenshare_audio_producer: [] video_consumer_cumulative: {} audio_consumer_cumulative: {} screenshare_video_consumer_cumulative: {} screenshare_audio_consumer_cumulative: {} video_producer_cumulative: {} screenshare_video_producer_cumulative: {} audio_producer_cumulative: quality_mos: avg: 1 p50: 1 p75: 1 p90: 1 packet_loss: avg: 0 50_or_greater_event_fraction: 0 25_or_greater_event_fraction: 0 10_or_greater_event_fraction: 0 5_or_greater_event_fraction: 0 rtt: avg: 135.7009 500ms_or_greater_event_fraction: 0.1 250ms_or_greater_event_fraction: 0.2 100ms_or_greater_event_fraction: 0.2 screenshare_audio_producer_cumulative: {} GetSessionTranscriptSummary: description: Returns a complete summary of transcripts of a session. content: application/json: schema: type: object properties: success: type: boolean data: $ref: '#/components/schemas/TranscriptSummary' examples: GetActiveSessionSuccessResponse: summary: Success response for fetching active session value: success: true data: id: 813432c7-3c5a-45e2-9acf-eef7061c7584 associated_id: 6bf2b8be-04dd-4191-b602-1128921a306b type: meeting status: LIVE live_participants: 1 max_concurrent_participants: 2 minutes_consumed: 2.3434 started_at: '2022-01-12T14:21:34.388Z' ended_at: 'null' created_at: '2022-01-12T14:21:34.398Z' updated_at: '2022-01-12T14:26:00.784Z' GetActiveSessionNotFoundResponse: summary: Active Session not found value: success: false error: code: 404 message: No active session found for meeting_id 6bf2b8be-04dd-4191-b602-1128921a306b ParticipantListSuccess: summary: success response for session's participants list value: success: true data: participants: - id: 005f4e0c-4d08-4d4e-a391-a76be75cd296 user_id: 0a08343d-a9dc-45f0-9feb-6a64afcc4f81 custom_participant_id: 83qi0i display_name: Mark preset_name: webinar_participant joined_at: '2023-02-01T10:51:08.030Z' left_at: '2023-02-01T10:56:56.612Z' duration: 5.8097 created_at: '2023-02-01T10:51:08.039Z' updated_at: '2023-02-01T10:56:56.618Z' - id: 51fdf95f-d893-471a-922b-7db7adb14453 user_id: 85e7f0fd-7c16-45e9-9d68-f17ef007c4eb custom_participant_id: 3uggr display_name: Henry preset_name: webinar_participant joined_at: '2023-02-01T10:50:36.846Z"' left_at: '2023-02-01T10:57:32.424Z' duration: 6.9263 created_at: '2023-02-01T10:50:36.853Z' updated_at: '2023-02-01T10:57:32.431Z' paging: total_count: 123 start_offset: 1 end_offset: 2 ParticipantListWithPeerEventSucces: summary: success response for sessions participants list with peer events value: success: true data: participants: - id: 005f4e0c-4d08-4d4e-a391-a76be75cd296 user_id: 0a08343d-a9dc-45f0-9feb-6a64afcc4f81 custom_participant_id: 83qi0i display_name: Mark preset_name: webinar_participant joined_at: '2023-02-01T10:51:08.030Z' left_at: '2023-02-01T10:56:56.612Z' duration: 5.8097 created_at: '2023-02-01T10:51:08.039Z' updated_at: '2023-02-01T10:56:56.618Z' peer_events: - id: 94af3bac-f30b-40b9-ab45-4b9e6eff191a peer_id: 79d87ca5-7e47-452a-b3c1-b6842ad84bf5 event_name: PEER_JOINING created_at: '2023-02-01T10:51:50.786Z' updated_at: '2023-02-01T10:51:50.792Z' - id: 94af3bac-f30b-40b9-ab45-4b9e6eff191b peer_id: 79d87ca5-7e47-452a-b3c1-b6842ad84bf5 event_name: PEER_LEAVING created_at: '2023-02-01T10:56:50.786Z' updated_at: '2023-02-01T10:56:50.792Z' - id: 51fdf95f-d893-471a-922b-7db7adb14453 user_id: 85e7f0fd-7c16-45e9-9d68-f17ef007c4eb custom_participant_id: 3uggr display_name: Henry preset_name: webinar_participant joined_at: '2023-02-01T10:50:36.846Z"' left_at: '2023-02-01T10:57:32.424Z' duration: 6.9263 created_at: '2023-02-01T10:50:36.853Z' updated_at: '2023-02-01T10:57:32.431Z' peer_events: - id: 94af3bac-f30b-40b9-ab45-4b9e6eff191a peer_id: 51fdf95f-d893-471a-922b-7db7adb14453 event_name: PEER_JOINING created_at: '2023-02-01T10:51:50.786Z' updated_at: '2023-02-01T10:51:50.792Z' - id: 94af3bac-f30b-40b9-ab45-4b9e6eff191b peer_id: 51fdf95f-d893-471a-922b-7db7adb14453 event_name: PEER_LEAVING created_at: '2023-02-01T10:56:50.786Z' updated_at: '2023-02-01T10:56:50.792Z' paging: total_count: 123 start_offset: 1 end_offset: 2 ParticipantNotFoundResponse: summary: Participant Not Found value: success: false error: code: 404 message: No user found with id 813432c7-3c5a-45e2-9acf-eef7061c7584 OverallStatsSuccessResponse: summary: Overall Stats response value: success: true data: sessions_count: 26 sessions_minutes_consumed: 1323.23 recordings_minutes_consumed: 468.8932 DaywiseStatsSuccessResponse: summary: Daywise stats response value: success: true data: - date: '2022-03-01' sessions_count: 10 sessions_minutes_consumed: 123.22 recordings_minutes_consumed: 129.14 - date: '2022-03-02' sessions_count: 16 sessions_minutes_consumed: 1278.87 recordings_minutes_consumed: 338.12 schemas: LivestreamBase: type: object properties: status: type: string enum: - LIVE - IDLE - ERRORED - INVOKED description: The status of the livestream. name: type: string nullable: true description: Name of the livestream. meeting_id: type: string nullable: true description: ID of the meeting. ingest_server: type: string description: The server URL to which the RTMP encoder sends the video and audio data. id: type: string description: The livestream ID. stream_key: type: string description: Unique key for accessing each livestream. playback_url: type: string description: The web address that viewers can use to watch the livestream. created_at: type: string description: The timestamp at which the livestream was created. The time is returned in ISO format. format: date-time updated_at: type: string description: The timestamp at which the livestream was updated. The time is returned in ISO format. format: date-time disabled: type: boolean description: Specifies if the livestream was disabled. org_id: type: string x-examples: example-1: status: OFFLINE name: Livestreaming-Demo meeting_id: null ingest_seconds: 0 viewer_seconds: 0 ingest_server: 'rtmps://1ec802dd47a1.global-contribute.live-video.net:344/app/' id: 58dd0b50-4147-4bb8-88d3-2ccc2e98baa0 stream_key: sk_ap-south-1_ABCrwBSdrcWn_0eG01cFGCJcRcCsflOAX3Eu4B3RyZX playback_url: 'https://2ec802dd47b0.ap-south-1.playback.live-video.net/api/video/v1/ap-south-1.100108621410.channel.Ab1l97eJF0ME.m3u8' x-stoplight: id: up5po48o1jatw success: type: boolean x-stoplight: id: 8xu8wscogy6df WebhooksListSuccessResponse: type: object properties: success: type: boolean example: true data: type: array items: $ref: '#/components/schemas/Webhook' required: - success - data x-stoplight: id: 3uy8lfs3ohtek Webhook: type: object properties: id: type: string description: ID of the webhook format: uuid readOnly: true example: 0d1f069d-43bb-489a-ad8c-7eb95592ba8e name: type: string description: Name of the webhook example: All events webhook url: type: string description: URL the webhook will send events to format: uri example: 'https://webhook.site/b23a5bbd-c7b0-4ced-a9e2-78ae7889897e' events: type: array description: Events this webhook will send updates for items: type: string enum: - meeting.started - meeting.ended - meeting.participantJoined - meeting.participantLeft - meeting.chatSynced - recording.statusUpdate - livestreaming.statusUpdate - meeting.transcript - meeting.summary example: - meeting.started - meeting.ended - meeting.participantJoined - meeting.participantLeft - meeting.chatSynced - recording.statusUpdate - livestreaming.statusUpdate - meeting.transcript - meeting.summary created_at: type: string description: Timestamp when this webhook was created format: date-time example: '2022-05-28T07:01:53.075Z' updated_at: type: string description: Timestamp when this webhook was updated format: date-time example: '2022-05-28T07:01:53.075Z' enabled: type: boolean description: Set to true if the webhook is active required: - id - name - url - events - created_at - updated_at - enabled x-stoplight: id: uegu4piugofi0 WebhookRequest: type: object properties: name: type: string description: Name of the webhook example: All events webhook url: type: string description: URL this webhook will send events to format: uri example: 'https://webhook.site/b23a5bbd-c7b0-4ced-a9e2-78ae7889897e' events: type: array description: Events that this webhook will get triggered by items: type: string enum: - meeting.started - meeting.ended - meeting.participantJoined - meeting.participantLeft - meeting.chatSynced - recording.statusUpdate - livestreaming.statusUpdate - meeting.transcript - meeting.summary example: - meeting.started - meeting.ended - meeting.participantJoined - meeting.participantLeft - meeting.chatSynced - recording.statusUpdate - livestreaming.statusUpdate - meeting.transcript - meeting.summary enabled: type: boolean description: Set whether or not the webhook should be active when created default: true required: - name - url - events x-stoplight: id: 4toum1ublomz8 WebhookSuccessResponse: type: object properties: success: type: boolean example: true data: $ref: '#/components/schemas/Webhook' required: - success - data x-stoplight: id: ukf90z7sduf1s ErrorResponse: type: object properties: success: type: boolean description: Whether the operation succeeded or not example: false error: type: object description: Object containing details of the error that occurred properties: code: type: number description: Error code example: 404 message: type: string description: Error message example: 'Error: resource not found' required: - code - message required: - success - error x-stoplight: id: 6p8nhnuyw0smg PatchWebhookRequest: type: object properties: name: type: string description: Name of the webhook url: type: string description: URL the webhook will send events to format: uri example: 'https://webhook.site/b23a5bbd-c7b0-4ced-a9e2-78ae7889897e' events: type: array description: Events that the webhook will get triggered by items: type: string enum: - meeting.started - meeting.ended - meeting.participantJoined - meeting.participantLeft - recording.statusUpdate - livestreaming.statusUpdate - meeting.chatSynced - meeting.transcript - meeting.summary enabled: type: boolean default: true x-stoplight: id: 64cdxuiq3mu05 OrganizationListSuccessResponse: type: object properties: success: type: boolean example: true data: type: array items: allOf: - $ref: '#/components/schemas/OrganizationData' paging: type: object properties: total_count: type: number example: 30 start_offset: type: number example: 1 end_offset: type: number example: 30 required: - total_count - start_offset - end_offset required: - success - data - paging x-stoplight: id: 7rcil57cednwx OrganizationData: type: object properties: id: type: string description: ID of the organization format: uuid example: bbb0e958-93ce-41c7-9745-16e7aa51c568 name: type: string description: Must be a unique organization name example: Dyte contact: type: string example: 778-330-2389 website: type: string format: uri example: 'https://www.dyte.io' apikey: type: string example: 4deeb3d8e8b5e74d5522 preferred_region: type: string example: us-east-1 feature_flags: type: array items: type: string created_at: type: string format: date-time example: '2022-05-28T08:18:34.804Z' updated_at: type: string format: date-time example: '2022-05-28T08:18:34.804Z' required: - id - name - contact - website - apikey - preferred_region - feature_flags - created_at - updated_at x-stoplight: id: z3y092r3q0moi OrganizationRequest: type: object properties: name: type: string description: Must be a unique organization name example: Dyte contact: type: string example: 778-330-2389 website: type: string format: uri example: 'https://www.dyte.io' feature_flags: type: array items: type: string preferred_region: type: string enum: - ap-south-1 - ap-southeast-1 - us-east-1 - eu-central-1 default: ap-south-1 example: us-east-1 required: - name - contact - website x-stoplight: id: al41bmk4qos9i OrganizationSuccessResponse: type: object properties: success: type: boolean example: true data: allOf: - $ref: '#/components/schemas/OrganizationData' required: - success - data x-stoplight: id: kxrfdm8emadrx PatchOrganizationRequest: type: object properties: name: type: string description: Must be a unique organization name contact: type: string website: type: string format: uri example: 'https://www.dyte.io' feature_flags: type: array items: type: string preferred_region: type: string enum: - ap-south-1 - ap-southeast-1 - us-east-1 - eu-central-1 x-stoplight: id: 9ta8usp3kfzru CreateChatChannelInfo: type: object properties: display_name: type: string custom_participant_ids: type: array items: type: string visibility: type: string enum: - public - private x-examples: Example 1: display_name: Channel 1 custom_participant_ids: - custom_participant_id_1 visibility: public x-stoplight: id: czbwjgqw3crv9 RecordingConfig: type: object title: RecordingConfig description: | Recording Configurations to be used for this meeting. This level of configs takes higher preference over organization level configs on the Dyte developer portal. properties: max_seconds: type: number description: 'Specifies the maximum duration for recording in seconds, ranging from a minimum of 60 seconds to a maximum of 24 hours.' minimum: 60 maximum: 86400 file_name_prefix: type: string description: Adds a prefix to the beginning of the file name of the recording. video_config: $ref: '#/components/schemas/VideoConfig' audio_config: $ref: '#/components/schemas/AudioConfig' storage_config: $ref: '#/components/schemas/StorageConfig' dyte_bucket_config: $ref: '#/components/schemas/DyteBucketConfig' live_streaming_config: $ref: '#/components/schemas/LivestreamingConfig' x-stoplight: id: 6gqf9rgafk4s0 VideoConfig: type: object title: VideoConfig properties: codec: type: string enum: - H264 - VP8 description: Codec using which the recording will be encoded. default: H264 width: type: integer description: Width of the recording video in pixels minimum: 1 maximum: 1920 default: 1280 example: 1280 height: type: integer description: Height of the recording video in pixels minimum: 1 maximum: 1920 default: 720 example: 720 watermark: type: object description: Watermark to be added to the recording properties: url: type: string description: URL of the watermark image format: uri size: type: object description: Size of the watermark properties: width: type: integer description: Width of the watermark in px minimum: 1 height: type: integer description: Height of the watermark in px minimum: 1 position: type: string enum: - left top - right top - left bottom - right bottom description: Position of the watermark default: left top export_file: type: boolean description: Controls whether to export video file seperately default: true x-stoplight: id: hykqh8nuqlwy6 AudioConfig: type: object title: AudioConfig description: Object containing configuration regarding the audio that is being recorded. properties: codec: type: string enum: - MP3 - AAC description: 'Codec using which the recording will be encoded. If VP8/VP9 is selected for videoConfig, changing audioConfig is not allowed. In this case, the codec in the audioConfig is automatically set to vorbis.' default: AAC channel: type: string enum: - mono - stereo description: Audio signal pathway within an audio file that carries a specific sound source. default: stereo export_file: type: boolean description: Controls whether to export audio file seperately default: true x-stoplight: id: dn5n05dsgdtul StorageConfig: type: object nullable: true title: StorageConfig properties: type: type: string enum: - aws - azure - digitalocean - gcs - sftp description: Type of storage media. access_key: type: string description: |- Access key of the storage medium. Access key is not required for the `gcs` storage media type. Note that this field is not readable by clients, only writeable. writeOnly: true secret: type: string description: 'Secret key of the storage medium. Similar to `access_key`, it is only writeable by clients, not readable.' bucket: type: string description: Name of the storage medium's bucket. region: type: string description: Region of the storage medium. example: us-east-1 path: type: string description: Path relative to the bucket root at which the recording will be placed. auth_method: type: string enum: - KEY - PASSWORD description: | Authentication method used for "sftp" type storage medium username: type: string description: SSH destination server username for SFTP type storage medium password: type: string description: 'SSH destination server password for SFTP type storage medium when auth_method is "PASSWORD". If auth_method is "KEY", this specifies the password for the ssh private key.' host: type: string description: SSH destination server host for SFTP type storage medium port: type: number description: SSH destination server port for SFTP type storage medium private_key: type: string description: 'Private key used to login to destination SSH server for SFTP type storage medium, when auth_method used is "KEY"' required: - type x-stoplight: id: up82756qnymm5 DyteBucketConfig: type: object title: DyteBucketConfig properties: enabled: type: boolean description: 'Controls whether recordings are uploaded to Dyte''s bucket. If set to false, `download_url`, `audio_download_url`, `download_url_expiry` won''t be generated for a recording.' required: - enabled x-stoplight: id: oweuvv8iqyg9c LivestreamingConfig: type: object title: LivestreamingConfig properties: rtmp_url: type: string description: RTMP URL to stream to format: uri example: 'rtmp://a.rtmp.youtube.com/live2' x-stoplight: id: osa9lqxfycydd AIConfig: type: object title: AIConfig description: The AI Config allows you to customize the behavior of meeting transcriptions and summaries properties: transcription: $ref: '#/components/schemas/TranscriptionConfig' summarization: $ref: '#/components/schemas/SummarizationConfig' x-stoplight: id: nzv3iq73n59dd TranscriptionConfig: type: object title: TranscriptionConfig description: Transcription Configurations properties: keywords: type: array description: Adds specific terms to improve accurate detection during transcription. items: type: string language: type: string enum: - en-US - en-IN - de - hi - sv - ru - pl - el - fr - nl description: Specifies the language code for transcription to ensure accurate results. default: en-US profanity_filter: type: boolean description: Control the inclusion of offensive language in transcriptions. default: false x-examples: Example 1: keywords: - Dyte language: en-US profanity_filter: false x-stoplight: id: miu9nl6q2dynp SummarizationConfig: type: object title: SummarizationConfig description: Summary Config properties: word_limit: type: integer description: Sets the maximum number of words in the meeting summary. minimum: 150 maximum: 1000 default: 500 text_format: type: string enum: - plain_text - markdown description: 'Determines the text format of the summary, such as plain text or markdown.' default: markdown summary_type: type: string enum: - general - team_meeting - sales_call - client_check_in - interview - daily_standup - one_on_one_meeting - lecture - code_review description: 'Defines the style of the summary, such as general, team meeting, or sales call.' default: general x-examples: Example 1: word_limit: 500 text_format: plain_text summary_type: team_meeting x-stoplight: id: dy6nvsofkvzz5 InteractiveConfig: type: object title: InteractiveConfig description: 'Allows you to add timed metadata to your recordings, which are digital markers inserted into a video file to provide contextual information at specific points in the content range. The ID3 tags containing this information are available to clients on the playback timeline in HLS format. The output files are generated in a compressed .tar format.' properties: type: type: string enum: - ID3 description: The metadata is presented in the form of ID3 tags. x-stoplight: id: rfkkejpkywd4a Preset: type: object title: Preset properties: name: type: string description: Name of the preset config: type: object properties: view_type: type: string enum: - GROUP_CALL - WEBINAR - AUDIO_ROOM description: Type of the meeting max_video_streams: type: object description: Maximum number of streams that are visible on a device properties: mobile: type: integer description: Maximum number of streams visible on mobile devices desktop: type: integer description: Maximum number of video streams visible on desktop devices required: - mobile - desktop max_screenshare_count: type: integer description: Maximum number of screen shares that can be active at a given time media: type: object description: 'Media configuration options. eg: Video quality' properties: audio: type: object description: Control options for Audio quality. properties: enable_stereo: type: boolean description: Enable Stereo for your meetings default: false enable_high_bitrate: type: boolean description: Enable High Quality Audio for your meetings default: false video: type: object description: Configuration options for participant videos properties: quality: type: string enum: - hd - vga - qvga description: Video quality of participants frame_rate: type: integer description: Frame rate of participants' video maximum: 30 required: - quality - frame_rate screenshare: type: object description: Configuration options for participant screen shares properties: quality: type: string enum: - hd - vga - qvga description: 'Quality of screen share ' frame_rate: type: integer description: Frame rate of screen share required: - quality - frame_rate required: - video - screenshare required: - view_type - max_video_streams - max_screenshare_count - media permissions: type: object properties: accept_waiting_requests: type: boolean description: Whether this participant can accept waiting requests can_accept_production_requests: type: boolean can_edit_display_name: type: boolean can_spotlight: type: boolean is_recorder: type: boolean default: false recorder_type: type: string enum: - RECORDER - LIVESTREAMER - NONE description: Type of the recording peer default: NONE disable_participant_audio: type: boolean disable_participant_screensharing: type: boolean disable_participant_video: type: boolean kick_participant: type: boolean pin_participant: type: boolean can_record: type: boolean can_livestream: type: boolean waiting_room_type: type: string enum: - SKIP - ON_PRIVILEGED_USER_ENTRY - SKIP_ON_ACCEPT description: Waiting room type plugins: type: object description: Plugin permissions properties: can_close: type: boolean description: Can close plugins that are already open can_start: type: boolean description: Can start plugins can_edit_config: type: boolean description: Can edit plugin config config: oneOf: - type: string format: uuid - type: object properties: access_control: type: string enum: - FULL_ACCESS - VIEW_ONLY handles_view_only: type: boolean required: - access_control - handles_view_only required: - can_close - can_start - can_edit_config - config connected_meetings: type: object properties: can_alter_connected_meetings: type: boolean can_switch_connected_meetings: type: boolean can_switch_to_parent_meeting: type: boolean required: - can_alter_connected_meetings - can_switch_connected_meetings - can_switch_to_parent_meeting polls: type: object description: Poll permissions properties: can_create: type: boolean description: Can create polls can_vote: type: boolean description: Can vote on polls can_view: type: boolean description: Can view polls required: - can_create - can_vote - can_view media: type: object description: Media permissions properties: video: type: object description: Video permissions properties: can_produce: type: string enum: - ALLOWED - NOT_ALLOWED - CAN_REQUEST description: Can produce video required: - can_produce audio: type: object description: Audio permissions properties: can_produce: type: string enum: - ALLOWED - NOT_ALLOWED - CAN_REQUEST description: Can produce audio required: - can_produce screenshare: type: object description: Screenshare permissions properties: can_produce: type: string enum: - ALLOWED - NOT_ALLOWED - CAN_REQUEST description: Can produce screen share video required: - can_produce required: - video - audio - screenshare chat: type: object description: Chat permissions properties: public: type: object properties: can_send: type: boolean description: Can send messages in general text: type: boolean description: Can send text messages files: type: boolean description: Can send file messages required: - can_send - text - files private: type: object properties: can_send: type: boolean can_receive: type: boolean text: type: boolean files: type: boolean required: - can_send - can_receive - text - files required: - public - private hidden_participant: type: boolean description: Whether this participant is visible to others or not show_participant_list: type: boolean can_change_participant_permissions: type: boolean required: - accept_waiting_requests - can_accept_production_requests - can_edit_display_name - can_spotlight - recorder_type - disable_participant_audio - disable_participant_screensharing - disable_participant_video - kick_participant - pin_participant - can_record - can_livestream - waiting_room_type - plugins - connected_meetings - polls - media - chat - hidden_participant - show_participant_list - can_change_participant_permissions ui: type: object properties: design_tokens: type: object properties: border_radius: type: string enum: - rounded border_width: type: string enum: - thin spacing_base: type: number default: 4 theme: type: string enum: - dark colors: type: object properties: brand: type: object properties: '300': type: string default: '#844d1c' '400': type: string default: '#9d5b22' '500': type: string default: '#b56927' '600': type: string default: '#d37c30' '700': type: string default: '#d9904f' required: - '300' - '400' - '500' - '600' - '700' background: type: object properties: '600': type: string default: '#222222' '700': type: string default: '#1f1f1f' '800': type: string default: '#1b1b1b' '900': type: string default: '#181818' '1000': type: string default: '#141414' required: - '600' - '700' - '800' - '900' - '1000' danger: type: string default: '#FF2D2D' text: type: string default: '#EEEEEE' text_on_brand: type: string default: '#EEEEEE' success: type: string default: '#62A504' video_bg: type: string default: '#191919' warning: type: string default: '#FFCD07' required: - brand - background - danger - text - text_on_brand - success - video_bg - warning logo: type: string required: - border_radius - border_width - spacing_base - theme - colors - logo config_diff: type: object required: - design_tokens required: - name - config - ui x-stoplight: id: mrul5p6vh7ums UpdatePreset: type: object title: UpdatePreset properties: name: type: string description: Name of the preset config: type: object properties: view_type: type: string enum: - GROUP_CALL - WEBINAR - AUDIO_ROOM description: Type of the meeting max_video_streams: type: object description: Maximum number of streams that are visible on a device properties: mobile: type: integer description: Maximum number of streams visible on mobile devices desktop: type: integer description: Maximum number of video streams visible on desktop devices max_screenshare_count: type: integer description: Maximum number of screen shares that can be active at a given time media: type: object description: 'Media configuration options. eg: Video quality' properties: video: type: object description: Configuration options for participant videos properties: quality: type: string enum: - hd - vga - qvga description: Video quality of participants frame_rate: type: integer description: Frame rate of participants' video maximum: 30 screenshare: type: object description: Configuration options for participant screen shares properties: quality: type: string enum: - hd - vga - qvga description: 'Quality of screen share ' frame_rate: type: integer description: Frame rate of screen share permissions: type: object properties: accept_waiting_requests: type: boolean description: Whether this participant can accept waiting requests can_accept_production_requests: type: boolean can_edit_display_name: type: boolean can_spotlight: type: boolean is_recorder: type: boolean default: false recorder_type: type: string enum: - RECORDER - LIVESTREAMER - NONE description: Type of the recording peer default: NONE disable_participant_audio: type: boolean disable_participant_screensharing: type: boolean disable_participant_video: type: boolean kick_participant: type: boolean pin_participant: type: boolean can_record: type: boolean can_livestream: type: boolean waiting_room_type: type: string enum: - SKIP - ON_PRIVILEGED_USER_ENTRY - SKIP_ON_ACCEPT description: Waiting room type plugins: type: object description: Plugin permissions properties: can_close: type: boolean description: Can close plugins that are already open can_start: type: boolean description: Can start plugins can_edit_config: type: boolean description: Can edit plugin config config: oneOf: - type: string format: uuid - type: object properties: access_control: type: string enum: - FULL_ACCESS - VIEW_ONLY handles_view_only: type: boolean connected_meetings: type: object properties: can_alter_connected_meetings: type: boolean can_switch_connected_meetings: type: boolean can_switch_to_parent_meeting: type: boolean polls: type: object description: Poll permissions properties: can_create: type: boolean description: Can create polls can_vote: type: boolean description: Can vote on polls can_view: type: boolean description: Can view polls media: type: object description: Media permissions properties: video: type: object description: Video permissions properties: can_produce: type: string enum: - ALLOWED - NOT_ALLOWED - CAN_REQUEST description: Can produce video audio: type: object description: Audio permissions properties: can_produce: type: string enum: - ALLOWED - NOT_ALLOWED - CAN_REQUEST description: Can produce audio screenshare: type: object description: Screenshare permissions properties: can_produce: type: string enum: - ALLOWED - NOT_ALLOWED - CAN_REQUEST description: Can produce screen share video chat: type: object description: Chat permissions properties: public: type: object properties: can_send: type: boolean description: Can send messages in general text: type: boolean description: Can send text messages files: type: boolean description: Can send file messages private: type: object properties: can_send: type: boolean can_receive: type: boolean text: type: boolean files: type: boolean hidden_participant: type: boolean description: Whether this participant is visible to others or not show_participant_list: type: boolean can_change_participant_permissions: type: boolean ui: type: object properties: design_tokens: type: object properties: border_radius: type: string enum: - rounded border_width: type: string enum: - thin spacing_base: type: number default: 4 theme: type: string enum: - dark colors: type: object properties: brand: type: object properties: '300': type: string default: '#844d1c' '400': type: string default: '#9d5b22' '500': type: string default: '#b56927' '600': type: string default: '#d37c30' '700': type: string default: '#d9904f' background: type: object properties: '600': type: string default: '#222222' '700': type: string default: '#1f1f1f' '800': type: string default: '#1b1b1b' '900': type: string default: '#181818' '1000': type: string default: '#141414' danger: type: string default: '#FF2D2D' text: type: string default: '#EEEEEE' text_on_brand: type: string default: '#EEEEEE' success: type: string default: '#62A504' video_bg: type: string default: '#191919' warning: type: string default: '#FFCD07' logo: type: string config_diff: type: object x-stoplight: id: zf68q3uq8236c TrackConfigLayer: type: object title: TrackLayerConfig properties: file_name_prefix: type: string description: A file name prefix to apply for files generated from this layer outputs: type: array items: $ref: '#/components/schemas/TrackLayerOutput' x-stoplight: id: f9bkjt94wdw0k TrackLayerOutput: type: object title: TrackLayerOutput properties: type: type: string enum: - DYTE_BUCKET - STORAGE_CONFIG description: The type of output destination this layer is being exported to. default: DYTE_BUCKET storage_config: $ref: '#/components/schemas/StorageConfig' x-stoplight: id: 7q1x9kpf5o1om ActiveSession: type: object properties: id: type: string description: ID of the session readOnly: true associated_id: type: string description: 'ID of the meeting this session is associated with. In the case of V2 meetings, it is always a UUID. In V1 meetings, it is a room name of the form `abcdef-ghijkl`' meeting_display_name: type: string description: Title of the meeting this session belongs to type: type: string enum: - meeting - livestream - participant description: type of session status: type: string enum: - LIVE - ENDED description: current status of session live_participants: type: number description: number of participants currently in the session max_concurrent_participants: type: number description: number of maximum participants that were in the session minutes_consumed: type: number description: number of minutes consumed since the session started organization_id: type: string description: Organization id that hosted this session started_at: type: string description: timestamp when session started created_at: type: string description: timestamp when session created updated_at: type: string description: timestamp when session was last updated ended_at: type: string description: timestamp when session ended meta: type: object description: Any meta data about session. breakout_rooms: type: array readOnly: true items: $ref: '#/components/schemas/ActiveSession' required: - id - associated_id - meeting_display_name - type - status - live_participants - max_concurrent_participants - minutes_consumed - organization_id - started_at - created_at - updated_at x-stoplight: id: d9i83nq3hq9v2 GenericErrorResponse: type: object properties: success: type: boolean description: Success status of the request. default: false error: type: object properties: code: type: number description: HTTP status code of the error. message: type: string description: Error message describing what went wrong. required: - code - message required: - success - error x-stoplight: id: ez7ag874lsuhh SessionParticipant: type: object title: SessionParticipant properties: id: type: string description: ID of the session participant created_at: type: string updated_at: type: string name: type: string description: Name of the session participant. email: type: string description: Email of the session participant. picture: type: string description: A URL pointing to a picture of the participant. required: - id - created_at - updated_at x-stoplight: id: 399myhliuvfpg Poll: type: object properties: id: type: string description: ID of the poll readOnly: true question: type: string description: Question asked by the poll options: type: array description: Answer options items: type: object properties: text: type: string description: Text of the answer option count: type: number votes: type: array items: type: object properties: id: type: string name: type: string required: - id - name required: - text - count - votes anonymous: type: boolean hide_votes: type: boolean created_by: type: string voted: type: array items: type: string required: - id - question - options x-stoplight: id: plaks4vyczg17 ParticipantsList: type: object properties: id: type: string description: Participant ID. This maps to the corresponding peerId. user_id: type: string description: User id for this participant. custom_participant_id: type: string description: ID passed by client to create this participant. display_name: type: string description: Display name of participant when joining the session. preset_name: type: string description: Name of the preset associated with the participant. joined_at: type: string description: timestamp at which participant joined the session. left_at: type: string description: timestamp at which participant left the session. duration: type: number description: number of minutes for which the participant was in the session. created_at: type: string description: timestamp when this participant was created. updated_at: type: string description: timestamp when this participant's data was last updated. x-stoplight: id: kasd7pbsi7ioj ParticipantPeerStats: type: object properties: peer_stats: type: object properties: config: type: string status: type: string device_info: type: object properties: browser: type: string browser_version: type: string cpus: type: number engine: type: string is_mobile: type: boolean memory: type: number os: type: string os_version: type: string sdk_name: type: string sdk_version: type: string user_agent: type: string webgl_support: type: string events: type: array items: type: object properties: timestamp: type: string type: type: string ip_information: type: object properties: city: type: string country: type: string ip_location: type: string ipv4: type: string org: type: string portal: type: string region: type: string timezone: type: string precall_network_information: type: object properties: backend_rtt: type: number turn_connectivity: type: boolean effective_networktype: type: string throughtput: type: number jitter: type: number rtt: type: number reflexive_connectivity: type: boolean relay_connectivity: type: boolean fractional_loss: type: number x-stoplight: id: hnt6jabzn4odg ParticipantQualityStats: type: object properties: quality_stats: type: array items: type: object properties: peer_id: type: string audio_bandwidth: type: number video_bandwidth: type: number average_quality: type: number start: type: string end: type: string audio_packet_loss: type: number video_packet_loss: type: number audio_stats: type: array items: type: object properties: timestamp: type: string concealment_events: type: number packets_lost: type: number jitter: type: number quality: type: number video_stats: type: array items: type: object properties: timestamp: type: string frame_width: type: number frame_height: type: number frames_dropped: type: number frames_per_second: type: number packets_lost: type: number jitter: type: number quality: type: number x-stoplight: id: ftkp7l5gt29gy ChatMessage: type: object properties: chat_download_url: type: string description: URL where the chat logs can be downloaded chat_download_url_expiry: type: string description: Time when the download URL will expire required: - chat_download_url - chat_download_url_expiry x-stoplight: id: cfmjvq389r0e7 Transcript: type: object properties: sessionId: type: string transcript_download_url: type: string description: URL where the transcript can be downloaded transcript_download_url_expiry: type: string description: Time when the download URL will expire required: - sessionId - transcript_download_url - transcript_download_url_expiry x-stoplight: id: o83nj5j36irgq OverallStats: type: object properties: sessions_count: type: number description: Number of sessions_count happened in the given time period sessions_minutes_consumed: type: number description: Total meetings minutes consumed across all sessions in the given time period. recordings_minutes_consumed: type: number description: Total recordings minutes consumed across all sessions in the given time period. x-stoplight: id: 4uf74heutyu96 DaywiseStats: type: object properties: date: type: string description: Date in YYYY-MM-DD format sessions_count: type: number description: Number of sessions_count happened in the given time period sessions_minutes_consumed: type: number description: Total meetings minutes consumed across all sessions in the given time period. recordings_minutes_consumed: type: number description: Total recordings minutes consumed across all sessions in the given time period. x-stoplight: id: dzu4f290axvy8 GenericSuccessResponse: type: object title: GenericSuccessResponse properties: success: type: boolean description: Success status of the operation default: true data: type: object description: Data returned by the operation required: - success x-stoplight: id: taqkd7ur1mms8 Meeting: type: object properties: id: type: string description: ID of the meeting. format: uuid readOnly: true title: type: string description: Title of the meeting. preferred_region: type: string nullable: true enum: - ap-south-1 - ap-southeast-1 - us-east-1 - eu-central-1 - null description: The region in which this meeting should be created. created_at: type: string description: Timestamp the object was created at. The time is returned in ISO format. format: date-time readOnly: true record_on_start: type: boolean description: Specifies if the meeting should start getting recorded as soon as someone joins the meeting. updated_at: type: string description: Timestamp the object was updated at. The time is returned in ISO format. format: date-time readOnly: true live_stream_on_start: type: boolean description: Specifies if the meeting should start getting livestreamed on start. persist_chat: type: boolean description: Specifies if Chat within a meeting should persist for a week. summarize_on_end: type: boolean description: 'Automatically generate summary of meetings using transcripts. Requires Transcriptions to be enabled, and can be retrieved via Webhooks or summary API.' status: type: string enum: - ACTIVE - INACTIVE description: Whether the meeting is `ACTIVE` or `INACTIVE`. Users will not be able to join an `INACTIVE` meeting. required: - id - created_at - updated_at x-examples: Example 1: preferred_region: ap-south-1 waiting_room: false id: 7f951e37-492b-45dd-8256-7f1660341c17 record_on_start: false created_at: '2022-11-04T18:22:11.369Z' updated_at: '2022-11-04T18:22:11.369Z' x-stoplight: id: yce536j2pilbg PagingResponse: type: object title: PagingResponse properties: success: type: boolean example: true data: type: array paging: type: object properties: total_count: type: number minimum: 0 example: 30 start_offset: type: number example: 1 end_offset: type: number example: 30 required: - total_count - start_offset - end_offset required: - success - data - paging x-stoplight: id: 2i9wp1fpjmd7u Participant: type: object title: Participant description: Represents a participant. properties: id: type: string description: ID of the participant. format: uuid name: type: string nullable: true description: Name of the participant. picture: type: string nullable: true description: URL to a picture of the participant. format: uri custom_participant_id: type: string description: A unique participant ID generated by the client. preset_name: type: string description: Preset applied to the participant. created_at: type: string description: When this object was created. The time is returned in ISO format. format: date-time updated_at: type: string description: When this object was updated. The time is returned in ISO format. format: date-time required: - id - custom_participant_id - preset_name - created_at - updated_at x-stoplight: id: l1kv59dpfts4t Recording: type: object title: Recording properties: id: type: string description: ID of the recording format: uuid readOnly: true download_url: type: string nullable: true description: URL where the recording can be downloaded. format: uri readOnly: true download_url_expiry: type: string nullable: true description: Timestamp when the download URL expires. format: date-time readOnly: true audio_download_url: type: string nullable: true description: 'If the audio_config is passed, the URL for downloading the audio recording is returned.' format: uri readOnly: true file_size: type: number nullable: true description: 'File size of the recording, in bytes.' readOnly: true session_id: type: string nullable: true description: ID of the meeting session this recording is for. format: uuid readOnly: true output_file_name: type: string description: File name of the recording. status: type: string enum: - INVOKED - RECORDING - UPLOADING - UPLOADED - ERRORED - PAUSED description: Current status of the recording. invoked_time: type: string description: Timestamp when this recording was invoked. format: date-time started_time: type: string nullable: true description: Timestamp when this recording actually started after being invoked. Usually a few seconds after `invoked_time`. format: date-time stopped_time: type: string nullable: true description: Timestamp when this recording was stopped. Optional; is present only when the recording has actually been stopped. format: date-time recording_duration: type: integer description: Total recording time in seconds. required: - id - download_url - download_url_expiry - audio_download_url - file_size - session_id - output_file_name - status - invoked_time - started_time - stopped_time x-stoplight: id: n2y54h95o79eb startReason: type: object title: startReason properties: reason: type: string enum: - API_CALL - RECORD_ON_START description: |- Specifies if the recording was started using the "Start a Recording"API or using the parameter RECORD_ON_START in the "Create a meeting" API. If the recording is initiated using the "RECORD_ON_START" parameter, the user details will not be populated. caller: type: object properties: type: type: string enum: - ORGANIZATION - USER description: 'The type can be an organization or a user. If the type is `user`, then only the `user_Id` and `name` are returned.' user_Id: type: string description: The user ID of the person who started the recording. format: uuid example: d61f6956-e68f-4375-bf10-c38a704d1bec name: type: string description: Name of the user who started the recording. example: Dyte_test x-stoplight: id: r3acy7q2y9aar stopReason: type: object title: stopReason properties: reason: type: string enum: - API_CALL - INTERNAL_ERROR - ALL_PEERS_LEFT description: Specifies the reason why the recording stopped. caller: type: object properties: type: type: string enum: - ORGANIZATION - USER description: 'The type can be an organization or a user. If the type is `user`, then only the `user_Id` and `name` are returned.' user_Id: type: string description: The user ID of the person who stopped the recording. format: uuid example: d61f6956-e68f-4375-bf10-c38a704d1bec name: type: string description: Name of the user who stopped the recording. example: Dyte_test x-stoplight: id: wd3x722hj5u6e PresetListItem: type: object title: PresetListItem description: Returned by Get All Presets route properties: id: type: string description: ID of the preset format: uuid name: type: string description: Name of the preset created_at: type: string description: Timestamp this preset was created at format: date-time updated_at: type: string description: Timestamp this preset was last updated format: date-time x-stoplight: id: 2er492cfb67jb TranscriptSummary: type: object title: TranscriptSummary properties: sessionId: type: string summaryDownloadUrl: type: string description: URL where the summary of transcripts can be downloaded summaryDownloadUrlExpiry: type: string description: Time of Expiry before when you need to download the csv file. required: - sessionId - summaryDownloadUrl - summaryDownloadUrlExpiry x-stoplight: id: w3rn26ss3mm20 security: - Authorization: [] x-internal: false