Grok (xAI)

Set up Grok real-time transcription with the Recall.ai v1.10 API.

🚧

Important: This guide only applies to workspaces with v1.10 API access

The v1.10 API is only available to Recall accounts created before May 28, 2025.

Do not use this documentation unless the workspace has access to the v1.10 API. If the workspace creation date is unknown, stop and clarify. All other workspaces must use the v1.11 API documentation instead.

Use Grok (xAI) as a speech-to-text provider for real-time transcription with meeting bots using the Recall.ai v1.10 API.

Setup

  1. Create an xAI API key for speech-to-text transcription.
  2. Open the Recall.ai dashboard in the region where you create your bots, go to Transcription → Grok, and add your xAI API key. For example, use the us-west-2 Grok settings for bots created in us-west-2.
  3. Select grok in transcription_options.provider when creating your bot.

Adding the API key saves your provider credentials. You must also select the provider in your Create Bot request to enable transcription.

Quickstart: real-time transcription with meeting bots

Call Create Bot with transcription_options.provider set to grok. Put Grok-specific options inside transcription_options.grok. To receive live transcription webhooks, configure real_time_transcription.destination_url.

curl --request POST \
  --url https://RECALL_REGION.recall.ai/api/v1/bot/ \
  --header 'Authorization: RECALL_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "meeting_url": "MEETING_URL",
    "transcription_options": {
      "provider": "grok",
      "grok": {
        "interim_results": true
      }
    },
    "real_time_transcription": {
      "destination_url": "REAL_TIME_TRANSCRIPT_WEBHOOK_ENDPOINT",
      "partial_results": true
    }
  }'

Replace RECALL_REGION, RECALL_API_KEY, MEETING_URL, and REAL_TIME_TRANSCRIPT_WEBHOOK_ENDPOINT with your values. Use a valid meeting URL and a publicly reachable HTTPS webhook URL. The Authorization header contains your Recall.ai API key; the xAI API key is configured separately in the dashboard.

This example uses the v1.10 request format: transcription_options selects the provider and real_time_transcription configures webhook delivery.

Receive finalized and partial transcripts

The v1.10 API sends bot.transcription webhooks. Read data.transcript.is_final to distinguish finalized utterances (true) from partial updates (false). Replace partial text with the finalized result when it arrives.

To receive partial updates, enable both:

  • transcription_options.grok.interim_results: true
  • real_time_transcription.partial_results: true

Verify incoming webhook requests before processing them. See Setup and verification and Verifying requests from Recall.ai. Return a successful response promptly and process downstream work asynchronously to avoid delaying later transcript events.

You can also retrieve the transcript using Get Bot Transcript. During the call, this returns the transcript generated so far. For event payloads, failure handling, and transcript retrieval, see Real-Time Transcription.

Provider configuration

Set provider options inside transcription_options.grok. See Create Bot for the full list and current defaults.

OptionTypePurpose
modelstringxAI transcription model; defaults to grok-voice-transcribe-2.0.
languagestringLanguage code used for text formatting.
interim_resultsbooleanEnables interim results; defaults to true.
endpointingintegerSilence duration in milliseconds before an utterance is finalized; defaults to 400, range 0–5000.
keytermarray of stringsTerms to bias transcription toward; up to 100 terms.

For example, to add keyterms:

{
  "transcription_options": {
    "provider": "grok",
    "grok": {
      "interim_results": true,
      "keyterm": ["Recall.ai", "Grok"]
    }
  }
}

This fragment shows only the transcription settings. Keep meeting_url and real_time_transcription in your full request when receiving live webhooks. keyterm is an array even when you provide only one term.


Did this page help you?