Recall.ai · Schema
BotRecordingConfigRequest
Meeting BotsRecordingTranscriptionVideo ConferencingZoomGoogle MeetMicrosoft TeamsReal-TimeArtificial IntelligenceInfrastructure
Properties
| Name | Type | Description |
|---|---|---|
| transcript | object | Specify this to capture transcript of the meeting as part of the recording. Supports: - [Recall.ai Transcription](https://docs.recall.ai/docs/recallai-transcription) - [3rd-party AI transcription prov |
| realtime_endpoints | array | Add endpoints here to receive data (e.g transcript, participant events) from the recording in realtime during the meeting. Default: `[]` |
| retention | object | Specify the retention policy for the recording. **[Read more in this guide](https://docs.recall.ai/docs/storage-and-playback)** |
| video_mixed_layout | object | The layout of the mixed video output. * `speaker_view` - speaker_view * `gallery_view` - gallery_view * `gallery_view_v2` - gallery_view_v2 * `audio_only` - audio_only |
| video_mixed_mp4 | object | Capture mixed video of the meeting as part of the recording. **This is enabled by default**. Default: `{}` |
| participant_events | object | Capture participant events as part of the recording. **This is enabled by default**. Default: `{}` |
| meeting_metadata | object | Capture meeting metadata as part of the recording. **This is enabled by default**. Default: `{}` |
| video_mixed_participant_video_when_screenshare | object | 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` - overla |
| start_recording_on | object | Specify when automatic recording should start. *call_join* - Bot will start recording as soon as it joins the call. *participant_join* - Bot will start recording when the first participant joins the c |
| include_bot_in_recording | object | |
| metadata | object | |
| audio_mixed_raw | object | Specify this to capture mixed audio in raw format of the meeting. Default: `null` |
| audio_mixed_mp3 | object | Specify this to capture mixed audio in the mp3 format of the meeting Default: `null` |
| video_separate_mp4 | object | Specify this to capture separate video in mp4 format for each participant in the meeting. Only supported with video_mixed_layout='gallery_view_v2'. **[Read more in this guide](https://docs.recall.ai/d |
| audio_separate_raw | object | Specify this to capture separate audio in raw format for each participant in the meeting(**limited support**). **[Read more in this guide](https://docs.recall.ai/docs/how-to-get-separate-audio-per-par |
| audio_separate_mp3 | object | Specify this to capture separate audio in mp3 format for each participant in the meeting. **[Read more in this guide](https://docs.recall.ai/docs/how-to-get-separate-audio-per-participant-async)** Def |
| video_mixed_flv | object | Specify this to capture mixed video in flv format(**required for rtmp streaming). Default: `null` |
| video_separate_png | object | Specify this to capture separate video in png format for each participant in the meeting. Only supported with video_mixed_layout='gallery_view_v2'. **[Read more in this guide](https://docs.recall.ai/d |
| video_separate_h264 | object | Specify this to capture separate video in compressed h264 for each participant in the meeting. **[Read more in this guide](https://docs.recall.ai/docs/how-to-get-separate-videos-per-participant-realti |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/recall-ai/main/json-schema/recall-ai-bot-recording-config-request-schema.json",
"title": "BotRecordingConfigRequest",
"x-generated": "2026-10-14",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/recall-ai-api-openapi.yml#/components/schemas/BotRecordingConfigRequest",
"type": "object",
"properties": {
"transcript": {
"allOf": [
{
"$ref": "#/$defs/BotRecordingConfigTranscriptArtifactRequest"
}
],
"nullable": true,
"description": "Specify this to capture transcript of the meeting as part of the recording. Supports:\n- [Recall.ai Transcription](https://docs.recall.ai/docs/recallai-transcription)\n- [3rd-party AI transcription providers](https://docs.recall.ai/docs/ai-transcription)\n- [meeting caption transcription](https://docs.recall.ai/docs/meeting-caption-transcription)\n\n **[Read more about real-time transcription.](https://docs.recall.ai/docs/bot-real-time-transcription)**\n\nDefault: `null`\n\n"
},
"realtime_endpoints": {
"type": "array",
"items": {
"$ref": "#/$defs/BotRecordingConfigRealtimeEndpointRequest"
},
"default": [],
"description": "Add endpoints here to receive data (e.g transcript, participant events) from the recording in realtime during the meeting.\n\nDefault: `[]`\n\n"
},
"retention": {
"allOf": [
{
"$ref": "#/$defs/BotRecordingConfigRetentionRequest"
}
],
"nullable": true,
"description": "Specify the retention policy for the recording. **[Read more in this guide](https://docs.recall.ai/docs/storage-and-playback)**"
},
"video_mixed_layout": {
"allOf": [
{
"$ref": "#/$defs/VideoMixedLayoutEnum"
}
],
"default": "speaker_view",
"description": "The layout of the mixed video output.\n\n* `speaker_view` - speaker_view\n* `gallery_view` - gallery_view\n* `gallery_view_v2` - gallery_view_v2\n* `audio_only` - audio_only"
},
"video_mixed_mp4": {
"allOf": [
{
"$ref": "#/$defs/BotRecordingConfigBaseArtifactRequest"
}
],
"nullable": true,
"description": "Capture mixed video of the meeting as part of the recording. **This is enabled by default**.\n\nDefault: `{}`\n\n"
},
"participant_events": {
"allOf": [
{
"$ref": "#/$defs/BotRecordingConfigBaseArtifactRequest"
}
],
"nullable": true,
"default": {},
"description": "Capture participant events as part of the recording. **This is enabled by default**.\n\nDefault: `{}`\n\n"
},
"meeting_metadata": {
"allOf": [
{
"$ref": "#/$defs/BotRecordingConfigBaseArtifactRequest"
}
],
"nullable": true,
"default": {},
"description": "Capture meeting metadata as part of the recording. **This is enabled by default**.\n\nDefault: `{}`\n\n"
},
"video_mixed_participant_video_when_screenshare": {
"allOf": [
{
"$ref": "#/$defs/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\n\n* `hide` - hide\n* `beside` - beside\n* `overlap` - overlap"
},
"start_recording_on": {
"allOf": [
{
"$ref": "#/$defs/StartRecordingOnEnum"
}
],
"default": "participant_join",
"description": "Specify when automatic recording should start.\n*call_join* - Bot will start recording as soon as it joins the call.\n*participant_join* - Bot will start recording when the first participant joins the call. If a participant is already present when the bot joins, the bot will automatically start recording.\n*participant_speak* - Bot will start recording when the first participant starts talking.\n\n\n* `call_join` - call_join\n* `participant_join` - participant_join\n* `participant_speak` - participant_speak"
},
"include_bot_in_recording": {
"$ref": "#/$defs/BotIncludeInRecordingRequest"
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"audio_mixed_raw": {
"allOf": [
{
"$ref": "#/$defs/BotRecordingConfigBaseArtifactRequest"
}
],
"nullable": true,
"description": "Specify this to capture mixed audio in raw format of the meeting.\n\nDefault: `null`\n\n"
},
"audio_mixed_mp3": {
"allOf": [
{
"$ref": "#/$defs/BotRecordingConfigBaseArtifactRequest"
}
],
"nullable": true,
"description": "Specify this to capture mixed audio in the mp3 format of the meeting\n\nDefault: `null`\n\n"
},
"video_separate_mp4": {
"allOf": [
{
"$ref": "#/$defs/BotRecordingConfigBaseArtifactRequest"
}
],
"nullable": true,
"description": "Specify this to capture separate video in mp4 format for each participant in the meeting. Only supported with video_mixed_layout='gallery_view_v2'. **[Read more in this guide](https://docs.recall.ai/docs/how-to-get-separate-videos-per-participant-async)**\n\nDefault: `null`\n\n"
},
"audio_separate_raw": {
"allOf": [
{
"$ref": "#/$defs/BotRecordingConfigBaseArtifactRequest"
}
],
"nullable": true,
"description": "Specify this to capture separate audio in raw format for each participant in the meeting(**limited support**). **[Read more in this guide](https://docs.recall.ai/docs/how-to-get-separate-audio-per-participant-async)**\n\nDefault: `null`\n\n"
},
"audio_separate_mp3": {
"allOf": [
{
"$ref": "#/$defs/BotRecordingConfigBaseArtifactRequest"
}
],
"nullable": true,
"description": "Specify this to capture separate audio in mp3 format for each participant in the meeting. **[Read more in this guide](https://docs.recall.ai/docs/how-to-get-separate-audio-per-participant-async)**\n\nDefault: `null`\n\n"
},
"video_mixed_flv": {
"allOf": [
{
"$ref": "#/$defs/BotRecordingConfigBaseArtifactRequest"
}
],
"nullable": true,
"description": "Specify this to capture mixed video in flv format(**required for rtmp streaming). \n\nDefault: `null`\n\n"
},
"video_separate_png": {
"allOf": [
{
"$ref": "#/$defs/BotRecordingConfigBaseArtifactRequest"
}
],
"nullable": true,
"description": "Specify this to capture separate video in png format for each participant in the meeting. Only supported with video_mixed_layout='gallery_view_v2'. **[Read more in this guide](https://docs.recall.ai/docs/how-to-get-separate-videos-per-participant-realtime)**\n\nDefault: `null`\n\n"
},
"video_separate_h264": {
"allOf": [
{
"$ref": "#/$defs/BotRecordingConfigBaseArtifactRequest"
}
],
"nullable": true,
"description": "Specify this to capture separate video in compressed h264 for each participant in the meeting. **[Read more in this guide](https://docs.recall.ai/docs/how-to-get-separate-videos-per-participant-realtime)**\n\nDefault: `null`\n\n"
}
},
"$defs": {
"BotIncludeInRecordingRequest": {
"type": "object",
"properties": {
"audio": {
"type": "boolean",
"default": false,
"description": "Whether to record audio from the bot."
}
}
},
"BotRecordingConfigBaseArtifactRequest": {
"type": "object",
"properties": {
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
},
"BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointDesktopSdkCallbackRequest": {
"allOf": [
{
"$ref": "#/$defs/BotRecordingConfigRealtimeEndpointShared"
},
{
"$ref": "#/$defs/BotRecordingConfigRealtimeEndpointDesktopSdkCallbackRequest"
}
]
},
"BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointRtmpRequest": {
"allOf": [
{
"$ref": "#/$defs/BotRecordingConfigRealtimeEndpointShared"
},
{
"$ref": "#/$defs/BotRecordingConfigRealtimeEndpointRtmpRequest"
}
]
},
"BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointWebhookRequest": {
"allOf": [
{
"$ref": "#/$defs/BotRecordingConfigRealtimeEndpointShared"
},
{
"$ref": "#/$defs/BotRecordingConfigRealtimeEndpointWebhookRequest"
}
]
},
"BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointWebsocketRequest": {
"allOf": [
{
"$ref": "#/$defs/BotRecordingConfigRealtimeEndpointShared"
},
{
"$ref": "#/$defs/BotRecordingConfigRealtimeEndpointWebsocketRequest"
}
]
},
"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"
]
},
"BotRecordingConfigRealtimeEndpointRequest": {
"oneOf": [
{
"$ref": "#/$defs/BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointRtmpRequest"
},
{
"$ref": "#/$defs/BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointWebsocketRequest"
},
{
"$ref": "#/$defs/BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointWebhookRequest"
},
{
"$ref": "#/$defs/BotRecordingConfigRealtimeEndpointBotRecordingConfigRealtimeEndpointDesktopSdkCallbackRequest"
}
]
},
"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"
]
},
"BotRecordingConfigRealtimeEndpointShared": {
"type": "object",
"properties": {
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"type": {
"allOf": [
{
"$ref": "#/$defs/BotRecordingConfigRealtimeEndpointSharedTypeEnum"
}
],
"description": "The type of the realtime endpoint.\n\n* `rtmp` - Rtmp\n* `websocket` - Websocket\n* `webhook` - Webhook\n* `desktop_sdk_callback` - Desktop Sdk Callback"
}
},
"required": [
"type"
]
},
"BotRecordingConfigRealtimeEndpointSharedTypeEnum": {
"enum": [
"rtmp",
"websocket",
"webhook",
"desktop_sdk_callback"
],
"type": "string",
"description": "* `rtmp` - Rtmp\n* `websocket` - Websocket\n* `webhook` - Webhook\n* `desktop_sdk_callback` - Desktop Sdk Callback"
},
"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"
]
},
"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"
]
},
"BotRecordingConfigRetentionRequest": {
"type": "object",
"properties": {
"type": {
"allOf": [
{
"$ref": "#/$defs/BotRecordingConfigRetentionSharedTypeEnum"
}
],
"description": "The type of the retention policy.\n\n* `timed` - Timed\n* `forever` - Forever"
},
"hours": {
"type": "integer",
"minimum": 1,
"default": 168,
"description": "The number of hours to retain the recording."
}
},
"required": [
"type"
]
},
"BotRecordingConfigRetentionSharedTypeEnum": {
"enum": [
"timed",
"forever"
],
"type": "string",
"description": "* `timed` - Timed\n* `forever` - Forever"
},
"BotRecordingConfigTranscriptArtifactRequest": {
"type": "object",
"properties": {
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"provider": {
"allOf": [
{
"$ref": "#/$defs/BotRecordingConfigTranscriptProviderRequest"
}
],
"title": "Transcription Provider",
"description": "The **[transcription method](https://docs.recall.ai//docs/bot-transcription)** to get the transcript of the meeting."
},
"diarization": {
"$ref": "#/$defs/BotRecordingConfigTranscriptDiarizationRequest"
}
},
"required": [
"provider"
]
},
"BotRecordingConfigTranscriptDiarizationRequest": {
"type": "object",
"properties": {
"use_separate_streams_when_available": {
"type": "boolean",
"description": "Use separate audio streams(a.k.a perfect diarization) when available. This feature has limted support. **[Read more in this guide](https://docs.recall.ai/docs/perfect-diarization)**"
}
}
},
"BotRecordingConfigTranscriptProviderRequest": {
"type": "object",
"properties": {
"recallai_streaming": {
"allOf": [
{
"$ref": "#/$defs/RecallaiStreamingTranscriptionRequest"
}
],
"title": "RecallAI Real-time Transcription Settings",
"description": " **[Read more in this guide](https://docs.recall.ai/docs/recallai-transcription)**"
},
"assembly_ai_async_chunked": {
"properties": {
"audio_end_at": {
"x-label": "Audio end at",
"description": "The point in time, in milliseconds, to stop transcribing in your media file. See [Set the start and end of the transcript](https://www.assemblyai.com/docs/pre-recorded-audio/set-the-start-and-end-of-the-transcript) for more details.",
"type": "integer"
},
"audio_start_from": {
"x-label": "Audio start from",
"description": "The point in time, in milliseconds, to begin transcribing in your media file. See [Set the start and end of the transcript](https://www.assemblyai.com/docs/pre-recorded-audio/set-the-start-and-end-of-the-transcript) for more details.",
"type": "integer"
},
"auto_chapters": {
"x-label": "Auto chapters",
"description": "Enable [Auto Chapters](https://www.assemblyai.com/docs/speech-understanding/auto-chapters), can be true or false",
"type": "boolean",
"default": false
},
"auto_highlights": {
"x-label": "Key phrases",
"description": "Enable [Key Phrases](https://www.assemblyai.com/docs/speech-understanding/key-phrases), either true or false",
"type": "boolean",
"default": false
},
"content_safety": {
"x-label": "Content Moderation",
"description": "Enable [Content Moderation](https://www.assemblyai.com/docs/content-moderation), can be true or false",
"type": "boolean",
"default": false
},
"content_safety_confidence": {
"x-label": "Content Moderation confidence",
"description": "The confidence threshold for the [Content Moderation](https://www.assemblyai.com/docs/content-moderation) model. Values must be between 25 and 100.",
"type": "integer",
"default": 50,
"minimum": 25,
"maximum": 100
},
"custom_spelling": {
"x-label": "Custom spellings",
"description": "Customize how words are spelled and formatted using to and from values. See [Custom Spelling](https://www.assemblyai.com/docs/pre-recorded-audio/custom-spelling) for more details.",
"type": "array",
"items": {
"x-label": "Custom spelling",
"description": "Object containing words or phrases to replace, and the word or phrase to replace with",
"x-fern-sdk-group-name": "transcripts",
"type": "object",
"additionalProperties": false,
"properties": {
"from": {
"x-label": "From",
"description": "Words or phrases to replace",
"type": "array",
"items": {
"x-label": "Word or phrase",
"description": "Word or phrase to replace",
"type": "string"
}
},
"to": {
"x-label": "To",
"description": "Word to replace with",
"type": "string"
}
},
"required": [
"from",
"to"
]
}
},
"disfluencies": {
"x-label": "Disfluencies",
"description": "Transcribe [Filler Words](https://www.assemblyai.com/docs/pre-recorded-audio/filler-words), like \"umm\", in your media file; can be true or false",
"type": "boolean",
"default": false
},
"entity_detection": {
"x-label": "Entity Detection",
"description": "Enable [Entity Detection](https://www.assemblyai.com/docs/speech-understanding/entity-detection), can be true or false",
"type": "boolean",
"default": false
},
"filter_profanity": {
"x-label": "Filter profanity",
"description": "Filter profanity from the transcribed text, can be true or false. See [Profanity Filtering](https://www.assemblyai.com/docs/profanity-filtering) for more details.",
"type": "boolean",
"default": false
},
"format_text": {
"x-label": "Format text",
"description": "Enable [Text Formatting](https://www.assemblyai.com/docs/pre-recorded-audio), can be true or false",
"type": "boolean",
"default": true
},
"iab_categories": {
"x-label": "Topic Detection",
"description": "Enable [Topic Detection](https://www.assemblyai.com/docs/speech-understanding/topic-detection), can be true or false",
"type": "boolean",
"default": false
},
"keyterms_prompt": {
"x-label": "Keyterms prompt",
"description": "Improve accuracy with up to 200 (for Universal-2) or 1000 (for Universal-3-Pro) domain-specific words or phrases (maximum 6 words per phrase). See [Keyterms Prompting](https://www.assemblyai.com/docs/pre-recorded-audio/keyterms-prompting) for more details.\n",
"type": "array",
"items": {
"x-label": "Keyterm",
"type": "string"
}
},
"language_code": {
"x-label": "Language code",
"description": "The language of your audio file. Possible values are found in [Supported Languages](https://www.assemblyai.com/docs/pre-recorded-audio/supported-languages).\nThe default value is 'en_us'.\n",
"oneOf": [
{
"anyOf": [
{
"x-label": "Language code",
"type": "string",
"description": "The language of your audio file. Possible values are found in [Supported Languages](https://www.assemblyai.com/docs/pre-recorded-audio/supported-languages).\nThe default value is 'en_us'.\n",
"x-fern-sdk-group-name": "transcripts",
"enum": [
"en",
"en_au",
"en_uk",
"en_us",
"es",
"fr",
"de",
"it",
"pt",
"nl",
"af",
"sq",
"am",
"ar",
"hy",
"as",
"az",
"ba",
"eu",
"be",
"bn",
"bs",
"br",
"bg",
"my",
"ca",
"zh",
"hr",
"cs",
"da",
"et",
"fo",
"fi",
"gl",
"ka",
"el",
"gu",
"ht",
"ha",
"haw",
"he",
"hi",
"hu",
"is",
"id",
"ja",
"jw",
"kn",
"kk",
"km",
"ko",
"lo",
"la",
"lv",
"ln",
"lt",
"lb",
"mk",
"mg",
"ms",
"ml",
"mt",
"mi",
"mr",
"mn",
"ne",
"no",
"nn",
"oc",
"pa",
"ps",
"fa",
"pl",
"ro",
"ru",
"sa",
"sr",
"sn",
"sd",
"si",
"sk",
"sl",
"so",
"su",
"sw",
"sv",
"tl",
"tg",
"ta",
"tt",
"te",
"th",
"bo",
"tr",
"tk",
"uk",
"ur",
"uz",
"vi",
"cy",
"yi",
"yo"
],
"x-aai-enum": {
"en": {
"label": "English (global)"
},
"en_au": {
"label": "English (Australian)"
},
"en_uk": {
"label": "English (British)"
},
"en_us": {
"label": "English (US)"
},
"es": {
"label": "Spanish"
},
"fr": {
"label": "French"
},
"de": {
"label": "German"
},
"it": {
"label": "Italian"
},
"pt": {
"label": "Portuguese"
},
"nl": {
"label": "Dutch"
},
"af": {
"label": "Afrikaans"
},
"sq": {
"label": "Albanian"
},
"am": {
"label": "Amharic"
},
"ar": {
"label": "Arabic"
},
"hy": {
"label": "Armenian"
},
"as": {
"label": "Assamese"
},
"az": {
"label": "Azerbaijani"
},
"ba": {
"label": "Bashkir"
},
"eu": {
"label": "Basque"
},
"be": {
"label": "Belarusian"
},
"bn": {
"label": "Bengali"
},
"bs": {
"label": "Bosnian"
},
"br": {
"label": "Breton"
},
"bg": {
"label": "Bulgarian"
},
"my": {
"label": "Burmese"
},
"ca": {
"label": "Catalan"
},
"zh": {
"label": "Chinese"
},
"hr": {
"label": "Croatian"
},
"cs": {
"label": "Czech"
},
"da": {
"label": "Danish"
},
"et": {
"label": "Estonian"
},
"fo": {
"label": "Faroese"
},
"fi": {
"label": "Finnish"
},
"gl": {
"label": "Galician"
},
"ka": {
"label": "Georgian"
},
"el": {
"label": "Greek"
},
"gu": {
"label": "Gujarati"
},
"ht": {
"label": "Haitian"
},
"ha": {
"label": "Hausa"
},
"haw": {
"label": "Hawaiian"
},
"he": {
"label": "Hebrew"
},
"hi": {
"label": "Hindi"
},
"hu": {
"label": "Hungarian"
},
"is": {
"label": "Icelandic"
},
"id": {
"label": "Indonesian"
},
"ja": {
"label": "Japanese"
},
"jw": {
"label": "Javanese"
},
"kn": {
"label": "Kannada"
},
"kk": {
"label": "Kazakh"
},
"km": {
"label": "Khmer"
},
"ko": {
# --- truncated at 32 KB (146 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/recall-ai/refs/heads/main/json-schema/recall-ai-bot-recording-config-request-schema.json
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/recall-ai-bot-recording-config-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.