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
View JSON Schema on GitHub

JSON Schema

recall-ai-bot-recording-config-request-schema.json Raw ↑
{
  "$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.
All 92 tools →

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.