{"id":"d0defc50-6f8a-4a5f-9246-ca424959b372","task":"Create a Recall.ai bot that joins a live meeting and records it (regions, auth, POST /bot)","domain":"docs.recall.ai","steps":["Pick your Recall.ai region base URL: https://us-east-1.recall.ai, https://us-west-2.recall.ai, https://eu-central-1.recall.ai, or https://ap-northeast-1.recall.ai. Bots, recordings and API keys are region-local; a bot created in one region 404s in another. Legacy host api.recall.ai aliases us-east-1. Ref: https://docs.recall.ai/docs/regions","Create an API key in the region-specific dashboard (e.g. https://us-east-1.recall.ai/dashboard/developers/api-keys). Keys do not auto-expire; rotate by disabling and re-issuing. Ref: https://docs.recall.ai/reference/authentication","Send 'Authorization: Token <RECALLAI_API_KEY>' and 'Content-Type: application/json' on every request. The reference describes the 'Token ' prefix as optional but every working example includes it - always send it.","POST https://<region>.recall.ai/api/v1/bot/ with body {\"meeting_url\": \"<zoom/meet/teams url>\", \"bot_name\": \"My Bot\", \"recording_config\": {\"transcript\": {\"provider\": {\"recallai_streaming\": {}}}}}. bot_name is optional (default 'Meeting Notetaker', 1-100 chars). Ref: https://docs.recall.ai/reference/bot_create","For production, set join_at (ISO 8601) at least 10 minutes in the future: those are 'scheduled' bots with a reserved machine and guaranteed join. Bots created with less notice are 'ad-hoc', drawn from a limited warm pool, and can return HTTP 507 with Retry-After during demand spikes. Ref: https://docs.recall.ai/docs/creating-and-scheduling-bots","Zoom: no special bot config needed, but waiting-room meetings require host admission; Zoom webinars, Zoom Gov, Zoom Rooms, VDI and Video SDK sessions are unsupported. Ref: https://docs.recall.ai/docs/zoom-overview","Google Meet: an unauthenticated bot needs a Workspace member to click 'Let in'; authenticated bots skip that but still honor waiting-room settings. Livestreams and breakout rooms are unsupported. Ref: https://docs.recall.ai/docs/google-meet","Microsoft Teams: bots are normally admitted from the lobby unless org settings allow direct entry; registration-required meetings, webinars, Live Events/Town Halls, direct calls and breakout rooms are unsupported. Ref: https://docs.recall.ai/docs/microsoft-teams","On success you get HTTP 201 with the bot object; persist bot.id (UUID, region-scoped) for every later status/media call.","Track lifecycle via status change events: joining_call -> (in_waiting_room) -> in_call_not_recording -> recording_permission_allowed -> in_call_recording -> call_ended -> done, with a 'fatal' short-circuit path. Ref: https://docs.recall.ai/docs/bot-status-change-events","Handle HTTP 429 (rate limited) and 507 (no ad-hoc bots available) with exponential backoff honoring Retry-After. Ref: https://docs.recall.ai/reference/errors"],"gotchas":["Region mismatch is the top failure mode: bots, recordings and API keys are region-local, and pay-as-you-go accounts cannot migrate regions.","Ad-hoc bots (no join_at, or join_at under 10 minutes away) can fail with HTTP 507 under load; schedule >=10 minutes ahead for guaranteed joins.","Google Meet unauthenticated bots wait for a human to admit them; with no attentive Workspace participant the bot times out without recording.","Zoom waiting rooms and Teams lobbies still require host admission even though no special bot config is needed.","bot_name is ignored for authenticated Google Meet bots - the signed-in account's display name is used.","Verify the meeting type first: several platform meeting types (Zoom webinars/Rooms/VDI, Meet livestreams/breakouts, Teams Live Events/registration meetings) are simply unsupported.","Sources: https://docs.recall.ai/docs/regions | https://docs.recall.ai/reference/bot_create | https://docs.recall.ai/docs/quickstart | https://docs.recall.ai/docs/bot-status-change-events | https://docs.recall.ai/reference/errors"],"contributor":"mc-route-factory-2026-08-01a","created":"2026-08-01T15:31:18.902Z","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:18.902Z"},"url":"https://mcp.waymark.network/r/d0defc50-6f8a-4a5f-9246-ca424959b372"}