{"openapi":"3.1.0","info":{"title":"Fathom (BYOK) API","version":"0.1.0","description":"Fathom (BYOK) lets an AI assistant read your own Fathom data through the Fathom API with a key you supply (Fathom API key). Read-only: 7 tools (list_meetings, get_meeting_summary, get_meeting_transcript, list_meeting_types, list_teams, list_team_members, list_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...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-fathom.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-fathom/docs"},"termsOfService":"https://connectorbay.com/byok-fathom/terms"},"servers":[{"url":"https://byok-fathom.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-fathom/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_meetings":{"post":{"operationId":"list_meetings","summary":"List your recorded meetings (newest first) with title, type, recording ID, links, times, recorder and invitee domain typ","description":"List your recorded meetings (newest first) with title, type, recording ID, links, times, recorder and invitee domain type; optionally with each meeting's AI summary, action items and highlights. Cursor-paged. Use for \"What meetings did Fathom record this week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from next_cursor of the previous answer for the next page; empty for the first page.","title":"Cursor"},"created_after":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only meetings created after this ISO 8601 time, for example 2026-10-01T00:00:00Z.","title":"Created After"},"created_before":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only meetings created before this ISO 8601 time.","title":"Created Before"},"meeting_type":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only meetings of this meeting type name (see list_meeting_types).","title":"Meeting Type"},"calendar_invitees_domains_type":{"anyOf":[{"enum":["all","only_internal","one_or_more_external"],"type":"string"},{"type":"null"}],"default":null,"description":"Only meetings with only internal invitees, or with one or more external ones.","title":"Calendar Invitees Domains Type"},"include_summary":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include each meeting's AI summary.","title":"Include Summary"},"include_action_items":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include each meeting's action items.","title":"Include Action Items"},"include_highlights":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include each meeting's highlights.","title":"Include Highlights"}},"title":"list_meetingsArguments","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_meeting_summary":{"post":{"operationId":"get_meeting_summary","summary":"Get the AI-generated summary (Markdown) of one recorded meeting. Use for \"Summarize Fathom recording 123456789\".","description":"Get the AI-generated summary (Markdown) of one recorded meeting. Use for \"Summarize Fathom recording 123456789\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"recording_id":{"description":"ID of the meeting recording (recording_id from list_meetings).","minimum":1,"title":"Recording Id","type":"integer"}},"required":["recording_id"],"title":"get_meeting_summaryArguments","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_meeting_transcript":{"post":{"operationId":"get_meeting_transcript","summary":"Get the transcript of one recorded meeting: speaker, text and timestamp for each utterance. Long transcripts may be cut ","description":"Get the transcript of one recorded meeting: speaker, text and timestamp for each utterance. Long transcripts may be cut off. Use for \"Show the transcript of Fathom recording 123456789\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"recording_id":{"description":"ID of the meeting recording (recording_id from list_meetings).","minimum":1,"title":"Recording Id","type":"integer"}},"required":["recording_id"],"title":"get_meeting_transcriptArguments","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_meeting_types":{"post":{"operationId":"list_meeting_types","summary":"List your organization's meeting types (active and inactive); use a name as the meeting_type filter of list_meetings. Us","description":"List your organization's meeting types (active and inactive); use a name as the meeting_type filter of list_meetings. Use for \"Which meeting types are set up in Fathom\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from next_cursor of the previous answer for the next page; empty for the first page.","title":"Cursor"}},"title":"list_meeting_typesArguments","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_teams":{"post":{"operationId":"list_teams","summary":"List the teams of your Fathom organization with name and creation time. Use for \"Which teams exist in Fathom\".","description":"List the teams of your Fathom organization with name and creation time. Use for \"Which teams exist in Fathom\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from next_cursor of the previous answer for the next page; empty for the first page.","title":"Cursor"}},"title":"list_teamsArguments","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_team_members":{"post":{"operationId":"list_team_members","summary":"List team members with name, email and creation time, optionally for one team. Use for \"Who is on the Sales team in Fath","description":"List team members with name, email and creation time, optionally for one team. Use for \"Who is on the Sales team in Fathom\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from next_cursor of the previous answer for the next page; empty for the first page.","title":"Cursor"},"team":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only members of this team name.","title":"Team"}},"title":"list_team_membersArguments","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_users":{"post":{"operationId":"list_users","summary":"List the users of the account with status and permissions (settings and view access). Only works for an account admin's ","description":"List the users of the account with status and permissions (settings and view access). Only works for an account admin's key. Use for \"Which users have admin access in Fathom\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from next_cursor of the previous answer for the next page; empty for the first page.","title":"Cursor"},"team":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only users of this team name.","title":"Team"},"status":{"anyOf":[{"enum":["active","deactivated","invited"],"type":"string"},{"type":"null"}],"default":null,"description":"Only users with this status.","title":"Status"},"settings_access":{"anyOf":[{"enum":["none","team_admin","account_admin"],"type":"string"},{"type":"null"}],"default":null,"description":"Only users with this settings access level.","title":"Settings Access"}},"title":"list_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}}}}