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 accessThe 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
- Create an xAI API key for speech-to-text transcription.
- 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.
- Select
grokintranscription_options.providerwhen 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: truereal_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.
| Option | Type | Purpose |
|---|---|---|
model | string | xAI transcription model; defaults to grok-voice-transcribe-2.0. |
language | string | Language code used for text formatting. |
interim_results | boolean | Enables interim results; defaults to true. |
endpointing | integer | Silence duration in milliseconds before an utterance is finalized; defaults to 400, range 0–5000. |
keyterm | array of strings | Terms 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.
Updated 8 days ago
