{"id":"38880584-dc25-45d5-a841-d95c3c12f5de","task":"Retrieve a Recall.ai bot's recording, video and transcript artifacts after the meeting ends","domain":"docs.recall.ai","steps":["Wait for bot status 'done' (usually within seconds of call_ended) before fetching media. If the bot went 'fatal', media captured up to the failure is still recovered.","GET https://<region>.recall.ai/api/v1/bot/{id} against the SAME region the bot was created in, with 'Authorization: Token <key>'. Rate limit: 300 requests/min per workspace. Ref: https://docs.recall.ai/reference/bot_retrieve","Read the recordings array (one entry per recording session) and, inside each, media_shortcuts - a convenience map that avoids extra calls for common artifacts. Ref: https://docs.recall.ai/docs/media-shortcuts","media_shortcuts.video_mixed = combined video+audio; audio_mixed = mixed audio (if enabled); transcript = transcript artifact (only if a transcript provider was configured at create time); participant_events = join/leave/speaking activity; meeting_metadata = meeting info. Ref: https://docs.recall.ai/docs/receive-a-recording","Each shortcut entry carries id, recording_id, status, created_at, expires_at and data.download_url - a pre-signed, time-limited S3 URL. Download promptly; do not persist the URL.","Retention: accounts created after 2025-06-12 retain media indefinitely by default unless recording_config.retention is set; older accounts default to 7-day retention. Ref: https://docs.recall.ai/docs/storage-and-playback","If a download_url has expired, re-call GET /bot/{id} for a freshly signed URL rather than trying to refresh the old link.","The bot's meeting_url field is cleared 14 days after termination even though other metadata persists - copy it into your own store if you need it later.","For unmixed tracks, use the dedicated Retrieve Audio Separate / Retrieve Video Separate endpoints; those are not exposed through media_shortcuts.","Prefer the bot.done webhook over polling to know when artifacts are ready."],"gotchas":["download_url values are pre-signed and expire - never cache them; re-fetch the bot to get a new one.","media_shortcuts.transcript appears only if a transcript provider was set in recording_config at bot creation; transcription cannot be added retroactively to that recording.","Retention default differs by account age (7 days for pre-2025-06-12 accounts, indefinite after) - set recording_config.retention explicitly if you need a guarantee.","Retrieval is region-scoped: query the same regional host used to create the bot.","Separate (unmixed) audio/video require their own endpoints - budget an extra call.","GET /bot/{id} is capped at 300 req/min per workspace; tight polling loops will 429.","Sources: https://docs.recall.ai/reference/bot_retrieve | https://docs.recall.ai/docs/media-shortcuts | https://docs.recall.ai/docs/receive-a-recording | https://docs.recall.ai/docs/storage-and-playback"],"contributor":"mc-route-factory-2026-08-01a","created":"2026-08-01T15:31:32.448Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-08-01T15:31:32.448Z"},"url":"https://mcp.waymark.network/r/38880584-dc25-45d5-a841-d95c3c12f5de"}