openapi: 3.2.0 info: title: Recall.ai SDK Upload API version: 0.0.0 description: Recall.ai API Documentation servers: - url: https://us-east-1.recall.ai description: Recall.ai API - url: https://eu-central-1.recall.ai description: European Recall.ai API - url: https://ap-northeast-1.recall.ai description: Asia Recall.ai API - url: https://us-west-2.recall.ai description: Pay-as-you-go Recall.ai API tags: - name: sdk_upload paths: /api/v1/sdk_upload/: get: operationId: sdk_upload_list description: 'Get a list of all Desktop SDK uploads The base rate limit for this endpoint is: - 60 requests per min per workspace' summary: List Desktop SDK Uploads parameters: - name: cursor required: false in: query description: The pagination cursor value. schema: type: string tags: - sdk_upload security: - tokenAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedDesktopSdkUploadList' description: '' x-throttles: - scope_key: workspace_id limit: 60 period: min post: operationId: sdk_upload_create description: 'Create a new Desktop SDK upload. The base rate limit for this endpoint is: - 300 requests per min per workspace' summary: Create Desktop SDK Upload tags: - sdk_upload requestBody: content: application/json: schema: $ref: '#/components/schemas/DesktopSdkUploadRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/DesktopSdkUploadRequest' multipart/form-data: schema: $ref: '#/components/schemas/DesktopSdkUploadRequest' security: - tokenAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/DesktopSdkUpload' description: '' x-throttles: - scope_key: workspace_id limit: 300 period: min /api/v1/sdk_upload/{id}/: get: operationId: sdk_upload_retrieve description: 'Get a Desktop SDK upload instance. The base rate limit for this endpoint is: - 300 requests per min per workspace' summary: Retrieve Desktop SDK Upload parameters: - in: path name: id schema: type: string required: true tags: - sdk_upload security: - tokenAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/DesktopSdkUpload' description: '' x-throttles: - scope_key: workspace_id limit: 300 period: min components: schemas: BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointRtmpRequest: allOf: - $ref: '#/components/schemas/BotRecordingConfigRealtimeEndpointShared' - $ref: '#/components/schemas/BotRecordingConfigRealtimeEndpointRtmpRequest' BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointWebsocketRequest: allOf: - $ref: '#/components/schemas/BotRecordingConfigRealtimeEndpointShared' - $ref: '#/components/schemas/BotRecordingConfigRealtimeEndpointWebsocketRequest' BotRecordingConfigRetentionRequest: type: object properties: type: allOf: - $ref: '#/components/schemas/BotRecordingConfigRetentionSharedTypeEnum' description: 'The type of the retention policy. * `timed` - Timed * `forever` - Forever' hours: type: integer minimum: 1 default: 168 description: The number of hours to retain the recording. required: - type BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointDesktopSdkCallbackRequest: allOf: - $ref: '#/components/schemas/BotRecordingConfigRealtimeEndpointShared' - $ref: '#/components/schemas/BotRecordingConfigRealtimeEndpointDesktopSdkCallbackRequest' DesktopSdkRecordingConfigRequest: type: object properties: video_mixed_mp4: allOf: - $ref: '#/components/schemas/BotRecordingConfigBaseArtifactRequest' default: {} description: 'Capture mixed video of the meeting as part of the recording. **This is enabled by default**. Default: `{}` ' audio_mixed_mp3: allOf: - $ref: '#/components/schemas/BotRecordingConfigBaseArtifactRequest' description: 'Capture mixed audio of the meeting in mp3 format as an independent artifact. Default: `null` ' audio_separate_raw: allOf: - $ref: '#/components/schemas/BotRecordingConfigBaseArtifactRequest' description: 'Specify this to capture separate audio in raw format for each participant when using Desktop SDK raw media. **[Read more in this guide](https://docs.recall.ai/docs/how-to-get-separate-audio-per-participant-async)** Default: `null` ' participant_events: allOf: - $ref: '#/components/schemas/BotRecordingConfigBaseArtifactRequest' default: {} description: 'Capture participant events as part of the recording. **This is enabled by default**. Default: `{}` ' video_mixed_participant_video_when_screenshare: allOf: - $ref: '#/components/schemas/VideoMixedParticipantVideoWhenScreenshareEnum' default: overlap description: 'The layout of participant video streams in mixed video output when screen is being shared. More docs: https://docs.recall.ai/docs/video-layouts * `hide` - hide * `beside` - beside * `overlap` - overlap' transcript: allOf: - $ref: '#/components/schemas/DesktopSdkTranscriptArtifactRequest' description: 'Specify this to capture transcript of the meeting as part of the recording. **[Read more in this guide](https://docs.recall.ai/docs/bot-real-time-transcription)** Default: `null` ' realtime_endpoints: type: array items: $ref: '#/components/schemas/BotRecordingConfigRealtimeEndpointRequest' default: [] description: 'Add endpoints here to receive data (e.g transcript, participant events) from the recording in realtime during the meeting. Default: `[]` ' retention: allOf: - $ref: '#/components/schemas/BotRecordingConfigRetentionRequest' description: Specify the retention policy for the recording. The DSDK does not currently support Zero Data Retention. **[Read more in this guide](https://docs.recall.ai/docs/storage-and-playback)** metadata: type: object additionalProperties: type: string DesktopSdkUpload: type: object properties: id: type: string format: uuid readOnly: true status: allOf: - $ref: '#/components/schemas/NewDesktopSdkUploadStatus' readOnly: true recording_id: type: - string - 'null' format: uuid readOnly: true upload_token: type: string readOnly: true created_at: type: string format: date-time readOnly: true metadata: type: object additionalProperties: type: string required: - created_at - id - recording_id - status - upload_token BotRecordingConfigRealtimeEndpointWebsocketRequest: type: object properties: url: type: string minLength: 1 description: The URL of the realtime endpoint. format: uri events: type: array items: type: string enum: - participant_events.join - participant_events.leave - participant_events.update - participant_events.speech_on - participant_events.speech_off - participant_events.webcam_on - participant_events.webcam_off - participant_events.microphone_on - participant_events.microphone_off - participant_events.screenshare_on - participant_events.screenshare_off - participant_events.chat_message - audio_mixed_raw.data - transcript.data - transcript.partial_data - transcript.provider_data - audio_separate_raw.data - video_separate_png.data - video_separate_h264.data description: The events to send to the realtime endpoint. required: - events - url PaginatedDesktopSdkUploadList: type: object properties: next: type: - string - 'null' previous: type: - string - 'null' results: type: array items: $ref: '#/components/schemas/DesktopSdkUpload' BotRecordingConfigRealtimeEndpointSharedTypeEnum: enum: - rtmp - websocket - webhook - desktop_sdk_callback type: string description: '* `rtmp` - Rtmp * `websocket` - Websocket * `webhook` - Webhook * `desktop_sdk_callback` - Desktop Sdk Callback' NewDesktopSdkUploadStatus: type: object properties: code: $ref: '#/components/schemas/NewDesktopSdkUploadStatusCodeEnum' sub_code: type: - string - 'null' updated_at: type: string format: date-time required: - code - sub_code - updated_at BotRecordingConfigBaseArtifactRequest: type: object properties: metadata: type: object additionalProperties: type: string DesktopSdkTranscriptProviderRequest: type: object properties: recallai_streaming: type: object title: RecallAI Real-time Transcription Settings description: ' **[Read more in this guide](https://docs.recall.ai/docs/recallai-transcription)**' assembly_ai_v3_streaming: type: object properties: speech_model: description: The speech model used for your Streaming session. enum: - universal-streaming-english - universal-streaming-multilingual - whisper-rt - u3-rt-pro - universal-3-5-pro format_turns: description: Whether to return formatted final transcripts. default: false type: boolean inactivity_timeout: description: Optional time in seconds of inactivity before session is terminated. If not set, no inactivity timeout is applied. default: None format: s type: integer minimum: 5 maximum: 3600 keyterms_prompt: description: A list of words and phrases to improve recognition accuracy for. See [Keyterms Prompting](https://www.assemblyai.com/docs/streaming/keyterms-prompting) for more details. type: array items: x-label: Word type: string language_detection: description: Whether to detect the language and return language metadata on utterances and final turns. Only available for the multilingual model. enum: - 'true' - 'false' - true - false default: 'false' max_turn_silence: description: The maximum amount of silence in milliseconds allowed in a turn before end of turn is triggered. See [Turn Detection](https://www.assemblyai.com/docs/streaming/universal-streaming/turn-detection) for configuration details. type: integer default: 1280 min_turn_silence: description: The minimum amount of silence in milliseconds required to detect end of turn when confident. See [Turn Detection](https://www.assemblyai.com/docs/streaming/universal-streaming/turn-detection) for configuration details. type: integer default: 400 vad_threshold: description: The confidence threshold (0.0 to 1.0) for classifying audio frames as silence. Frames with VAD confidence below this value are considered silent. Increase for noisy environments to reduce false speech detection. default: 0.4 type: number end_of_turn_confidence_threshold: description: The confidence threshold (0.0 to 1.0) to use when determining if the end of a turn has been reached. See [Turn Detection](https://www.assemblyai.com/docs/streaming/universal-streaming/turn-detection) for configuration details. deprecated: true type: number default: 0.4 language: description: The language of your audio stream. enum: - en - multi default: en deprecated: true title: AssemblyAi Real-time Transcription Settings description: 'Docs: https://www.assemblyai.com/docs/api-reference/streaming-api/streaming-api' deepgram_streaming: type: object properties: diarize: description: Defaults to `false`. Recognize speaker changes. Each word in the transcript will be assigned a speaker number starting at 0 default: 'false' enum: - 'true' - 'false' - true - false dictation: description: Identify and extract key entities from content in submitted audio default: 'false' enum: - 'true' - 'false' - true - false endpointing: description: Indicates how long Deepgram will wait to detect whether a speaker has finished speaking or pauses for a significant period of time. When set to a value, the streaming endpoint immediately finalizes the transcription for the processed time range and returns the transcript with a speech_final parameter set to true. Can also be set to false to disable endpointing default: '10' extra: description: Arbitrary key-value pairs that are attached to the API response for usage in downstream processing filler_words: description: Filler Words can help transcribe interruptions in your audio, like "uh" and "um" default: 'false' enum: - 'true' - 'false' - true - false interim_results: description: Specifies whether the streaming endpoint should provide ongoing transcription updates as more audio is received. When set to true, the endpoint sends continuous updates, meaning transcription results may evolve over time default: 'false' enum: - 'true' - 'false' - true - false keyterm: description: Key term prompting can boost or suppress specialized terminology and brands. Only compatible with Nova-3 keywords: description: Keywords can boost or suppress specialized terminology and brands language: description: The [BCP-47 language tag](https://tools.ietf.org/html/bcp47) that hints at the primary spoken language. Depending on the Model you choose only certain languages are available default: en enum: - bg - ca - cs - da - da-DK - de - de-CH - el - en - en-AU - en-GB - en-IN - en-NZ - en-US - es - es-419 - es-LATAM - et - fi - fr - fr-CA - hi - hi-Latn - hu - id - it - ja - ko - ko-KR - lt - lv - ms - multi - nl - nl-BE - 'no' - pl - pt - pt-BR - pt-PT - ro - ru - sk - sv - sv-SE - taq - th - th-TH - tr - uk - vi - zh - zh-CN - zh-HK - zh-Hans - zh-Hant - zh-TW mip_opt_out: description: Opts out requests from the Deepgram Model Improvement Program. Refer to our Docs for pricing impacts before setting this to true. https://dpgr.am/deepgram-mip default: 'false' model: description: AI model to use for the transcription enum: - nova-3 - nova-3-general - nova-3-medical - nova-2 - nova-2-general - nova-2-meeting - nova-2-finance - nova-2-conversationalai - nova-2-voicemail - nova-2-video - nova-2-medical - nova-2-drivethru - nova-2-automotive - nova - nova-general - nova-phonecall - nova-medical - enhanced - enhanced-general - enhanced-meeting - enhanced-phonecall - enhanced-finance - base - meeting - phonecall - finance - conversationalai - voicemail - video - custom multichannel: description: Transcribe each audio channel independently default: 'false' enum: - 'true' - 'false' - true - false numerals: description: Convert numbers from written format to numerical format default: 'false' enum: - 'true' - 'false' - true - false profanity_filter: description: Profanity Filter looks for recognized profanity and converts it to the nearest recognized non-profane word or removes it from the transcript completely default: 'false' enum: - 'true' - 'false' - true - false punctuate: description: Add punctuation and capitalization to the transcript default: 'false' enum: - 'true' - 'false' - true - false redact: description: Redaction removes sensitive information from your transcripts default: 'false' oneOf: - type: string - type: array items: type: string replace: description: Search for terms or phrases in submitted audio and replaces them search: description: Search for terms or phrases in submitted audio smart_format: description: Apply formatting to transcript output. When set to true, additional formatting will be applied to transcripts to improve readability default: 'false' enum: - 'true' - 'false' - true - false tag: description: Label your requests for the purpose of identification during usage reporting utterance_end_ms: description: Indicates how long Deepgram will wait to send an UtteranceEnd message after a word has been transcribed. Use with interim_results vad_events: description: Indicates that speech has started. You'll begin receiving Speech Started messages upon speech starting default: 'false' enum: - 'true' - 'false' - true - false version: description: Version of an AI model to use default: latest title: Deepgram Real-time Transcription Settings description: 'Docs: https://developers.deepgram.com/reference/streaming' gladia_v2_streaming: type: object properties: custom_metadata: type: object description: Custom metadata you can attach to this live transcription example: user: John Doe model: type: string description: The model used to process the audio. "solaria-1" is used by default. default: solaria-1 enum: - solaria-1 endpointing: type: number description: The endpointing duration in seconds. Endpointing is the duration of silence which will cause an utterance to be considered as finished default: 0.05 minimum: 0.01 maximum: 10 maximum_duration_without_endpointing: type: number description: The maximum duration in seconds without endpointing. If endpointing is not detected after this duration, current utterance will be considered as finished default: 5 minimum: 5 maximum: 60 language_config: properties: languages: type: array description: If one language is set, it will be used for the transcription. Otherwise, language will be auto-detected by the model. default: [] items: type: string enum: - af - sq - am - ar - hy - as - az - ba - eu - be - bn - bs - br - bg - ca - zh - hr - cs - da - nl - en - et - fo - fi - fr - gl - ka - de - el - gu - ht - ha - haw - he - hi - hu - is - id - it - ja - jv - kn - kk - km - ko - lo - la - lv - ln - lt - lb - mk - mg - ms - ml - mt - mi - mr - mn - mymr - ne - 'no' - nn - oc - ps - fa - pl - pt - pa - ro - ru - sa - sr - sn - sd - si - sk - sl - so - es - su - sw - sv - tl - tg - ta - tt - te - th - bo - tr - tk - uk - ur - uz - vi - cy - yi - yo - jp code_switching: type: boolean description: If true, language will be auto-detected on each utterance. Otherwise, language will be auto-detected on first utterance and then used for the rest of the transcription. If one language is set, this option will be ignored. default: false type: object description: Specify the language configuration pre_processing: properties: audio_enhancer: type: boolean description: If true, apply pre-processing to the audio stream to enhance the quality. default: false speech_threshold: type: number description: Sensitivity configuration for Speech Threshold. A value close to 1 will apply stricter thresholds, making it less likely to detect background sounds as speech. default: 0.6 minimum: 0 maximum: 1 type: object description: Specify the pre-processing configuration realtime_processing: properties: custom_vocabulary: type: boolean description: If true, enable custom vocabulary for the transcription. default: false custom_vocabulary_config: properties: vocabulary: description: 'Specific vocabulary list to feed the transcription model with. Each item can be a string or an object with the following properties: value, intensity, pronunciations, language.' example: - Westeros - value: Stark - value: Night's Watch pronunciations: - Nightz Watch intensity: 0.4 language: en type: array items: oneOf: - type: object properties: value: type: string description: The text used to replace in the transcription. example: Gladia intensity: type: number description: The global intensity of the feature. example: 0.5 minimum: 0 maximum: 1 pronunciations: description: The pronunciations used in the transcription. type: array items: type: string language: type: string description: Specify the language in which it will be pronounced when sound comparison occurs. Default to transcription language. example: en required: - value - type: string default_intensity: type: number description: Default intensity for the custom vocabulary example: 0.5 minimum: 0 maximum: 1 required: - vocabulary type: object description: Custom vocabulary configuration, if `custom_vocabulary` is enabled custom_spelling: type: boolean description: If true, enable custom spelling for the transcription. default: false custom_spelling_config: properties: spelling_dictionary: type: object description: The list of spelling applied on the audio transcription example: Gettleman: - gettleman SQL: - Sequel required: - spelling_dictionary type: object description: Custom spelling configuration, if `custom_spelling` is enabled translation: type: boolean description: If true, enable translation for the transcription default: false translation_config: properties: target_languages: type: array example: - en minItems: 1 items: type: string description: The target language in `iso639-1` format enum: - af - sq - am - ar - hy - as - ast - az - ba - eu - be - bn - bs - br - bg - my - ca - ceb - zh - hr - cs - da - nl - en - et - fo - fi - nl - fr - fy - ff - gd - gl - lg - ka - de - el - gu - ht - ha - haw - he - hi - hu - is - ig - ilo - id - ga - it - ja - jp - jv - kn - kk - km - ko - lo - la - lv - ln - lt - lb - mk - mg - ms - ml - mt - mi - mr - mo - mn - mymr - ne - 'no' - nn - oc - or - pa - ps - fa - pl - pt - pa - ro - ru - sa - sr - sn - sd - si - sk - sl - so - es - su - sw - ss - sv - tl - tg - ta - tt - te - th - bo - tn - tr - tk - uk - ur - uz - vi - cy - wo - xh - yi - yo - zu model: type: string description: Model you want the translation model to use to translate default: base enum: - base - enhanced match_original_utterances: type: boolean description: Align translated utterances with the original ones default: true lipsync: type: boolean description: 'Whether to apply lipsync to the translated transcription. ' default: true context_adaptation: type: boolean description: Enables or disables context-aware translation features that allow the model to adapt translations based on provided context. default: true context: type: string description: Context information to improve translation accuracy informal: type: boolean description: Forces the translation to use informal language forms when available in the target language. default: false required: - target_languages type: object description: Translation configuration, if `translation` is enabled named_entity_recognition: type: boolean description: If true, enable named entity recognition for the transcription. default: false sentiment_analysis: type: boolean description: If true, enable sentiment analysis for the transcription. default: false type: object description: Specify the realtime processing configuration post_processing: properties: summarization: type: boolean description: If true, generates summarization for the whole transcription. default: false summarization_config: properties: type: type: string description: The type of summarization to apply default: general enum: - general - bullet_points - concise type: object description: Summarization configuration, if `summarization` is enabled chapterization: type: boolean description: If true, generates chapters for the whole transcription. default: false type: object description: Specify the post-processing configuration messages_config: properties: receive_final_transcripts: type: boolean description: If true, final utterance will be sent to websocket. default: true receive_speech_events: type: boolean description: If true, begin and end speech events will be sent to websocket. default: true receive_pre_processing_events: type: boolean description: If true, pre-processing events will be sent to websocket. default: true receive_realtime_processing_events: type: boolean description: If true, realtime processing events will be sent to websocket. default: true receive_post_processing_events: type: boolean description: If true, post-processing events will be sent to websocket. default: true receive_acknowledgments: type: boolean description: If true, acknowledgments will be sent to websocket. default: true receive_errors: type: boolean description: If true, errors will be sent to websocket. default: true receive_lifecycle_events: type: boolean description: If true, lifecycle events will be sent to websocket. default: false type: object description: Specify the websocket messages configuration callback: type: boolean description: If true, messages will be sent to configured url. default: false callback_config: properties: url: type: string description: URL on which we will do a `POST` request with configured messages example: https://callback.example format: uri receive_final_transcripts: type: boolean description: If true, final utterance will be sent to the defined callback. default: true receive_speech_events: type: boolean description: If true, begin and end speech events will be sent to the defined callback. default: false receive_pre_processing_events: type: boolean description: If true, pre-processing events will be sent to the defined callback. default: true receive_realtime_processing_events: type: boolean description: If true, realtime processing events will be sent to the defined callback. default: true receive_post_processing_events: type: boolean description: If true, post-processing events will be sent to the defined callback. default: true receive_acknowledgments: type: boolean description: If true, acknowledgments will be sent to the defined callback. default: false receive_errors: type: boolean description: If true, errors will be sent to the defined callback. default: false receive_lifecycle_events: type: boolean description: If true, lifecycle events will be sent to the defined callback. default: true type: object description: Specify the callback configuration title: Gladia Real-time Transcription Settings description: 'Docs: https://docs.gladia.io/reference/live-audio' speechmatics_streaming: type: object properties: language: type: string domain: type: string description: Request a specialized model based on 'language' but optimized for a particular field, e.g. "finance" or "medical". output_locale: type: string minLength: 1 additional_vocab: type: array items: type: object oneOf: - type: string minLength: 1 - type: object properties: content: type: string minLength: 1 sounds_like: type: array items: type: string minLength: 1 minItems: 1 required: - content diarization: type: string enum: - none - speaker max_delay: type: number minimum: 0 max_delay_mode: type: string enum: - flexible - fixed speaker_diarization_config: type: object properties: max_speakers: type: number format: integer minimum: 2 maximum: 100 prefer_current_speaker: type: boolean speaker_sensitivity: type: number format: float minimum: 0 maximum: 1 get_speakers: type: boolean speakers: type: array items: type: object properties: label: type: string minLength: 1 speaker_identifiers: type: array items: type: string format: byte minItems: 1 required: - label - speaker_identifiers maxItems: 50 audio_filtering_config: type: object properties: volume_threshold: type: number format: float minimum: 0 maximum: 100 transcript_filtering_config: type: object properties: remove_disfluencies: type: boolean replacements: type: array items: type: object properties: from: type: string to: type: string required: - from - to enable_partials: type: boolean default: false enable_entities: type: boolean default: true operating_point: type: string enum: - standard - enhanced punctuation_overrides: type: object properties: permitted_marks: type: array description: The punctuation marks which the client is prepared to accept in transcription output, or the special value 'all' (the default). Unsupported marks are ignored. This value is used to guide the transcription process. items: pattern: ^(.|all)$ type: string sensitivity: type: number description: Ranges between zero and one. Higher values will produce more punctuation. The default is 0.5. format: float maximum: 1 minimum: 0 conversation_config: type: object properties: end_of_utterance_silence_trigger: type: number format: float minimum: 0 maximum: 2 default: 0 description: This mode will detect when a speaker has stopped talking. The end_of_utterance_silence_trigger is the time in seconds after which the server will assume that the speaker has finished speaking, and will emit an EndOfUtterance message. A value of 0 disables the feature. required: - language title: Speechmatics Real-time Transcription Settings description: 'You must specify `language` (e.g `en`) Docs: https://docs.speechmatics.com/rt-api-ref#transcription-config' elevenlabs_streaming: type: object properties: model_id: description: The model to use for transcription. type: string default: eleven_whisper_v2_realtime language_code: description: ISO 639-1 two-letter language code. When not specified, the model auto-detects the language. type: string previous_text: description: Text from a previous transcription session to provide context for the model. Sent in the first message to the WebSocket. type: string title: ElevenLabs Real-time Transcription Settings description: 'Docs: https://elevenlabs.io/docs/api-reference/speech-to-text' NewDesktopSdkUploadStatusCodeEnum: enum: - pending - recording_started - recording_ended - uploading - complete - failed type: string description: '* `pending` - Pending * `recording_started` - Recording Started * `recording_ended` - Recording Ended * `uploading` - Uploading * `complete` - Complete * `failed` - Failed' DesktopSdkTranscriptArtifactRequest: type: object properties: metadata: type: object additionalProperties: type: string provider: $ref: '#/components/schemas/DesktopSdkTranscriptProviderRequest' required: - provider BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointWebhookRequest: allOf: - $ref: '#/components/schemas/BotRecordingConfigRealtimeEndpointShared' - $ref: '#/components/schemas/BotRecordingConfigRealtimeEndpointWebhookRequest' BotRecordingConfigRealtimeEndpointDesktopSdkCallbackRequest: type: object properties: events: type: array items: type: string enum: - participant_events.join - participant_events.leave - participant_events.update - participant_events.speech_on - participant_events.speech_off - participant_events.webcam_on - participant_events.webcam_off - participant_events.microphone_on - participant_events.microphone_off - participant_events.screenshare_on - participant_events.screenshare_off - participant_events.chat_message - transcript.data - transcript.partial_data - transcript.provider_data - video_separate_png.data - video_separate_h264.data - audio_mixed_raw.data - audio_separate_raw.data description: The events to send to the realtime endpoint. required: - events BotRecordingConfigRealtimeEndpointShared: type: object properties: metadata: type: object additionalProperties: type: string type: allOf: - $ref: '#/components/schemas/BotRecordingConfigRealtimeEndpointSharedTypeEnum' description: 'The type of the realtime endpoint. * `rtmp` - Rtmp * `websocket` - Websocket * `webhook` - Webhook * `desktop_sdk_callback` - Desktop Sdk Callback' required: - type DesktopSdkUploadRequest: type: object properties: recording_config: allOf: - $ref: '#/components/schemas/DesktopSdkRecordingConfigRequest' writeOnly: true description: Configure the recording generated by the SDK. _1080p: type: boolean writeOnly: true title: ' 1080p' metadata: type: object additionalProperties: type: string BotRecordingConfigRealtimeEndpointRtmpRequest: type: object properties: url: type: string minLength: 1 description: The URL of the realtime endpoint. format: uri events: type: array items: type: string enum: - video_mixed_flv.data description: The events to send to the realtime endpoint. required: - events - url VideoMixedParticipantVideoWhenScreenshareEnum: enum: - hide - beside - overlap type: string description: '* `hide` - hide * `beside` - beside * `overlap` - overlap' BotRecordingConfigRetentionSharedTypeEnum: enum: - timed - forever type: string description: '* `timed` - Timed * `forever` - Forever' BotRecordingConfigRealtimeEndpointWebhookRequest: type: object properties: url: type: string minLength: 1 description: The URL of the realtime endpoint. format: uri events: type: array items: type: string enum: - participant_events.join - participant_events.leave - participant_events.update - participant_events.speech_on - participant_events.speech_off - participant_events.webcam_on - participant_events.webcam_off - participant_events.microphone_on - participant_events.microphone_off - participant_events.screenshare_on - participant_events.screenshare_off - participant_events.chat_message - transcript.data - transcript.partial_data - transcript.provider_data description: The events to send to the realtime endpoint. required: - events - url BotRecordingConfigRealtimeEndpointRequest: oneOf: - $ref: '#/components/schemas/BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointRtmpRequest' - $ref: '#/components/schemas/BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointWebsocketRequest' - $ref: '#/components/schemas/BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointWebhookRequest' - $ref: '#/components/schemas/BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointDesktopSdkCallbackRequest' discriminator: propertyName: type mapping: rtmp: '#/components/schemas/BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointRtmpRequest' websocket: '#/components/schemas/BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointWebsocketRequest' webhook: '#/components/schemas/BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointWebhookRequest' desktop_sdk_callback: '#/components/schemas/BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointDesktopSdkCallbackRequest' securitySchemes: tokenAuth: type: apiKey in: header name: Authorization description: Token-based authentication with required prefix "Token" CalendarJwtAuthentication: type: apiKey in: header name: x-recallcalendarauthtoken x-provenance: method: searched source: https://docs.recall.ai/reference harvested: '2026-10-14' tool: harvest-readme-openapi.py note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored. assembled_from: - https://docs.recall.ai/reference/audio_mixed_destroy.md - https://docs.recall.ai/reference/audio_mixed_list.md - https://docs.recall.ai/reference/audio_mixed_partial_update.md - https://docs.recall.ai/reference/audio_mixed_retrieve.md - https://docs.recall.ai/reference/audio_separate_destroy.md - https://docs.recall.ai/reference/audio_separate_list.md - https://docs.recall.ai/reference/audio_separate_partial_update.md - https://docs.recall.ai/reference/audio_separate_retrieve.md - https://docs.recall.ai/reference/billing_usage_retrieve.md - https://docs.recall.ai/reference/bot_create.md - https://docs.recall.ai/reference/bot_delete_media_create.md - https://docs.recall.ai/reference/bot_destroy.md - https://docs.recall.ai/reference/bot_leave_call_create.md - https://docs.recall.ai/reference/bot_list.md - https://docs.recall.ai/reference/bot_output_audio_create.md - https://docs.recall.ai/reference/bot_output_audio_destroy.md - https://docs.recall.ai/reference/bot_output_media_create.md - https://docs.recall.ai/reference/bot_output_media_destroy.md - https://docs.recall.ai/reference/bot_output_screenshare_create.md - https://docs.recall.ai/reference/bot_output_screenshare_destroy.md - https://docs.recall.ai/reference/bot_output_video_create.md - https://docs.recall.ai/reference/bot_output_video_destroy.md - https://docs.recall.ai/reference/bot_partial_update.md - https://docs.recall.ai/reference/bot_pause_recording_create.md - https://docs.recall.ai/reference/bot_pin_participant_create.md - https://docs.recall.ai/reference/bot_resume_recording_create.md - https://docs.recall.ai/reference/bot_retrieve.md - https://docs.recall.ai/reference/bot_send_chat_message_create.md - https://docs.recall.ai/reference/bot_start_recording_create.md - https://docs.recall.ai/reference/bot_stop_recording_create.md - https://docs.recall.ai/reference/calendar_authenticate_create.md - https://docs.recall.ai/reference/calendar_events_bot_create.md - https://docs.recall.ai/reference/calendar_events_bot_destroy.md - https://docs.recall.ai/reference/calendar_events_list.md - https://docs.recall.ai/reference/calendar_events_retrieve.md - https://docs.recall.ai/reference/calendar_meetings_list.md - https://docs.recall.ai/reference/calendar_meetings_refresh_create.md - https://docs.recall.ai/reference/calendar_meetings_retrieve.md - https://docs.recall.ai/reference/calendar_meetings_update.md - https://docs.recall.ai/reference/calendar_user_destroy.md - https://docs.recall.ai/reference/calendar_user_disconnect_create.md - https://docs.recall.ai/reference/calendar_user_retrieve.md - https://docs.recall.ai/reference/calendar_user_update.md - https://docs.recall.ai/reference/calendar_users_list.md - https://docs.recall.ai/reference/calendars_access_token_create.md - https://docs.recall.ai/reference/calendars_create.md - https://docs.recall.ai/reference/calendars_destroy.md - https://docs.recall.ai/reference/calendars_list.md - https://docs.recall.ai/reference/calendars_partial_update.md - https://docs.recall.ai/reference/calendars_retrieve.md - https://docs.recall.ai/reference/google_login_groups_create.md - https://docs.recall.ai/reference/google_login_groups_destroy.md - https://docs.recall.ai/reference/google_login_groups_list.md - https://docs.recall.ai/reference/google_login_groups_partial_update.md - https://docs.recall.ai/reference/google_login_groups_retrieve.md - https://docs.recall.ai/reference/google_login_groups_update.md - https://docs.recall.ai/reference/google_logins_create.md - https://docs.recall.ai/reference/google_logins_destroy.md - https://docs.recall.ai/reference/google_logins_list.md - https://docs.recall.ai/reference/google_logins_partial_update.md - https://docs.recall.ai/reference/google_logins_retrieve.md - https://docs.recall.ai/reference/google_logins_update.md - https://docs.recall.ai/reference/meeting_direct_connect_create.md - https://docs.recall.ai/reference/meeting_direct_connect_list.md - https://docs.recall.ai/reference/meeting_direct_connect_retrieve.md - https://docs.recall.ai/reference/meeting_metadata_destroy.md - https://docs.recall.ai/reference/meeting_metadata_list.md - https://docs.recall.ai/reference/meeting_metadata_partial_update.md - https://docs.recall.ai/reference/meeting_metadata_retrieve.md - https://docs.recall.ai/reference/participant_events_destroy.md - https://docs.recall.ai/reference/participant_events_list.md - https://docs.recall.ai/reference/participant_events_partial_update.md - https://docs.recall.ai/reference/participant_events_retrieve.md - https://docs.recall.ai/reference/realtime_endpoint_list.md - https://docs.recall.ai/reference/realtime_endpoint_partial_update.md - https://docs.recall.ai/reference/realtime_endpoint_retrieve.md - https://docs.recall.ai/reference/recording_create_transcript_create.md - https://docs.recall.ai/reference/recording_destroy.md - https://docs.recall.ai/reference/recording_list.md - https://docs.recall.ai/reference/recording_partial_update.md - https://docs.recall.ai/reference/recording_retrieve.md - https://docs.recall.ai/reference/sdk_upload_create.md - https://docs.recall.ai/reference/sdk_upload_list.md - https://docs.recall.ai/reference/sdk_upload_retrieve.md - https://docs.recall.ai/reference/transcript_destroy.md - https://docs.recall.ai/reference/transcript_list.md - https://docs.recall.ai/reference/transcript_partial_update.md - https://docs.recall.ai/reference/transcript_retrieve.md - https://docs.recall.ai/reference/video_mixed_destroy.md - https://docs.recall.ai/reference/video_mixed_list.md - https://docs.recall.ai/reference/video_mixed_partial_update.md - https://docs.recall.ai/reference/video_mixed_retrieve.md - https://docs.recall.ai/reference/video_separate_destroy.md - https://docs.recall.ai/reference/video_separate_list.md - https://docs.recall.ai/reference/video_separate_partial_update.md - https://docs.recall.ai/reference/video_separate_retrieve.md - https://docs.recall.ai/reference/zoom_meetings_to_credentials_list.md - https://docs.recall.ai/reference/zoom_oauth_app_logs_list.md - https://docs.recall.ai/reference/zoom_oauth_apps_create.md - https://docs.recall.ai/reference/zoom_oauth_apps_destroy.md - https://docs.recall.ai/reference/zoom_oauth_apps_list.md - https://docs.recall.ai/reference/zoom_oauth_apps_partial_update.md - https://docs.recall.ai/reference/zoom_oauth_apps_retrieve.md - https://docs.recall.ai/reference/zoom_oauth_credential_logs_list.md - https://docs.recall.ai/reference/zoom_oauth_credentials_access_token_retrieve.md - https://docs.recall.ai/reference/zoom_oauth_credentials_create.md - https://docs.recall.ai/reference/zoom_oauth_credentials_destroy.md - https://docs.recall.ai/reference/zoom_oauth_credentials_list.md - https://docs.recall.ai/reference/zoom_oauth_credentials_retrieve.md - https://docs.recall.ai/reference/zoom_oauth_credentials_sync_meetings_create.md - https://docs.recall.ai/reference/zoom_oauth_credentials_validate_create.md merge: pages: 111 deduped: 2254 conflicts_kept_first: 0