diff --git a/docs/guides/capabilities/ai/meeting-transcription.mdx b/docs/guides/capabilities/ai/meeting-transcription.mdx index ca531614d0..10735e3dc6 100644 --- a/docs/guides/capabilities/ai/meeting-transcription.mdx +++ b/docs/guides/capabilities/ai/meeting-transcription.mdx @@ -7,10 +7,6 @@ description: >- # Meeting Transcription -:::info beta -The meeting transcription feature is currently in beta, which means it is still being tested and evaluated, and may undergo some change. This feature is not accessible to the public at the moment and will be activated solely upon request, subject to our team's assessment of your usage and needs. If you wish to have this feature enabled for your organization, please [get in touch with us](https://dyte.io/contact). -::: - Dyte's meeting transcription allows you to transcribe your Dyte meetings in real-time, making it easy to capture important discussions and refer back to them later. This guide will walk you through how to use this feature effectively. @@ -42,6 +38,14 @@ You can specify the language for transcription to ensure accurate and relevant r - *Greek:* `el` - *French:* `fr` - *Dutch:* `nl` +- *Turkish* `tr` +- *Spanish* `es` +- *Italian* `it` +- *Portuguese* `pt` +- *Romanian* `ro` +- *Korean* `ko` +- *Indonesia* `id` +- *Multi* `multi` ```json lines "language": "en-US" diff --git a/docs/guides/capabilities/audio/transcriptions.mdx b/docs/guides/capabilities/audio/transcriptions.mdx index e2cd859676..68dce6353c 100644 --- a/docs/guides/capabilities/audio/transcriptions.mdx +++ b/docs/guides/capabilities/audio/transcriptions.mdx @@ -6,17 +6,9 @@ sidebar_slug: transcriptions-inbuilt # Meeting Transcription -:::info beta -The meeting transcription feature is currently in beta, which means it is still being tested and evaluated, and may undergo some change. This feature is not accessible to the public at the moment and will be activated solely upon request, subject to our team's assessment of your usage and needs. If you wish to have this feature enabled for your organization, please [get in touch with us](https://dyte.io/contact). -::: - Dyte's meeting transcription allows you to transcribe your Dyte meetings in real-time, making it easy to capture important discussions and refer back to them later. This guide will walk you through how to use this feature effectively. -:::info NOTE -Dyte's AI meeting transcription currently only supports English. -::: - ## Control transcriptions for participants using presets You can control whether or not a participant's audio will be transcribe with the help of the `transcription_enabled` flag in the participant's preset. diff --git a/static/api/v2.yaml b/static/api/v2.yaml index cf56e09b67..c3e8af47bf 100644 --- a/static/api/v2.yaml +++ b/static/api/v2.yaml @@ -1,10 +1,4 @@ openapi: 3.0.0 -x-stoplight: - id: f49d2395cc273 -servers: - - url: 'https://api.dyte.io/v2' - description: '' - variables: {} info: version: v2 title: Dyte REST APIs @@ -47,30 +41,35 @@ info: - [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 - x-examples: - example-1: - name: prdmmp-xhycsl-asdf properties: name: type: string + nullable: true description: Name of the livestream pattern: '^[a-zA-Z0-9-_]*$' - nullable: true + x-examples: + example-1: + name: prdmmp-xhycsl-asdf examples: example-1: value: name: prdmmp-xhycsl - description: '' - parameters: [] responses: '201': description: Successful response @@ -78,7 +77,6 @@ paths: application/json: schema: type: object - x-examples: null properties: success: type: boolean @@ -111,9 +109,8 @@ paths: description: The web address that viewers can use to watch the livestream. disabled: type: boolean - x-stoplight: - id: agr64mp2vma62 description: Specifies if the livestream was disabled. + x-examples: null examples: example-1: value: @@ -127,68 +124,71 @@ paths: 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 - 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.' + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' + get: tags: - Live streams - get: - operationId: fetch_all_livestreams 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: - - schema: - type: boolean - default: false + - name: exclude_meetings in: query - name: exclude_meetings description: Exclude the Dyte meetings that are livestreamed. - - schema: - type: integer + schema: + type: boolean + default: false + - name: per_page in: query - name: per_page description: Number of results per page. - - schema: + schema: type: integer + - name: page_no in: query - name: page_no description: The page number from which you want your page search results to be displayed. - - schema: + 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 - name: status - description: Specifies the status of the operation. - - schema: + 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 - name: start_time - description: Specify the start time range in ISO format to access the live stream. - - schema: + 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 - name: end_time - description: Specify the end time range in ISO format to access the live stream. - - schema: + description: Specifies the sorting order for the results. + schema: type: string enum: - ASC - DSC - in: query - name: sort_order - description: Specifies the sorting order for the results. responses: '200': description: OK - headers: {} content: application/json: schema: type: object - x-examples: null properties: success: type: boolean @@ -196,8 +196,7 @@ paths: type: object properties: status: - x-stoplight: - id: oe3trqljjekgt + type: string enum: - LIVE - IDLE @@ -205,79 +204,54 @@ paths: - INVOKED id: type: string - x-stoplight: - id: 0ye8a9cpfilt4 description: The ID of the livestream. format: uuid example: 3fd739f4-3c41-456e-bfba-6ebd51e16d2d name: type: string - x-stoplight: - id: k2l2a3mgv7dw3 description: Name of the livestream. example: test ingest_server: type: string - x-stoplight: - id: vvuyzsx4xwool 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 - x-stoplight: - id: gzscy47k5fvz9 description: Unique key for accessing each livestream. example: sk_ap-south-1_fiETVh5SNa3V_MAs0NlNCkJqTokqrMbrdWyA2naII25 playback_url: type: string - x-stoplight: - id: aqtss2w1ubei3 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 - x-stoplight: - id: q5srp28fax71d description: ID of the meeting. created_at: type: string - x-stoplight: - id: yx17eqgil0wnx - format: date-time 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 - x-stoplight: - id: jruccp4ohxszr - format: date-time 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 - x-stoplight: - id: hd1567rcnmmll description: Specifies if the livestream was disabled. paging: type: object - x-stoplight: - id: se6iy5mh0ye2i properties: total_count: type: integer - x-stoplight: - id: kmdvztss5e36c example: 1 start_offset: type: integer - x-stoplight: - id: pw88aeivpxy5c example: 1 end_offset: type: integer - x-stoplight: - id: wr112fr83t6uy example: 1 + x-examples: null examples: example-0: summary: Get All Live streams Of An Org Staging Success @@ -298,20 +272,31 @@ paths: total_count: 1 start_offset: 1 end_offset: 1 - 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.' - tags: - - Live streams + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' '/meetings/{meeting_id}/active-livestream/stop': post: - operationId: stop_livestreaming + 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: {} - parameters: [] responses: '200': description: OK - headers: {} content: application/json: schema: @@ -331,40 +316,43 @@ paths: success: true data: message: Stopped live stream successfully - description: Stops the active livestream of a meeting associated with the given meeting ID. Retreive the meeting ID using the `Create a meeting` API. - tags: - - Live streams - parameters: - - schema: - type: string - format: uuid - name: meeting_id - in: path - required: true - description: ID of the meeting + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' '/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: - - schema: - type: integer + - name: page_no in: query - name: page_no description: The page number from which you want your page search results to be displayed. - - schema: + schema: type: integer + - name: per_page in: query - name: per_page 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 - headers: {} content: application/json: schema: type: object - x-examples: null properties: success: type: boolean @@ -385,23 +373,19 @@ paths: - IDLE name: type: string - description: Name of the livestream. nullable: true + description: Name of the livestream. meeting_id: type: string description: The ID of the meeting that was livestreamed. created_at: type: string - x-stoplight: - id: 2ursflc0yjudg - format: date-time description: The timestamp at which the livestream was created. The time is returned in ISO format. + format: date-time updated_at: type: string - x-stoplight: - id: fbm89kkhekzuk - format: date-time 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. @@ -416,83 +400,54 @@ paths: description: The web address that viewers can use to watch the livestream. disabled: type: boolean - x-stoplight: - id: ek0x3argsduzr description: Specifies if the livestream was disabled. sessions: type: object - x-stoplight: - id: s8nlnnhrluzpj properties: id: type: string - x-stoplight: - id: u025nkbx2xmg4 description: The ID of the livestream session. livestream_id: type: string - x-stoplight: - id: k7cjavgfzthe1 description: The ID of the livestream. err_message: type: string - x-stoplight: - id: 8mw67artca1ac invoked_time: type: string - x-stoplight: - id: fqsjh126jnr7f - format: date-time description: The time at which the livestream was invoked. + format: date-time started_time: type: string - x-stoplight: - id: 8dldpat32z1ig - format: date-time description: The time at which the livestream was started. + format: date-time stopped_time: type: string - x-stoplight: - id: zitn99bcmdq0f - format: date-time description: The time at which the livestream was stopped. + format: date-time created_at: type: string - x-stoplight: - id: nfeotj6ehmynf description: The timestamp at which the livestream was created. The time is returned in ISO format. format: date-time updated_at: type: string - x-stoplight: - id: 7apkv2lysdpsz description: The timestamp at which the livestream was updated. The time is returned in ISO format. format: date-time ingest_seconds: type: string - x-stoplight: - id: 0fu4ifbczmh09 description: The time duration for which the input was given or the meeting was streamed. paging: type: object - x-stoplight: - id: rqq4vdz2o9uj4 properties: total_count: type: integer - x-stoplight: - id: tdmcuu6ilrcih example: 1 start_offset: type: integer - x-stoplight: - id: 7kou64ollx7is example: 1 end_offset: type: integer - x-stoplight: - id: 7rfzlb0l97o87 example: 1 + x-examples: null examples: example-0: summary: Get LiveStream From StreamId Success @@ -525,36 +480,36 @@ paths: total_count: 1 start_offset: 1 end_offset: 1 - description: Returns livestream session details for the given meeting ID. Retreive the meeting ID using the `Create a meeting` API. - tags: - - Live streams - operationId: livestream-session-details - x-stoplight: - id: pcm61j4127kyj - parameters: - - schema: - type: string - format: uuid - name: meeting_id - in: path - required: true - description: ID of the meeting + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' '/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 - x-examples: - example-1: - name: prdmmp-xhycsl properties: name: type: string - pattern: '^[a-zA-Z0-9-_]*$' nullable: true + pattern: '^[a-zA-Z0-9-_]*$' video_config: type: object properties: @@ -564,20 +519,20 @@ paths: 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 - parameters: [] responses: '201': description: Created - headers: {} content: application/json: schema: type: object - x-examples: null properties: success: type: boolean @@ -603,6 +558,7 @@ paths: playback_url: type: string description: The web address that viewers can use to watch the livestream. + x-examples: null examples: example-1: value: @@ -613,44 +569,38 @@ paths: 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' - description: Starts livestream of a meeting associated with the given meeting ID. Retreive the meeting ID using the `Create a meeting` API. - tags: - - Live streams - operationId: start-livestreaming - x-stoplight: - id: fz9rp69zguhn9 - parameters: - - schema: - type: string - format: uuid - name: meeting_id - in: path - required: true - description: ID of the meeting + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' '/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: {} - parameters: [] responses: '200': description: OK - headers: {} content: application/json: schema: type: object - x-examples: - example-1: - success: false properties: success: type: boolean data: type: object - x-stoplight: - id: tkq6d7y5za34s properties: id: type: string @@ -665,6 +615,7 @@ paths: type: string description: Unique key for accessing each livestream. status: + type: string enum: - LIVE - IDLE @@ -678,15 +629,18 @@ paths: description: The web address that viewers can use to watch the livestream. created_at: type: string - format: date-time description: Timestamp the object was created at. The time is returned in ISO format. + format: date-time updated_at: type: string - format: date-time 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: @@ -710,20 +664,32 @@ paths: type: string data: $ref: '#/components/schemas/LivestreamBase' - description: Resets the stream key for the given livestream ID. Retreive the livestream ID using the `Start livestreaming a meeting` API. - tags: - - Live streams - operationId: reset-stream-key - parameters: - - schema: - type: string - name: livestream_id - in: path - required: true + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' /analytics/livestreams/overall: - parameters: [] 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 @@ -734,27 +700,17 @@ paths: properties: success: type: boolean - x-stoplight: - id: x17mrgl1g9bf5 data: type: object - x-stoplight: - id: ld0etwu7u7pdk properties: count: type: integer - x-stoplight: - id: 5pe2xf0w6dnkp description: Count of total livestreams. total_ingest_seconds: type: integer - x-stoplight: - id: 7cbckohgd5uew description: Total time duration for which the input was given or the meeting was streamed. total_viewer_seconds: type: integer - x-stoplight: - id: 7b4e77ziz71wu description: Total view time for which the viewers watched the stream. examples: Example 1: @@ -765,28 +721,32 @@ paths: count: 4 total_ingest_seconds: 531 total_viewer_seconds: 116 - operationId: get-livestream-analytics-complete - description: Returns livestream analytics for the specified time range. + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' + /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: - - schema: - type: string - format: date-time + - name: start_time in: query - name: start_time description: Specify the start time range in ISO format to access the livestream analytics. - - schema: + schema: type: string format: date-time + - name: end_time in: query - name: end_time description: Specify the end time range in ISO format to access the livestream analytics. - /analytics/livestreams/daywise: - parameters: [] - get: - summary: Fetch day-wise analytics data for your livestreams + schema: + type: string + format: date-time responses: '200': description: OK @@ -797,32 +757,20 @@ paths: properties: success: type: boolean - x-stoplight: - id: jcscopi2ycxju data: type: object - x-stoplight: - id: 9olhjvthhbcb9 properties: date: type: string - x-stoplight: - id: mtmh7ceclnudo description: 'The livestream timestamp, provided in ISO format.' count: type: string - x-stoplight: - id: z9sa35x2hhyq2 description: Count of total livestreams. total_ingest_seconds: type: string - x-stoplight: - id: ms15h83p1repq description: Total time duration for which the input was given or the meeting was streamed. total_viewer_seconds: type: string - x-stoplight: - id: rtxhta3yyu9yd description: Total view time for which the viewers watched the stream. examples: Example 1: @@ -833,28 +781,22 @@ paths: count: 4 total_ingest_seconds: 531 total_viewer_seconds: 116 - operationId: get-livestream-analytics-daywise - description: Returns day-wise livestream analytics data for the specified time range. - tags: - - Live streams - - LivestreamAnalytics - parameters: - - schema: - type: string - format: date-time - in: query - name: start_time - description: Specify the start time range in ISO format to access the livestream analytics. - - schema: - type: string - format: date-time - in: query - name: end_time - description: Specify the end time range in ISO format to access the livestream analytics. + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' /analytics/daywise: - parameters: [] 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 @@ -862,33 +804,6 @@ paths: application/json: schema: type: object - 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 properties: success: type: boolean @@ -943,25 +858,51 @@ paths: total_recording_minutes: type: integer description: Total recording minutes for a specific day - headers: {} - operationId: get-org-analytics - 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.' - parameters: - - $ref: '#/components/parameters/startDate' - - $ref: '#/components/parameters/endDate' - tags: - - Analytics - - Organizations + 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: '' '/livestreams/{livestream_id}/enable': - parameters: - - schema: - type: string - name: livestream_id - in: path - required: true 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 @@ -974,19 +915,24 @@ paths: type: boolean data: $ref: '#/components/schemas/LivestreamBase' - description: Enables a livestream for the given livestream ID. Retreive the livestream ID using the `Start livestreaming a meeting` API. - tags: - - Live streams + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' '/livestreams/{livestream_id}/disable': - parameters: - - schema: - type: string - name: livestream_id - in: path - required: true 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 @@ -996,8 +942,8 @@ paths: type: object properties: success: - type: boolean - data: + $ref: '#/components/schemas/success' + LivestreamBase: $ref: '#/components/schemas/LivestreamBase' examples: Example 1: @@ -1015,18 +961,34 @@ paths: updated_at: '2019-08-24T14:15:22Z' disabled: false org_id: string - description: Disables a livestream for the given livestream ID. Retreive the livestream ID using the `Start livestreaming a meeting` API. - tags: - - Live streams + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' '/sessions/{session_id}/livestream-sessions': - parameters: - - schema: - type: string - name: session_id - in: path - required: true 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 @@ -1034,7 +996,6 @@ paths: application/json: schema: type: object - x-examples: null properties: success: type: boolean @@ -1048,18 +1009,12 @@ paths: - IDLE - ERRORED - INVOKED - x-stoplight: - id: ajlcjgry8wag1 invoked_time: type: string - description: Name of the livestream. - x-stoplight: - id: 8w0e379jakl1c nullable: true + description: Name of the livestream. livestream_id: type: string - x-stoplight: - id: umdhjls9fzu2u description: The ID of the livestream. created_at: type: string @@ -1075,36 +1030,23 @@ paths: stopped_time: type: string description: Specifies if the livestream was disabled. - x-stoplight: - id: fz5e8qwwjdvbv format: date-time ingest_seconds: type: number - x-stoplight: - id: m436v28et0h4b description: The time duration for which the input was given or the meeting was streamed. viewer_seconds: type: number - x-stoplight: - id: gt6682qreyibs description: The total view time for which the viewers watched the stream. paging: type: object - x-stoplight: - id: licc3tlfn4zqs properties: total_count: type: number - x-stoplight: - id: fn1g7l6m26trp start_offset: type: number - x-stoplight: - id: o90qti19q4w05 end_offset: type: number - x-stoplight: - id: zf67fjkaz5zqg + x-examples: null examples: example-1: value: @@ -1125,32 +1067,26 @@ paths: total_count: 1 start_offset: 1 end_offset: 1 - operationId: get-v2-livestreamsession-session-meetingId-active-livestream - description: Returns livestream session details for the given session ID. Retreive the session ID using the `Fetch all sessions of an organization` API. - tags: - - Live streams - parameters: - - schema: - type: number - in: query - name: per_page - description: Number of results per page. - - schema: - type: number - in: query - name: page_no - description: The page number from which you want your page search results to be displayed. + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' '/meetings/{meeting_id}/active-livestream': - parameters: - - schema: - type: string - format: uuid - name: meeting_id - in: path - required: true - description: ID of the meeting 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 @@ -1158,7 +1094,6 @@ paths: application/json: schema: type: object - x-examples: null properties: success: type: boolean @@ -1174,8 +1109,8 @@ paths: - INVOKED name: type: string - description: Name of the livestream. nullable: true + description: Name of the livestream. meeting_id: type: string created_at: @@ -1200,9 +1135,8 @@ paths: description: The web address that viewers can use to watch the livestream. disabled: type: string - x-stoplight: - id: p5vbni7rp58hd description: Specifies if the livestream was disabled. + x-examples: null examples: example-1: value: @@ -1216,20 +1150,24 @@ paths: created_at: '2023-07-15T11:58:08.404Z' updated_at: '2023-07-15T11:58:24.278Z' disabled: false - operationId: get-v2-meetings-meetingId-active-livestream - description: Returns details of all active livestreams for the given meeting ID. - tags: - - Live streams - parameters: [] + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' '/livestreams/sessions/{livestream-session-id}': - parameters: - - schema: - type: string - name: livestream-session-id - in: path - required: true 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 @@ -1237,7 +1175,6 @@ paths: application/json: schema: type: object - x-examples: null properties: success: type: boolean @@ -1246,45 +1183,32 @@ paths: properties: livestream_id: type: string - x-stoplight: - id: z7kmz0pjqgovc 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 - x-stoplight: - id: 2zf2eriza9alu 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. - x-stoplight: - id: 5itonc9euk07e id: type: string description: The livestream ID. started_time: type: string description: Unique key for accessing each livestream. - x-stoplight: - id: hjv81ynruiaps stopped_time: type: string description: The web address that viewers can use to watch the livestream. - x-stoplight: - id: cif4ymldivkid ingest_seconds: type: integer description: Name of the livestream. - x-stoplight: - id: quuqyvb6c22du viewer_seconds: type: integer description: Specifies if the livestream was disabled. - x-stoplight: - id: ss840fa42f2dj + x-examples: null examples: example-1: value: @@ -1300,20 +1224,24 @@ paths: updated_at: '2023-07-15T07:08:40.742Z' ingest_seconds: 60 viewer_seconds: 60 - operationId: get-v2-livestreams-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. - tags: - - Live streams - parameters: [] + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' '/livestreams/{livestream_id}/active-livestream-session': - parameters: - - schema: - type: string - name: livestream_id - in: path - required: true 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 @@ -1321,7 +1249,6 @@ paths: application/json: schema: type: object - x-examples: null properties: success: type: boolean @@ -1330,31 +1257,20 @@ paths: properties: livestream: type: object - x-stoplight: - id: z1n8zof1y1d7f properties: id: type: string - x-stoplight: - id: obdwjc45i6hiu name: type: string - x-stoplight: - id: pck3pj9rslvyb description: Name of the livestream. ingest_server: type: string - x-stoplight: - id: km7t1lrhq7wu5 description: The server URL to which the RTMP encoder sends the video and audio data. stream_key: type: string - x-stoplight: - id: lk2vyiyj0w81i description: Unique key for accessing each livestream. status: - x-stoplight: - id: xylo1jluliuf8 + type: string enum: - LIVE - IDLE @@ -1362,88 +1278,57 @@ paths: - INVOKED meeting_id: type: string - x-stoplight: - id: y3r1tm75cfi4a description: ID of the meeting. playback_url: type: string - x-stoplight: - id: 53eq0tpog5ib2 description: The web address that viewers can use to watch the livestream. created_at: type: string - x-stoplight: - id: nckmepbq06ldp - format: date-time description: Timestamp the object was created at. The time is returned in ISO format. + format: date-time updated_at: type: string - x-stoplight: - id: 5y596dwsxaeue - format: date-time description: Timestamp the object was updated at. The time is returned in ISO format. + format: date-time disabled: type: string - x-stoplight: - id: 97k85uncuiij7 description: Specifies if the livestream was disabled. session: type: object - x-stoplight: - id: otdg6an2qn65t properties: id: type: string - x-stoplight: - id: 8fqik84h9x7l8 livestream_id: type: string - x-stoplight: - id: keu70ty635eby err_message: type: string - x-stoplight: - id: a4qlsa10bl1a5 invoked_time: type: string - x-stoplight: - id: sy8qrnkspmp1x - format: date-time description: Timestamp the object was invoked. The time is returned in ISO format. + format: date-time started_time: type: string - x-stoplight: - id: n07o9ogpxkeiz - format: date-time description: Timestamp the object was started. The time is returned in ISO format. + format: date-time stopped_time: type: string - x-stoplight: - id: o4z48ppd6k294 - format: date-time description: Timestamp the object was stopped. The time is returned in ISO format. + format: date-time created_at: type: string - x-stoplight: - id: s7f3gaqqsrmtk - format: date-time description: Timestamp the object was created at. The time is returned in ISO format. + format: date-time updated_at: type: string - x-stoplight: - id: 9zx76nxrx2yft - format: date-time description: Timestamp the object was updated at. The time is returned in ISO format. + format: date-time ingest_seconds: type: string - x-stoplight: - id: 8n412l8lqc3z7 description: The time duration for which the input was given or the meeting was streamed. viewer_seconds: type: string - x-stoplight: - id: gzpj7k9nx650f description: The total view time for which the viewers watched the stream. + x-examples: null examples: example-1: value: @@ -1471,20 +1356,34 @@ paths: updated_at: '2023-07-15T07:08:40.742Z' ingest_seconds: 60 viewer_seconds: 60 - operationId: get-v2-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. - tags: - - Live streams - parameters: [] + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' '/livestreams/{livestream_id}': - parameters: - - schema: - type: string - name: livestream_id - in: path - required: true 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 @@ -1492,7 +1391,6 @@ paths: application/json: schema: type: object - x-examples: null properties: success: type: boolean @@ -1515,6 +1413,7 @@ paths: type: string description: Unique key for accessing each livestream. status: + type: string enum: - LIVE - IDLE @@ -1573,24 +1472,17 @@ paths: description: The total view time for which the viewers watched the stream. paging: type: object - x-stoplight: - id: 5voo3tsec17pj properties: total_count: type: integer - x-stoplight: - id: ueiu1cvwn51tn example: 1 start_offset: type: integer - x-stoplight: - id: lsf93fojv1tlo example: 1 end_offset: type: integer - x-stoplight: - id: q0ya8kcvei9nc example: 1 + x-examples: null examples: example-1: value: @@ -1622,44 +1514,39 @@ paths: total_count: 1 start_offset: 1 end_offset: 1 - operationId: get-v2-livestream-session-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. - tags: - - Live streams - parameters: - - schema: - type: integer - in: query - name: page_no - description: The page number from which you want your page search results to be displayed. - - schema: - type: integer - in: query - name: per_page - description: Number of results per page. + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' '/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' - tags: - - Active session responses: '200': $ref: '#/components/responses/GetActiveSession' '404': $ref: '#/components/responses/GetActiveSessionNotFound' + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' '/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' - tags: - - Active session requestBody: $ref: '#/components/requestBodies/KickParticipantsBody' responses: @@ -1667,55 +1554,75 @@ paths: $ref: '#/components/responses/KickParticipants' '404': $ref: '#/components/responses/ParticipantNotFound' + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' '/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' - tags: - - Active session responses: '200': $ref: '#/components/responses/KickAllParticipants' + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' '/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' - tags: - - Active session requestBody: $ref: '#/components/requestBodies/KickParticipantsBody' responses: '200': $ref: '#/components/responses/MuteParticipants' + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' '/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' - tags: - - Active session requestBody: $ref: '#/components/requestBodies/MuteAllParticipantsBody' responses: '200': $ref: '#/components/responses/MuteAllParticipants' + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' '/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' - tags: - - Active session requestBody: $ref: '#/components/requestBodies/CreatePollBody' responses: @@ -1723,13 +1630,18 @@ paths: $ref: '#/components/responses/CreatePoll' '400': description: Bad Request + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' /sessions: get: + tags: + - Sessions summary: Fetch all sessions of an organization description: Returns details of all sessions of an organization. operationId: GetSessions - tags: - - Sessions parameters: - $ref: '#/components/parameters/pageNo' - $ref: '#/components/parameters/perPage' @@ -1739,43 +1651,59 @@ paths: - $ref: '#/components/parameters/endTime' - $ref: '#/components/parameters/participants' - $ref: '#/components/parameters/status' - - schema: - type: string + - name: search in: query - name: search description: 'Search string that matches sessions based on meeting title, meeting ID, and session ID' - - schema: + schema: type: string + - name: associated_id in: query - name: associated_id 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: '' '/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 - tags: - - Sessions - responses: - '200': - $ref: '#/components/responses/GetSessionDetails' - parameters: - - schema: - type: string - name: session_id - in: path - required: true - description: ID of the session - '/sessions/{session_id}/participants': - get: + 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: '' + '/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 - tags: - - Sessions parameters: - $ref: '#/components/parameters/search' - $ref: '#/components/parameters/pageNo' @@ -1784,58 +1712,84 @@ paths: - $ref: '#/components/parameters/participantsSortBy' - name: include_peer_events in: query - description: 'if true, response includes all the peer events of participants' + 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' - parameters: - - schema: - type: string - name: session_id - in: path - required: true - description: ID of the session + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' '/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 - tags: - - Sessions - responses: - '200': - $ref: '#/components/responses/GetParticipantDetails' parameters: - - schema: + - 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 - example: 'device_info,ip_information,events' enum: - device_info - ip_information - precall_network_information - events - quality_stats + example: 'device_info,ip_information,events' + - name: include_peer_events in: query - name: filters - description: Comma separated list of filters to apply. Note that there must be no spaces between the filters. - allowEmptyValue: true - parameters: - - schema: - type: string - name: participant_id - in: path - required: true - description: ID of the participant - - schema: - type: string - name: session_id - in: path - required: true - description: ID of the session + 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: '' '/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. @@ -1845,60 +1799,76 @@ paths: > This API is in beta and is disabled by default. [Contact us](https://dyte.io/contact) to enable it > for your organization. operationId: GetSessionChat - tags: - - Sessions + parameters: + - name: session_id + in: path + description: ID of the session + required: true + schema: + type: string responses: '200': $ref: '#/components/responses/GetSessionChat' - parameters: - - schema: - type: string - name: session_id - in: path - required: true - description: ID of the session + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' '/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 - tags: - - Sessions + parameters: + - name: session_id + in: path + description: ID of the session + required: true + schema: + type: string responses: '200': $ref: '#/components/responses/GetSessionTranscript' - x-stoplight: - id: h9a6ubd8g7l7b - parameters: - - schema: - type: string - name: session_id - in: path - required: true - description: ID of the session + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' '/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 - tags: - - Sessions + parameters: + - name: session_id + in: path + required: true + schema: + type: string responses: '200': $ref: '#/components/responses/GetSessionTranscriptSummary' - x-stoplight: - id: 4qpr7e8zr15hk - parameters: - - schema: - type: string - name: session_id - in: path - required: true - description: ID of the session + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' post: - summary: Generate summary of Transcripts for the session 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 @@ -1922,17 +1892,16 @@ paths: data: success: true message: Success - operationId: post-sessions-session_id-summary - x-stoplight: - id: xxsurwq6a4lbm - description: Trigger Summary generation of Transcripts for the session ID. + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' /webhooks: - summary: Represents webhooks for organization - description: Represents webhooks for organization get: - summary: Fetch all webhooks details tags: - Webhooks + summary: Fetch all webhooks details description: Returns details of all webhooks for an organization. operationId: getAllWebhooks responses: @@ -1946,14 +1915,21 @@ paths: description: Invalid credentials content: application/json: - example: | - { - message: "Unauthorized" - } + examples: + default: + value: | + { + message: "Unauthorized" + } + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' post: - summary: Add a webhook tags: - Webhooks + summary: Add a webhook description: Adds a new webhook to an organization. operationId: addWebhook requestBody: @@ -1975,28 +1951,42 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' - example: | - { - success: false, - error: { code: 400, message: 'BAD_REQUEST: "name" is required' } - } + examples: + default: + value: | + { + success: false, + error: { code: 400, message: 'BAD_REQUEST: "name" is required' } + } '401': description: Invalid credentials content: application/json: - example: | - { - message: "Unauthorized" - } + examples: + default: + value: | + { + message: "Unauthorized" + } + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' '/webhooks/{webhook_id}': - summary: Represents a single webhook - description: Represents a single webhook for an organization by ID get: - summary: Fetch details of a webhook - description: Returns webhook details for the given webhook ID. 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 @@ -2010,37 +2000,55 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' - example: | - { - success: false, - error: { code: 400, message: 'BAD_REQUEST: "id" must be a valid GUID' } - } + examples: + default: + value: | + { + success: false, + error: { code: 400, message: 'BAD_REQUEST: "id" must be a valid GUID' } + } '401': description: Invalid credentials content: application/json: - example: | - { - message: "Unauthorized" - } + examples: + default: + value: | + { + message: "Unauthorized" + } + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' put: - summary: Replace a webhook - description: Replace all details for the given webhook ID. 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' - example: | - { - "name": "test", - "events": [ "meeting.started" ], - "url": "https://new-test-url.com" - } + examples: + default: + value: | + { + "name": "test", + "events": [ "meeting.started" ], + "url": "https://new-test-url.com" + } responses: '200': description: Operation successful @@ -2048,55 +2056,75 @@ paths: application/json: schema: $ref: '#/components/schemas/WebhookSuccessResponse' - example: | - { - "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" - } - } + 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' - example: | - { - "success": false, - "error": { "code": 400, "message": "BAD_REQUEST \"id\" must be a valid GUID" } - } + examples: + default: + value: | + { + "success": false, + "error": { "code": 400, "message": "BAD_REQUEST \"id\" must be a valid GUID" } + } '401': description: Invalid credentials content: application/json: - example: | - { - message: "Unauthorized" - } + examples: + default: + value: | + { + message: "Unauthorized" + } + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' patch: - summary: Edit a webhook - description: Edits the webhook details for the given webhook ID. 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' - example: | - { - "name": "test", - "events": [ "meeting.started" ], - "url": "https://new-test-url.com" - } + examples: + default: + value: | + { + "name": "test", + "events": [ "meeting.started" ], + "url": "https://new-test-url.com" + } responses: '200': description: Operation successful @@ -2104,43 +2132,61 @@ paths: application/json: schema: $ref: '#/components/schemas/WebhookSuccessResponse' - example: | - { - "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" - } - } + 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' - example: | - { - "success": false, - "error": { "code": 400, "message": "BAD_REQUEST \"id\" must be a valid GUID" } - } + examples: + default: + value: | + { + "success": false, + "error": { "code": 400, "message": "BAD_REQUEST \"id\" must be a valid GUID" } + } '401': description: Invalid credentials content: application/json: - example: | - { - "message": "Unauthorized" - } + examples: + default: + value: | + { + "message": "Unauthorized" + } + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' delete: - summary: Delete a webhook - description: Removes a webhook for the given webhook ID. 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 @@ -2154,46 +2200,48 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' - example: | - { - "success": false, - "error": { "code": 400, "message": "BAD_REQUEST \"id\" must be a valid GUID" } - } + examples: + default: + value: | + { + "success": false, + "error": { "code": 400, "message": "BAD_REQUEST \"id\" must be a valid GUID" } + } '401': description: Invalid credentials content: application/json: - example: | - { - "message": "Unauthorized" - } - parameters: - - schema: - type: string - name: webhook_id - in: path - required: true - description: ID of the webhook + examples: + default: + value: | + { + "message": "Unauthorized" + } + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' /orgs: get: - summary: Fetch organization details of all users - description: Returns organization details of all the users. tags: - Organizations + summary: Fetch organization details of all users + description: Returns organization details of all the users. operationId: getAllOrgs parameters: - - in: query - name: per_page + - name: per_page + in: query + description: Number of values to return in a single page. Default value is 25. schema: type: integer minimum: 1 - description: Number of values to return in a single page. Default value is 25. - - in: query - name: page_no + - name: page_no + in: query + description: The page number to return. Default value is 1. schema: type: integer minimum: 1 - description: The page number to return. Default value is 1. responses: '200': description: Operation successful @@ -2215,14 +2263,15 @@ paths: $ref: '#/components/schemas/ErrorResponse' security: - OrgBearer: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' post: - summary: Create an organization - description: Creates an organization. The authenticated user becomes the owner of the organization. tags: - Organizations + summary: Create an organization + description: Creates an organization. The authenticated user becomes the owner of the organization. operationId: createOrg - security: - - OrgBearer: [] requestBody: required: true content: @@ -2254,15 +2303,25 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + security: + - OrgBearer: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' '/orgs/{org_id}': get: - summary: Fetch details of an organization - description: Returns organization details for the given organization ID. The user must be the organization's owner. 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 - security: - - OrgBearer: [] + parameters: + - name: org_id + in: path + description: ID of the organization + required: true + schema: + type: string responses: '200': description: Operation successful @@ -2282,14 +2341,24 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + security: + - OrgBearer: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' patch: - summary: Edit details of an organization - description: Edits organization details for the given organization ID. The user must be the organization's owner. 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 - security: - - OrgBearer: [] + parameters: + - name: org_id + in: path + description: ID of the organization + required: true + schema: + type: string requestBody: required: true content: @@ -2315,303 +2384,424 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' - parameters: - - schema: - type: string - name: org_id - in: path - required: true - description: ID of the organization + security: + - OrgBearer: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' /meetings: get: - summary: Fetch all meetings for an organization tags: - Meetings - responses: - '200': - $ref: '#/components/responses/GetAllMeetings' - operationId: get_all_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: '' 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' - description: Create a meeting for the given organization ID. - requestBody: - $ref: '#/components/requestBodies/CreateMeetingBody' + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' + '/meetings/{meeting_id}': + get: tags: - Meetings - '/meetings/{meeting_id}': - parameters: - - schema: - type: string - format: uuid - name: meeting_id - in: path - description: ID of the meeting. Fetch the meeting ID using the create a meeting API. - required: true - get: summary: Fetch a meeting for an organization - tags: - - Meetings + 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' - operationId: get_meeting - description: Returns a meeting details in an organization for the given meeting ID. - parameters: - - schema: - type: string - name: name - in: query + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' 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' - description: Updates a meeting in an organization for the given meeting ID. - requestBody: - $ref: '#/components/requestBodies/UpdateMeetingBody' + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' + put: tags: - Meetings - put: 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' - description: Replaces all the details for the given meeting ID. - requestBody: - $ref: '#/components/requestBodies/CreateMeetingBody' - tags: - - Meetings + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' '/meetings/{meeting_id}/participants': - parameters: - - schema: - type: string - format: uuid - name: meeting_id - in: path - description: ID of the meeting. Fetch the meeting ID using the create a meeting API. - required: true get: - summary: Fetch all participants of a meeting 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' - operationId: get_meeting_participants - description: Returns all participants detail for the given meeting ID. - parameters: - - $ref: '#/components/parameters/pageNo' - - $ref: '#/components/parameters/perPage' + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' 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' - description: Adds a participant to the given meeting ID. - requestBody: - $ref: '#/components/requestBodies/AddParticipantBody' - tags: - - Meetings + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' '/meetings/{meeting_id}/participants/{participant_id}': - parameters: - - schema: - type: string - format: uuid - 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 - name: participant_id - in: path - required: true - description: ID of the participant. You can fetch the participant ID using the add a participant API. get: - summary: Fetch a participant's detail 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' - operationId: get_meeting_participant - description: Returns a participant details for the given meeting and participant ID. - parameters: [] + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' 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' - description: Updates a participant's details for the given meeting and participant ID. - requestBody: - $ref: '#/components/requestBodies/EditParticipantBody' + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' + delete: tags: - Meetings - delete: 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' - description: Deletes a participant for the given meeting and participant ID. - tags: - - Meetings + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' '/meetings/{meeting_id}/participants/{participant_id}/token': - parameters: - - schema: - type: string - format: uuid - 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 - name: participant_id - in: path - required: true - description: ID of the participant. You can fetch the participant ID using the add a participant API. post: - summary: Refresh participant's authentication token 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' - operationId: regenerate_token - description: Regenerates participant's authentication token for the given meeting and participant ID. - parameters: [] + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' /recordings: get: - summary: Fetch all recordings for an organization tags: - Recordings - responses: - '200': - $ref: '#/components/responses/GetRecordings' - '201': - description: Created - operationId: get_all_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.' - security: - - Authorization: [] - - Bearer: [] + operationId: get_all_recordings parameters: - - schema: - type: string - format: uuid + - name: meeting_id in: query - name: meeting_id - required: false 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' - - schema: - type: boolean + - name: expired in: query - name: expired - required: false 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: '' 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' - 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.' security: - Authorization: [] - Bearer: [] - requestBody: - $ref: '#/components/requestBodies/StartRecording' - tags: - - Recordings + servers: + - url: 'https://api.dyte.io/v2' + description: '' '/recordings/active-recording/{meeting_id}': - parameters: - - schema: - type: string - name: meeting_id - in: path - required: true - description: ID of the meeting get: - summary: Fetch active recording tags: - Recordings - operationId: get_active_recording + summary: Fetch active recording description: Returns the active recording details for the given meeting ID. - security: - - Authorization: [] - - Bearer: [] + 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: '' '/recordings/{recording_id}': - parameters: - - schema: - type: string - name: recording_id - in: path - required: true - description: ID of the recording get: - summary: Fetch details of a recording 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' - operationId: get_one_recording - description: Returns details of a recording for the given recording ID. security: - Authorization: [] - Bearer: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' put: + tags: + - Recordings summary: Pause/Resume/Stop recording + description: Pause/Resume/Stop a given recording ID. operationId: pause_resume_stop_recording - responses: - '200': - $ref: '#/components/responses/GetRecording' + parameters: + - name: recording_id + in: path + description: ID of the recording + required: true + schema: + type: string requestBody: + description: '' content: application/json: schema: @@ -2625,92 +2815,126 @@ paths: - resume required: - action - description: '' - tags: - - Recordings - description: Pause/Resume/Stop a given recording ID. + responses: + '200': + $ref: '#/components/responses/GetRecording' + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' /presets: get: - summary: Fetch all presets tags: - Presets - responses: - '200': - $ref: '#/components/responses/GetAllPresets' + 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' - description: Fetches all the presets belonging to an organization. - post: - summary: Create a preset - operationId: post-presets responses: '200': - $ref: '#/components/responses/GetPresetBody' - description: Creates a preset belonging to the current organization - requestBody: - $ref: '#/components/requestBodies/CreatePresetBody' + $ref: '#/components/responses/GetAllPresets' + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' + 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: '' '/presets/{preset_id}': - parameters: - - schema: - type: string - name: preset_id - in: path - required: true - description: ID of the preset to fetch get: - summary: Fetch details of a preset 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' - operationId: get-presets-preset_id - description: Fetches details of a preset using the provided preset ID + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' 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' - description: Deletes a preset using the provided preset ID + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' + patch: tags: - Presets - patch: 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' - description: Update a preset by the provided preset ID - requestBody: - $ref: '#/components/requestBodies/UpdatePresetBody' - tags: - - Presets + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' '/sessions/peer-report/{peer_id}': - parameters: - - schema: - type: string - name: peer_id - in: path - required: true - description: ID of the peer get: - summary: Fetch details of peer tags: - Sessions - responses: - '200': - $ref: '#/components/responses/GetParticipantDataFromPeerId' - operationId: GetParticipantDataFromPeerId - x-stoplight: - id: b693pckykbu4q + 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: - - schema: + - 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 @@ -2718,22 +2942,25 @@ paths: - precall_network_information - events - quality_stats - in: query - name: filters - description: Comma separated list of filters to apply. Note that there must be no spaces between the filters. - /recordings/track: - post: - summary: '' - operationId: Start Track Recording for a Meeting + - name: peer_id + in: path + description: ID of the peer + required: true + schema: + type: string responses: '200': - description: OK - x-stoplight: - id: rc8el9mk4wa8s - requestBody: - $ref: '#/components/requestBodies/StartTrackRecordingBody' + $ref: '#/components/responses/GetParticipantDataFromPeerId' + security: + - Authorization: [] + servers: + - url: 'https://api.dyte.io/v2' + description: '' + /recordings/track: + post: tags: - Recordings + summary: '' description: |- > #### NOTE @@ -2742,2730 +2969,190 @@ paths: > 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: '' +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: - schemas: - LivestreamWithSessions: - type: object - x-examples: - example-1: - status: OFFLINE - name: Livestreaming-Demo - meeting_id: null - ingest_seconds: 0 - viewer_seconds: 0 - 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' - title: LivestreamWithSessions - properties: - status: + 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: - - LIVE - - ERRORED - INVOKED - - IDLE - name: - type: string - nullable: true - meeting_id: - type: string - nullable: true - ingest_server: - type: string - id: - type: string - stream_key: - type: string - playback_url: - type: string - created_at: - type: string - format: date-time - updated_at: - type: string - format: date-time - disabled: - type: boolean - sessions: - type: array - items: - $ref: '#/components/schemas/LivestreamSessionBase' - LivestreamBaseWithoutCreds: - type: object - x-examples: - example-1: - status: OFFLINE - name: Livestreaming-Demo - meeting_id: null - ingest_seconds: 0 - viewer_seconds: 0 - 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' - title: LivestreamBaseWithoutCreds - properties: - status: - type: string - enum: - - LIVE - - OFFLINE - - ERRORED - description: The status of the livestream. - name: - type: string - description: Name of the livestream. - nullable: true - meeting_id: - type: string - description: ID of the meeting. - nullable: true - id: - type: string - description: The livestream ID. - playback_url: - type: string - description: The web address that viewers can use to watch the livestream. - created_at: - type: string - format: date-time - description: The timestamp at which the livestream was created. The time is returned in ISO format. - updated_at: - type: string - format: date-time - description: The timestamp at which the livestream was updated. The time is returned in ISO format. - disabled: - type: boolean - description: Specifies if the livestream was disabled. - LivestreamBaseWithoutCredsWithSessions: - type: object - x-examples: - example-1: - status: OFFLINE - name: Livestreaming-Demo - meeting_id: null - ingest_seconds: 0 - viewer_seconds: 0 - 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' - title: LivestreamBaseWithoutCredsWithSessions - properties: - status: - type: string - enum: - - LIVE - - ERRORED - - INVOKED - - IDLE - name: - type: string - nullable: true - meeting_id: - type: string - nullable: true - id: - type: string - playback_url: - type: string - created_at: - type: string - format: date-time - updated_at: - type: string - format: date-time - disabled: - type: boolean - sessions: - type: array - items: - $ref: '#/components/schemas/LivestreamSessionBase' - LivestreamBaseWithoutCredsWithActiveSession: - type: object - x-examples: - example-1: - status: OFFLINE - name: Livestreaming-Demo - meeting_id: null - ingest_seconds: 0 - viewer_seconds: 0 - 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' - title: LivestreamBaseWithoutCredsWithActiveSession - properties: - session: - $ref: '#/components/schemas/LivestreamSessionBase' - livestream: - $ref: '#/components/schemas/LivestreamBaseWithoutCreds' - LivestreamSessionBase: - title: LivestreamSessionBase - x-stoplight: - id: s4a01bosmpn5x - type: object - properties: - id: - type: string - description: The ID of the session. - livestream_id: - type: string - description: The ID of the livestream. - invoked_time: - type: string - format: date-time - description: The timestamp at which the API was called or invoked. The time is returned in ISO format. - error_message: - type: string - x-stoplight: - id: 2u1jx283ldmso - started_time: - type: string - format: date-time - description: The timestamp at which the livestream session started. The time is returned in ISO format. - stopped_time: - type: string - format: date-time - description: The timestamp at which the livestream session stopped. The time is returned in ISO format. - created_at: - type: string - format: date-time - description: The timestamp at which the livestream session was created. The time is returned in ISO format. - updated_at: - type: string - format: date-time - description: The timestamp at which the livestream session was updated. The time is returned in ISO format. - 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. - LivestreamAnalytics: - title: LivestreamAnalytics - x-stoplight: - id: 8kpmfujzowg1i - type: object - properties: - id: - type: string - live_stream_session_id: - type: string - livestream_id: - type: string - viewer_count: - type: integer - ingest_audio_bitrate: - type: number - ingest_framerate: - type: number - ingest_video_bitrate: - type: number - keyframe_interval: - type: number - ingest_seconds: - type: integer - viewer_seconds: - type: integer - timestamp: - type: string - format: date-time - created_at: - type: string - format: date-time - AnalyticsResponse: - title: AnalyticsResponse - x-stoplight: - id: gtm41ommpwbn1 - type: object - properties: - success: - type: boolean - data: - type: object - properties: - analytics: - type: array - items: - $ref: '#/components/schemas/LivestreamAnalytics' - paging: - $ref: '#/components/schemas/PaginationBase' - total_stats: - $ref: '#/components/schemas/AnalyticsResponseTotalStats' - PaginationBase: - title: PaginationBase - x-stoplight: - id: e0iqmp3b8yibp - type: object - properties: - total_count: - type: number - start_offset: - type: number - end_offset: - type: number - AnalyticsResponseTotalStats: - title: AnalyticsResponseTotalStats - x-stoplight: - id: lno8y9ekd7e0s - type: object - properties: - total_viewer_count: - type: number - total_ingest_seconds: - type: number - total_viewer_seconds: - type: number - LivestreamBase: - type: object - 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' - properties: - status: - type: string - enum: - - LIVE - - IDLE - - ERRORED - - INVOKED - description: The status of the livestream. - name: - type: string - description: Name of the livestream. - nullable: true - meeting_id: - type: string - description: ID of the meeting. - nullable: true - 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 - format: date-time - description: The timestamp at which the livestream was created. The time is returned in ISO format. - updated_at: - type: string - format: date-time - description: The timestamp at which the livestream was updated. The time is returned in ISO format. - disabled: - type: boolean - description: Specifies if the livestream was disabled. - org_id: - type: string - x-stoplight: - id: 6f6cyezsk3ew6 - Webhook: - type: object - properties: - id: - type: string - format: uuid - example: 0d1f069d-43bb-489a-ad8c-7eb95592ba8e - description: ID of the webhook - readOnly: true - name: - type: string - example: All events webhook - description: Name of the webhook - url: - type: string - format: uri - example: 'https://webhook.site/b23a5bbd-c7b0-4ced-a9e2-78ae7889897e' - description: URL the webhook will send events to - events: - type: array - example: - - meeting.started - - meeting.ended - - meeting.participantJoined - - meeting.participantLeft - - meeting.chatSynced - - recording.statusUpdate - - livestreaming.statusUpdate - - meeting.transcript - - meeting.summary - 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 - created_at: - type: string - format: date-time - example: '2022-05-28T07:01:53.075Z' - description: Timestamp when this webhook was created - updated_at: - type: string - format: date-time - example: '2022-05-28T07:01:53.075Z' - description: Timestamp when this webhook was updated - enabled: - type: boolean - x-stoplight: - id: l3hofopunopq2 - description: Set to true if the webhook is active - required: - - id - - name - - url - - events - - created_at - - updated_at - - enabled - WebhookSuccessResponse: - type: object - properties: - success: - type: boolean - example: true - data: - $ref: '#/components/schemas/Webhook' - required: - - success - - data - WebhooksListSuccessResponse: - type: object - properties: - success: - type: boolean - example: true - data: - type: array - items: - $ref: '#/components/schemas/Webhook' - required: - - success - - data - ErrorResponse: - type: object - properties: - success: - type: boolean - example: false - description: Whether the operation succeeded or not - error: - type: object - required: - - code - - message - description: Object containing details of the error that occurred - properties: - code: - type: number - example: 404 - description: Error code - message: - type: string - example: 'Error: resource not found' - description: Error message - required: - - success - - error - WebhookRequest: - type: object - properties: - name: - type: string - example: All events webhook - description: Name of the webhook - url: - type: string - format: uri - example: 'https://webhook.site/b23a5bbd-c7b0-4ced-a9e2-78ae7889897e' - description: URL this webhook will send events to - events: - type: array - example: - - meeting.started - - meeting.ended - - meeting.participantJoined - - meeting.participantLeft - - meeting.chatSynced - - recording.statusUpdate - - livestreaming.statusUpdate - - meeting.transcript - - meeting.summary - 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 - enabled: - type: boolean - x-stoplight: - id: sdmlx3dxq7xtq - description: Set whether or not the webhook should be active when created - default: true - required: - - name - - url - - events - PatchWebhookRequest: - type: object - properties: - name: - type: string - description: Name of the webhook - url: - type: string - format: uri - example: 'https://webhook.site/b23a5bbd-c7b0-4ced-a9e2-78ae7889897e' - description: URL the webhook will send events to - 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 - x-stoplight: - id: 3gh3gj4jpz7fh - default: true - 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 - description: type of session - enum: - - meeting - - livestream - - participant - status: - type: string - description: current status of session - enum: - - LIVE - - ENDED - 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. - required: - - id - - associated_id - - meeting_display_name - - type - - status - - live_participants - - max_concurrent_participants - - minutes_consumed - - organization_id - - started_at - - created_at - - updated_at - GenericErrorResponse: - type: object - properties: - success: - type: boolean - description: Success status of the request. - default: false - error: - type: object - required: - - code - - message - properties: - code: - type: number - description: HTTP status code of the error. - message: - type: string - description: Error message describing what went wrong. - required: - - success - - error - description: '' - 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 - 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 - TranscriptSummary: - type: object - x-stoplight: - id: jpu03qj4zqoxo - title: TranscriptSummary - required: - - sessionId - - summaryDownloadUrl - - summaryDownloadUrlExpiry - properties: - sessionId: - type: string - x-stoplight: - id: bq7keld7ptapa - summaryDownloadUrl: - type: string - description: URL where the summary of transcripts can be downloaded - x-stoplight: - id: rn73q6znbmcob - summaryDownloadUrlExpiry: - type: string - x-stoplight: - id: y053vdtvhu950 - description: Time of Expiry before when you need to download the csv file. - SessionParticipant: - type: object - 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 - title: SessionParticipant - 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 - 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. - ParticipantPeerEvent: - type: object - properties: - id: - type: string - description: ID of peer event - peer_id: - type: string - description: peer id of the peer. - event_name: - type: string - description: Event name like peer_joining or peer_leaving - created_at: - type: string - description: timestamp at which peer event was created - updated_at: - type: string - description: timestap at which peer event was last updated - 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 - 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 - 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. - 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. - OrganizationRequest: - type: object - required: - - name - - contact - - website - properties: - name: - description: Must be a unique organization name - type: string - 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 - PatchOrganizationRequest: - type: object - properties: - name: - description: Must be a unique organization name - type: string - 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 - OrganizationData: - type: object - properties: - id: - type: string - format: uuid - example: bbb0e958-93ce-41c7-9745-16e7aa51c568 - description: ID of the organization - name: - description: Must be a unique organization name - type: string - 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 - OrganizationSuccessResponse: - type: object - required: - - success - - data - properties: - success: - type: boolean - example: true - data: - allOf: - - $ref: '#/components/schemas/OrganizationData' - OrganizationListSuccessResponse: - type: object - required: - - success - - data - - paging - 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 - Meeting: - type: object - 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' - properties: - id: - type: string - format: uuid - description: ID of the meeting. - readOnly: true - title: - type: string - x-stoplight: - id: ehrqyjfdcvmjy - 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. - nullable: true - created_at: - type: string - format: date-time - description: Timestamp the object was created at. The time is returned in ISO format. - 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 - format: date-time - description: Timestamp the object was updated at. The time is returned in ISO format. - 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 - x-stoplight: - id: cfmygpbl1q6mg - 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 - x-stoplight: - id: 7iltdkj13psqq - 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 - PagingResponse: - title: PagingResponse - x-stoplight: - id: xogzxduy48b20 - type: object - properties: - success: - type: boolean - example: true - data: - type: array - items: {} - paging: - type: object - required: - - total_count - - start_offset - - end_offset - properties: - total_count: - type: number - example: 30 - minimum: 0 - start_offset: - type: number - example: 1 - end_offset: - type: number - example: 30 - required: - - success - - data - - paging - GenericSuccessResponse: - title: GenericSuccessResponse - x-stoplight: - id: 6g2id76io3wuw - type: object - properties: - success: - type: boolean - default: true - description: Success status of the operation - data: - type: object - description: Data returned by the operation - required: - - success - Participant: - title: Participant - x-stoplight: - id: oqlh14sj8p2i5 - type: object - description: Represents a participant. - properties: - id: - type: string - description: ID of the participant. - format: uuid - name: - type: string - description: Name of the participant. - nullable: true - picture: - type: string - format: uri - description: URL to a picture of the participant. - nullable: true - 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 - format: date-time - description: When this object was created. The time is returned in ISO format. - updated_at: - type: string - format: date-time - description: When this object was updated. The time is returned in ISO format. - required: - - id - - custom_participant_id - - preset_name - - created_at - - updated_at - Recording: - title: Recording - x-stoplight: - id: 25dzhno3e2es1 - type: object - properties: - id: - type: string - description: ID of the recording - format: uuid - readOnly: true - download_url: - type: string - format: uri - description: URL where the recording can be downloaded. - nullable: true - readOnly: true - download_url_expiry: - type: string - format: date-time - description: Timestamp when the download URL expires. - nullable: true - readOnly: true - audio_download_url: - type: string - format: uri - x-stoplight: - id: h5tzcaeuye8fk - description: 'If the audio_config is passed, the URL for downloading the audio recording is returned.' - nullable: true - readOnly: true - file_size: - type: number - description: 'File size of the recording, in bytes.' - nullable: true - readOnly: true - session_id: - type: string - format: uuid - description: ID of the meeting session this recording is for. - nullable: true - 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 - format: date-time - description: Timestamp when this recording actually started after being invoked. Usually a few seconds after `invoked_time`. - nullable: true - stopped_time: - type: string - format: date-time - description: Timestamp when this recording was stopped. Optional; is present only when the recording has actually been stopped. - nullable: true - recording_duration: - type: integer - x-stoplight: - id: prsgxotoknc3l - 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 - StorageConfig: - title: StorageConfig - x-stoplight: - id: tt67la5u5qhyv - type: object - nullable: true - 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.' - x-stoplight: - id: 35o598ur3dm2s - 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: - x-stoplight: - id: uklpv4sdxai0a - enum: - - KEY - - PASSWORD - description: | - Authentication method used for "sftp" type storage medium - username: - type: string - x-stoplight: - id: bzea0pjriano5 - description: SSH destination server username for SFTP type storage medium - password: - type: string - x-stoplight: - id: nyi2j6m4lnwhg - 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 - x-stoplight: - id: y9c66jxovb285 - description: SSH destination server host for SFTP type storage medium - port: - type: number - x-stoplight: - id: y5h441zp02ino - description: SSH destination server port for SFTP type storage medium - private_key: - type: string - x-stoplight: - id: h105s3bbsxb2k - description: 'Private key used to login to destination SSH server for SFTP type storage medium, when auth_method used is "KEY"' - required: - - type - PresetListItem: - title: PresetListItem - x-stoplight: - id: 92m0mrllbxmgq - type: object - description: Returned by Get All Presets route - properties: - id: - type: string - format: uuid - description: ID of the preset - name: - type: string - description: Name of the preset - created_at: - type: string - format: date-time - description: Timestamp this preset was created at - updated_at: - type: string - format: date-time - description: Timestamp this preset was last updated - Preset: - title: Preset - x-stoplight: - id: xntgc715hdevf - type: object - properties: - name: - type: string - description: Name of the preset - config: - type: object - required: - - view_type - - max_video_streams - - max_screenshare_count - - media - 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 - required: - - mobile - - desktop - 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' - required: - - video - - screenshare - properties: - audio: - type: object - x-stoplight: - id: 5an4pjgy18pc2 - description: Control options for Audio quality. - properties: - enable_stereo: - type: boolean - x-stoplight: - id: 77frawyrim78m - default: false - description: Enable Stereo for your meetings - enable_high_bitrate: - type: boolean - x-stoplight: - id: x1lzadet3cvfu - default: false - description: Enable High Quality Audio for your meetings - video: - type: object - description: Configuration options for participant videos - required: - - quality - - frame_rate - properties: - quality: - type: string - enum: - - hd - - vga - - qvga - description: Video quality of participants - frame_rate: - type: integer - maximum: 30 - description: Frame rate of participants' video - screenshare: - type: object - description: Configuration options for participant screen shares - required: - - quality - - frame_rate - 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 - default: NONE - description: Type of the recording peer - 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 - required: - - can_close - - can_start - - can_edit_config - - config - 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 - connected_meetings: - type: object - required: - - can_alter_connected_meetings - - can_switch_connected_meetings - - can_switch_to_parent_meeting - 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 - required: - - can_create - - can_vote - - can_view - 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 - required: - - video - - audio - - screenshare - properties: - video: - type: object - description: Video permissions - required: - - can_produce - properties: - can_produce: - type: string - enum: - - ALLOWED - - NOT_ALLOWED - - CAN_REQUEST - description: Can produce video - audio: - type: object - description: Audio permissions - required: - - can_produce - properties: - can_produce: - type: string - enum: - - ALLOWED - - NOT_ALLOWED - - CAN_REQUEST - description: Can produce audio - screenshare: - type: object - description: Screenshare permissions - required: - - can_produce - properties: - can_produce: - type: string - enum: - - ALLOWED - - NOT_ALLOWED - - CAN_REQUEST - description: Can produce screen share video - chat: - type: object - description: Chat permissions - required: - - public - - private - properties: - public: - type: object - required: - - can_send - - text - - files - 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 - required: - - can_send - - can_receive - - text - - files - 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 - 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 - required: - - design_tokens - properties: - design_tokens: - type: object - required: - - border_radius - - border_width - - spacing_base - - theme - - colors - - logo - 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 - required: - - brand - - background - - danger - - text - - text_on_brand - - success - - video_bg - - warning - properties: - brand: - type: object - required: - - '300' - - '400' - - '500' - - '600' - - '700' - 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 - required: - - '600' - - '700' - - '800' - - '900' - - '1000' - 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 - required: - - name - - config - - ui - UpdatePreset: - title: UpdatePreset - x-stoplight: - id: ou6jhovc20ofp - type: object - 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 - maximum: 30 - description: Frame rate of participants' video - 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 - default: NONE - description: Type of the recording peer - 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 - VideoConfig: - title: VideoConfig - x-stoplight: - id: s67pizzbk2z0p - type: object - properties: - codec: - type: string - enum: - - H264 - - VP8 - default: H264 - description: Codec using which the recording will be encoded. - width: - type: integer - description: Width of the recording video in pixels - minimum: 1 - maximum: 1920 - example: 1280 - default: 1280 - height: - type: integer - description: Height of the recording video in pixels - minimum: 1 - maximum: 1920 - example: 720 - default: 720 - watermark: - type: object - description: Watermark to be added to the recording - properties: - url: - type: string - format: uri - description: URL of the watermark image - 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 - x-stoplight: - id: 8qyf8pcokcuvw - default: true - description: Controls whether to export video file seperately - LivestreamingConfig: - title: LivestreamingConfig - x-stoplight: - id: xtf0df61t74aj - type: object - properties: - rtmp_url: - type: string - format: uri - example: 'rtmp://a.rtmp.youtube.com/live2' - description: RTMP URL to stream to - AudioConfig: - title: AudioConfig - x-stoplight: - id: lokrgru2gznbx - type: object - description: Object containing configuration regarding the audio that is being recorded. - properties: - codec: - type: string - x-stoplight: - id: 8cvrd9bmm81ne - 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.' - enum: - - MP3 - - AAC - default: AAC - channel: - type: string - x-stoplight: - id: p92vx222riq0s - description: Audio signal pathway within an audio file that carries a specific sound source. - enum: - - mono - - stereo - default: stereo - export_file: - type: boolean - x-stoplight: - id: mqrzqrbcbbx99 - default: true - description: Controls whether to export audio file seperately - DyteBucketConfig: - title: DyteBucketConfig - x-stoplight: - id: nda2arv28bpxt - type: object - properties: - enabled: - type: boolean - x-stoplight: - id: k1f2cjsd28631 - 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 - startReason: - title: startReason - x-stoplight: - id: uk66wrtnrqcnr - type: object - properties: - reason: - type: string - x-stoplight: - id: dn2j1jzggz3tg - 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 - x-stoplight: - id: ap08qalkux1vp - properties: - type: - type: string - x-stoplight: - id: fxgon7ps3760x - 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 - x-stoplight: - id: ofr7xxueb7d7b - format: uuid - description: The user ID of the person who started the recording. - example: d61f6956-e68f-4375-bf10-c38a704d1bec - name: - type: string - x-stoplight: - id: 2q0sigi7zuva4 - description: Name of the user who started the recording. - example: Dyte_test - stopReason: - title: stopReason - x-stoplight: - id: 8g2hjugvbfd1i - type: object - properties: - reason: - type: string - x-stoplight: - id: tjp04tusymaft - enum: - - API_CALL - - INTERNAL_ERROR - - ALL_PEERS_LEFT - description: Specifies the reason why the recording stopped. - caller: - type: object - x-stoplight: - id: 8pji3iqxzke6z - properties: - type: - type: string - x-stoplight: - id: n54oq8jwz6hbv - 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 - x-stoplight: - id: nhq76tz89qbnd - description: The user ID of the person who stopped the recording. - format: uuid - example: d61f6956-e68f-4375-bf10-c38a704d1bec - name: - type: string - x-stoplight: - id: fylgc8uhbqf1v - description: Name of the user who stopped the recording. - example: Dyte_test - InteractiveConfig: - title: InteractiveConfig - x-stoplight: - id: k4wu4coh0k0wj - type: object - 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 - x-stoplight: - id: 8jh42ug6apgau - enum: - - ID3 - description: The metadata is presented in the form of ID3 tags. - FetchLivestream: - title: FetchLivestream - x-stoplight: - id: 13sdmzd5ericg - type: object - properties: - id: - type: string - x-stoplight: - id: mdvyrq30j0rw4 - name: - type: string - x-stoplight: - id: 0b5t8sncdhv1c - RecordingConfig: - title: RecordingConfig - x-stoplight: - id: yyo7jv040qf6o - type: object - 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 - x-stoplight: - id: io98gvoqjyarx - minimum: 60 - maximum: 86400 - description: 'Specifies the maximum duration for recording in seconds, ranging from a minimum of 60 seconds to a maximum of 24 hours.' - file_name_prefix: - type: string - x-stoplight: - id: gvy18dsipftrc - 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' - TrackConfigLayer: - title: TrackLayerConfig - x-stoplight: - id: 6m0irpwsm5l0m - type: object - properties: - file_name_prefix: - type: string - x-stoplight: - id: q3raplgytmxxh - description: A file name prefix to apply for files generated from this layer - outputs: - x-stoplight: - id: pzqzlzca74iaw - type: array - items: - $ref: '#/components/schemas/TrackLayerOutput' - TrackLayerOutput: - title: TrackLayerOutput - x-stoplight: - id: 5bjn4llxqxyna - type: object - properties: - type: - x-stoplight: - id: ho62tlyy3z8kb - enum: - - DYTE_BUCKET - - STORAGE_CONFIG - default: DYTE_BUCKET - description: The type of output destination this layer is being exported to. - storage_config: - $ref: '#/components/schemas/StorageConfig' - AIConfig: - title: AIConfig - x-stoplight: - id: kztjtl2gfzp7f - type: object - 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' - TranscriptionConfig: - type: object - x-examples: - Example 1: - keywords: - - Dyte - language: en-US - profanity_filter: false - description: Transcription Configurations - title: TranscriptionConfig - properties: - keywords: - type: array - description: Adds specific terms to improve accurate detection during transcription. - items: - type: string - language: - description: Specifies the language code for transcription to ensure accurate results. - enum: - - en-US - - en-IN - - de - - hi - - sv - - ru - - pl - - el - - fr - - nl - default: en-US - profanity_filter: - type: boolean - description: Control the inclusion of offensive language in transcriptions. - default: false - SummarizationConfig: - type: object - x-examples: - Example 1: - word_limit: 500 - text_format: plain_text - summary_type: team_meeting - 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: - description: 'Determines the text format of the summary, such as plain text or markdown.' - enum: - - plain_text - - markdown - default: markdown - summary_type: - description: 'Defines the style of the summary, such as general, team meeting, or sales call.' - enum: - - general - - team_meeting - - sales_call - - client_check_in - - interview - - daily_standup - - one_on_one_meeting - - lecture - - code_review - default: general - parameters: - Content-Type: - name: Content-Type - in: header - required: true - style: simple - schema: - type: string - example: application/json - streamId: - name: stream_id - in: path - required: true - style: simple - description: ID of the livestream - schema: - type: number - meetingId: - name: meeting_id - in: path - required: true - description: ID of the meeting - schema: - type: string - sessionId: - name: session_id - in: path - required: true - description: ID of the session - schema: - type: string - participantId: - name: participant_id - in: path - required: true - description: ID of the participant - schema: - type: string - pageNo: - name: page_no - in: query - required: false - schema: - type: number - minimum: 0 - description: The page number from which you want your page search results to be displayed. - allowEmptyValue: true - perPage: - name: per_page - in: query - required: false - schema: - type: number - minimum: 0 - description: Number of results per page - allowEmptyValue: true - search: - name: search - in: query - required: false - schema: - type: string - description: The search query string. You can search using the meeting ID or title. - sortBy: + - RECORDING + - UPLOADING + - UPLOADED + recordingSortBy: name: sort_by in: query required: false schema: type: string enum: - - minutesConsumed - - createdAt - sortOrder: - name: sort_order + - invokedTime + participantsSortBy: + name: sort_by in: query - required: false schema: type: string enum: - - ASC - - DESC - startTime: - name: start_time - in: query - required: false - schema: - type: string - format: date-time - description: The start time range for which you want to retrieve the meetings. The time must be specified in ISO format. - endTime: - name: end_time - in: query - required: false - schema: - type: string - format: date-time - description: The end time range for which you want to retrieve the meetings. The time must be specified in ISO format. - participants: - name: participants + - joinedAt + - duration + startDate: + name: start_date in: query - required: false + description: start date in YYYY-MM-DD format schema: type: string - example: '1:10' - status: - name: status + example: '2022-09-01' + examples: + default: + value: '2022-09-01' + endDate: + name: end_date in: query - required: false + description: end date in YYYY-MM-DD format schema: type: string - enum: - - LIVE - - ENDED - recordingStatus: - name: status - in: query - required: false - schema: - type: array - items: - type: string - enum: - - INVOKED - - RECORDING - - UPLOADING - - UPLOADED - description: Filter by one or more recording status - explode: false - recordingSortBy: - name: sort_by - in: query - required: false + 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: string - enum: - - invokedTime - participantsSortBy: - name: sort_by - in: query + type: number + meetingId: + name: meeting_id + in: path + description: ID of the meeting + required: true schema: type: string - enum: - - joinedAt - - duration - startDate: - name: start_date - in: query + sessionId: + name: session_id + in: path + description: ID of the session + required: true schema: type: string - example: '2022-09-01' - description: start date in YYYY-MM-DD format - endDate: - name: end_date - in: query + participantId: + name: participant_id + in: path + description: ID of the participant + required: true schema: type: string - example: '2022-09-22' - description: end date in YYYY-MM-DD format requestBodies: KickParticipantsBody: description: Request body for kicking participants from an active session. Only one of `participant_id` or `custom_participant_id` is required. @@ -5514,6 +3201,7 @@ components: type: boolean description: if votes on an option are visible before a person votes CreateMeetingBody: + description: Create meeting body content: application/json: schema: @@ -5521,41 +3209,42 @@ components: properties: title: type: string - description: Title of the meeting 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. - nullable: true record_on_start: type: boolean - default: false - description: Specifies if the meeting should start getting recorded as soon as someone joins the meeting. 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 - default: false - description: Specifies if the meeting should start getting livestreamed on start. 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 - default: false 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 - default: false description: 'Automatically generate summary of meetings using transcripts. Requires Transcriptions to be enabled, and can be retrieved via Webhooks or summary API.' - description: Create meeting body + default: false UpdateMeetingBody: + description: Create meeting body content: application/json: schema: @@ -5574,32 +3263,29 @@ components: description: The region in which this meeting should be created. record_on_start: type: boolean - default: false description: Specifies if the meeting should start getting recorded as soon as someone joins the meeting. + default: false live_stream_on_start: type: boolean - default: false description: Specifies if the meeting should start getting livestreamed on start. + default: false status: type: string - x-stoplight: - id: 5hu6kyh2s2c8y enum: - ACTIVE - INACTIVE - example: 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 - default: false 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 - default: false 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' - description: Create meeting body AddParticipantBody: content: application/json: @@ -5608,15 +3294,15 @@ components: properties: name: type: string + nullable: true description: '(Optional) Name of the participant. ' example: Mary Sue - nullable: true picture: type: string - example: 'https://i.imgur.com/test.jpg' - format: uri - description: '(Optional) A URL to a picture to be used for the participant. ' nullable: true + description: '(Optional) A URL to a picture to be used for the participant. ' + format: uri + example: 'https://i.imgur.com/test.jpg' preset_name: type: string description: Name of the preset to apply to this participant. @@ -5634,18 +3320,18 @@ components: properties: name: type: string - example: Jane Doe - description: (Optional) Name of the participant. nullable: true + description: (Optional) Name of the participant. + example: Jane Doe picture: type: string - format: uri - description: (Optional) A URL to a picture to be used for the participant. nullable: true + description: (Optional) A URL to a picture to be used for the participant. + format: uri preset_name: type: string - description: (Optional) Name of the preset to apply to this participant. nullable: true + description: (Optional) Name of the preset to apply to this participant. StartRecording: content: application/json: @@ -5654,12 +3340,10 @@ components: properties: meeting_id: type: string - format: uuid description: ID of the meeting to record. + format: uuid max_seconds: type: integer - x-stoplight: - id: k7f6838dflqlz 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 @@ -5673,25 +3357,19 @@ components: $ref: '#/components/schemas/LivestreamingConfig' file_name_prefix: type: string - x-stoplight: - id: 7456eveh34y08 description: Update the recording file name. url: type: string - x-stoplight: - id: kctff4maz6g44 - format: uri 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 - x-stoplight: - id: uvipu7wzh6eet - default: false 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 CreatePresetBody: @@ -5705,29 +3383,24 @@ components: schema: $ref: '#/components/schemas/UpdatePreset' StartTrackRecordingBody: + description: For now only "default" layer key is supported. content: application/json: schema: type: object - required: - - layers properties: meeting_id: type: string - x-stoplight: - id: 6sv1wqhnxgkwu description: ID of the meeting to record. layers: type: object - x-stoplight: - id: e9mwa0fkn9gt2 additionalProperties: $ref: '#/components/schemas/TrackConfigLayer' max_seconds: type: string - x-stoplight: - id: t5mmm348ds7jk description: Maximum seconds this recording should be active for (beta) + required: + - layers examples: Example 1: value: @@ -5751,7 +3424,18 @@ components: port: 0 private_key: string max_seconds: string - description: For now only "default" layer key is supported. + 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 @@ -5996,35 +3680,27 @@ components: schema: allOf: - $ref: '#/components/schemas/GenericSuccessResponse' - - allOf: - - properties: + - type: object + allOf: + - type: object + properties: data: $ref: '#/components/schemas/Meeting' - - x-stoplight: - id: 2rhsz8bxmgily + - type: object properties: data: - x-stoplight: - id: u1ivkl42i7ksx type: object properties: recording_config: $ref: '#/components/schemas/RecordingConfig' - - x-stoplight: - id: oosgzi8gcjpe8 + - type: object properties: data: type: object - x-stoplight: - id: m1r6xt4nso9lc properties: ai_config: $ref: '#/components/schemas/AIConfig' - type: object - type: object - x-stoplight: - id: 2st9dl0q4r6ju - headers: {} GetAllMeetings: description: Success response content: @@ -6106,16 +3782,16 @@ components: description: A unique participant ID generated by the client. preset_id: type: string - format: uuid description: ID of the preset applied to this participant. + format: uuid created_at: type: string - format: date-time description: Timestamp this object was created at. The time is returned in ISO format. + format: date-time updated_at: type: string - format: date-time description: Timestamp this object was updated at. The time is returned in ISO format. + format: date-time required: - custom_participant_id - preset_id @@ -6132,12 +3808,12 @@ components: properties: data: type: object - required: - - token properties: token: type: string description: Regenerated participant's authentication token. + required: + - token required: - data GetRecordings: @@ -6223,8 +3899,8 @@ components: properties: id: type: string - format: uuid description: ID of the preset + format: uuid required: - id - $ref: '#/components/schemas/Preset' @@ -6413,12 +4089,10 @@ components: type: array items: type: object - properties: {} video_stats: type: array items: type: object - properties: {} peer_ids: type: array items: @@ -6485,22 +4159,18 @@ components: type: array items: type: object - properties: {} video_devices_updates: type: array items: type: object - properties: {} speaker_devices_updates: type: array items: type: object - properties: {} selected_device_updates: type: array items: type: object - properties: {} candidate_pairs: type: object properties: @@ -6563,7 +4233,6 @@ components: type: array items: type: object - properties: {} device_info: type: object properties: @@ -6619,27 +4288,22 @@ components: type: array items: type: object - properties: {} audio_consumer: type: array items: type: object - properties: {} screenshare_video_consumer: type: array items: type: object - properties: {} screenshare_audio_consumer: type: array items: type: object - properties: {} video_producer: type: array items: type: object - properties: {} audio_producer: type: array items: @@ -6669,30 +4333,22 @@ components: type: array items: type: object - properties: {} screenshare_audio_producer: type: array items: type: object - properties: {} video_consumer_cumulative: type: object - properties: {} audio_consumer_cumulative: type: object - properties: {} screenshare_video_consumer_cumulative: type: object - properties: {} screenshare_audio_consumer_cumulative: type: object - properties: {} video_producer_cumulative: type: object - properties: {} screenshare_video_producer_cumulative: type: object - properties: {} audio_producer_cumulative: type: object properties: @@ -6733,7 +4389,6 @@ components: type: number screenshare_audio_producer_cumulative: type: object - properties: {} x-examples: Example 1: success: true @@ -7086,172 +4741,2307 @@ components: schema: type: object properties: - success: - type: boolean - x-stoplight: - id: qxi8hmo8rhrqq - 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 + 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' + success: + type: boolean + WebhooksListSuccessResponse: + type: object + properties: + success: + type: boolean + example: true + data: + type: array + items: + $ref: '#/components/schemas/Webhook' + required: + - success + - data + 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 + 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 + WebhookSuccessResponse: + type: object + properties: + success: + type: boolean + example: true + data: + $ref: '#/components/schemas/Webhook' + required: + - success + - data + 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 + 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 + 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 + 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 + 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 + OrganizationSuccessResponse: + type: object + properties: + success: + type: boolean + example: true + data: + allOf: + - $ref: '#/components/schemas/OrganizationData' + required: + - success + - data + 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 + 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 + 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' + 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 + 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 + 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 + 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 + 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' + 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' + 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 + 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 + 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. + 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 + 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 + 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' + 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' + 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 + 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 + 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 + 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 + 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. + 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 + 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 + 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 + 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 + 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. + 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. + GenericSuccessResponse: + type: object + title: GenericSuccessResponse + properties: + success: + type: boolean + description: Success status of the operation + default: 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 - securitySchemes: - Authorization: - type: http - scheme: basic - Bearer: - type: http - scheme: bearer - description: Provide bearer token for a participant who has permissions for recording. Note that this is only useful for the `/recordings` routes. - OrgBearer: - type: http - scheme: bearer - description: Provide auth token obtained from Dyte CLI -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' - description: '' + type: object + description: Data returned by the operation + required: + - success + 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' + 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 + 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 + 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 + 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 + 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 + 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 + 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 security: - Authorization: [] x-internal: false