OSS-first docs
These docs teach the open system first: contracts, generated surfaces, runtimes, governance, and incremental adoption. Studio shows up as the operating layer on top, not as the source of truth.
Fathom External API for meetings, transcripts, and webhook events.
Source Definition
export const fathomIntegrationSpec = defineIntegration({
meta: {
key: 'meeting-recorder.fathom',
version: '1.0.0',
category: 'meeting-recorder',
title: 'Fathom Meeting Recorder',
description:
'Fathom External API for meetings, transcripts, and webhook events.',
domain: 'productivity',
owners: ['platform.integrations'],
tags: ['meeting-recorder', 'fathom', 'transcripts'],
stability: StabilityEnum.Experimental,
},
supportedModes: ['byok'],
transports: [
{ type: 'rest' },
{
type: 'webhook',
inbound: {
signatureHeader: 'x-fathom-signature',
signingAlgorithm: 'hmac-sha256',
},
},
],
preferredTransport: 'rest',
supportedAuthMethods: [
{ type: 'api-key' },
{
type: 'webhook-signing',
algorithm: 'hmac-sha256',
signatureHeader: 'x-fathom-signature',
},
],
capabilities: {
provides: [
{ key: 'meeting-recorder.meetings.read', version: '1.0.0' },
{ key: 'meeting-recorder.transcripts.read', version: '1.0.0' },
{ key: 'meeting-recorder.webhooks', version: '1.0.0' },
],
},
configSchema: {
schema: {
type: 'object',
properties: {
baseUrl: {
type: 'string',
description:
'Optional override for the Fathom API base URL. Defaults to https://api.fathom.ai/external/v1.',
},
webhookUrl: {
type: 'string',
description:
'Webhook destination URL used when registering Fathom webhooks.',
},
includeTranscript: {
type: 'boolean',
description: 'Include transcript data in Fathom webhook payloads.',
},
includeSummary: {
type: 'boolean',
description: 'Include summary data in Fathom webhook payloads.',
},
includeActionItems: {
type: 'boolean',
description: 'Include action items in Fathom webhook payloads.',
},
includeCrmMatches: {
type: 'boolean',
description: 'Include CRM matches in Fathom webhook payloads.',
},
triggeredFor: {
type: 'array',
items: { type: 'string' },
description:
'Recording scopes to trigger webhooks for (e.g., my_recordings).',
},
},
},
example: {
baseUrl: 'https://api.fathom.ai/external/v1',
webhookUrl: 'https://example.com/webhooks/fathom',
includeTranscript: true,
includeSummary: true,
includeActionItems: false,
includeCrmMatches: false,
triggeredFor: ['my_recordings'],
},
},
secretSchema: {
schema: {
type: 'object',
required: ['apiKey'],
properties: {
apiKey: {
type: 'string',
description: 'Fathom API key used in the X-Api-Key header.',
},
webhookSecret: {
type: 'string',
description:
'Optional webhook secret used to verify Fathom webhook signatures.',
},
},
},
example: {
apiKey: 'fathom-***',
webhookSecret: 'whsec_***',
},
},
healthCheck: {
method: 'list',
timeoutMs: 8000,
},
docsUrl: 'https://developers.fathom.ai/',
constraints: {
rateLimit: {
rpm: 60,
},
},
byokSetup: {
setupInstructions:
'Generate an API key in Fathom settings and optionally configure webhooks for meeting content readiness.',
keyRotationSupported: false,
quotaTrackingSupported: false,
},
});