{"openapi":"3.1.0","info":{"title":"Recall AI (BYOK) API","version":"0.1.0","description":"Recall AI (BYOK) lets an AI assistant read your own Recall AI data through the Recall AI API with a key you supply (API key). Read-only: 7 tools (list_bots, get_bot, list_recordings, list_transcripts, list_calendars, list_calendar_events, list_calendar_users). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever sent to...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-recall.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-recall/docs"},"termsOfService":"https://connectorbay.com/byok-recall/terms"},"servers":[{"url":"https://byok-recall.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-recall/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_bots":{"post":{"operationId":"list_bots","summary":"List meeting bots with meeting URL, name, planned join time, status history and recordings, filtered by join-time window","description":"List meeting bots with meeting URL, name, planned join time, status history and recordings, filtered by join-time window or meeting URL; 'next' holds the following page. Use for \"Which Recall bots joined meetings today and what is their status\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The Recall.ai region your workspace and API key live in: us-east-1, us-west-2, eu-central-1 or ap-northeast-1 (shown in the dashboard URL).","enum":["us-east-1","us-west-2","eu-central-1","ap-northeast-1"],"title":"Region","type":"string"},"join_at_after":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only bots scheduled to join on or after this date or time (ISO 8601).","title":"Join At After"},"join_at_before":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only bots scheduled to join on or before this date or time (ISO 8601).","title":"Join At Before"},"meeting_url":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Only bots for this exact meeting URL.","title":"Meeting Url"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["region"],"title":"list_botsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_bot":{"post":{"operationId":"get_bot","summary":"Get one meeting bot: meeting URL, name, planned join time, full status history, recordings and metadata. Use for \"What h","description":"Get one meeting bot: meeting URL, name, planned join time, full status history, recordings and metadata. Use for \"What happened to my Recall bot in the meeting\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The Recall.ai region your workspace and API key live in: us-east-1, us-west-2, eu-central-1 or ap-northeast-1 (shown in the dashboard URL).","enum":["us-east-1","us-west-2","eu-central-1","ap-northeast-1"],"title":"Region","type":"string"},"bot_id":{"description":"Bot ID as returned by list_bots (id), a UUID.","maxLength":80,"title":"Bot Id","type":"string"}},"required":["region","bot_id"],"title":"get_botArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_recordings":{"post":{"operationId":"list_recordings","summary":"List recordings with creation, start and completion times, status, expiry and the bot that made them (media links are no","description":"List recordings with creation, start and completion times, status, expiry and the bot that made them (media links are not returned). Use for \"Which Recall recordings finished processing\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The Recall.ai region your workspace and API key live in: us-east-1, us-west-2, eu-central-1 or ap-northeast-1 (shown in the dashboard URL).","enum":["us-east-1","us-west-2","eu-central-1","ap-northeast-1"],"title":"Region","type":"string"},"bot_id":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Only recordings of this bot ID.","title":"Bot Id"},"status_code":{"anyOf":[{"enum":["done","failed","paused","processing"],"type":"string"},{"type":"null"}],"default":null,"description":"Only recordings in this status.","title":"Status Code"},"created_at_after":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only recordings created after this ISO 8601 time.","title":"Created At After"},"created_at_before":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only recordings created before this ISO 8601 time.","title":"Created At Before"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the cursor query value inside the next URL of the previous answer (leave empty for the first page).","title":"Cursor"}},"required":["region"],"title":"list_recordingsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_transcripts":{"post":{"operationId":"list_transcripts","summary":"List transcripts as records with recording, creation time, status, provider and metadata (the spoken text itself is not ","description":"List transcripts as records with recording, creation time, status, provider and metadata (the spoken text itself is not returned). Use for \"Which Recall transcripts failed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The Recall.ai region your workspace and API key live in: us-east-1, us-west-2, eu-central-1 or ap-northeast-1 (shown in the dashboard URL).","enum":["us-east-1","us-west-2","eu-central-1","ap-northeast-1"],"title":"Region","type":"string"},"recording_id":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Only transcripts of this recording ID.","title":"Recording Id"},"status_code":{"anyOf":[{"enum":["done","failed","processing"],"type":"string"},{"type":"null"}],"default":null,"description":"Only transcripts in this status.","title":"Status Code"},"created_at_after":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only transcripts created after this ISO 8601 time.","title":"Created At After"},"created_at_before":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only transcripts created before this ISO 8601 time.","title":"Created At Before"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the cursor query value inside the next URL of the previous answer (leave empty for the first page).","title":"Cursor"}},"required":["region"],"title":"list_transcriptsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_calendars":{"post":{"operationId":"list_calendars","summary":"List connected calendars (Google or Outlook) with platform, email, connection status and timestamps (OAuth secrets are n","description":"List connected calendars (Google or Outlook) with platform, email, connection status and timestamps (OAuth secrets are not returned). Use for \"Which calendars are connected to my Recall workspace\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The Recall.ai region your workspace and API key live in: us-east-1, us-west-2, eu-central-1 or ap-northeast-1 (shown in the dashboard URL).","enum":["us-east-1","us-west-2","eu-central-1","ap-northeast-1"],"title":"Region","type":"string"},"platform":{"anyOf":[{"enum":["google_calendar","microsoft_outlook"],"type":"string"},{"type":"null"}],"default":null,"description":"Only calendars of this platform.","title":"Platform"},"status":{"anyOf":[{"enum":["connected","connecting","disconnected"],"type":"string"},{"type":"null"}],"default":null,"description":"Only calendars in this connection status.","title":"Status"},"email":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only calendars of this email address.","title":"Email"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the cursor query value inside the next URL of the previous answer (leave empty for the first page).","title":"Cursor"}},"required":["region"],"title":"list_calendarsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_calendar_events":{"post":{"operationId":"list_calendar_events","summary":"List events of one connected calendar with start and end time, meeting URL, meeting platform and the bots scheduled for ","description":"List events of one connected calendar with start and end time, meeting URL, meeting platform and the bots scheduled for them. Use for \"What meetings are on my connected calendar and are bots scheduled\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The Recall.ai region your workspace and API key live in: us-east-1, us-west-2, eu-central-1 or ap-northeast-1 (shown in the dashboard URL).","enum":["us-east-1","us-west-2","eu-central-1","ap-northeast-1"],"title":"Region","type":"string"},"calendar_id":{"description":"Calendar ID as returned by list_calendars (id).","maxLength":80,"title":"Calendar Id","type":"string"},"start_time__gte":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only events starting on or after this ISO 8601 time.","title":"Start Time  Gte"},"start_time__lte":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only events starting on or before this ISO 8601 time.","title":"Start Time  Lte"},"is_deleted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to list only deleted events.","title":"Is Deleted"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the cursor query value inside the next URL of the previous answer (leave empty for the first page).","title":"Cursor"}},"required":["region","calendar_id"],"title":"list_calendar_eventsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_calendar_users":{"post":{"operationId":"list_calendar_users","summary":"List calendar users (v1 calendars) with external ID, connected platforms and recording preferences. Use for \"Which calen","description":"List calendar users (v1 calendars) with external ID, connected platforms and recording preferences. Use for \"Which calendar users exist in my Recall account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"The Recall.ai region your workspace and API key live in: us-east-1, us-west-2, eu-central-1 or ap-northeast-1 (shown in the dashboard URL).","enum":["us-east-1","us-west-2","eu-central-1","ap-northeast-1"],"title":"Region","type":"string"},"email":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only the calendar user connected with this email.","title":"Email"}},"required":["region"],"title":"list_calendar_usersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}