Webhook Payloads
New meeting content ready
Webhook sent to the URL you register in Fathom settings.
postWebhooknewMeeting
Headers
webhook-idstring required
Example:msg_2x2zwLOcWaRTzsLK8KtbQt1FTk9
Unique message identifier for the webhook message. This identifier is unique across all messages, but will be the same when the same webhook is being resent (e.g. due to a previous failure).
webhook-timestampinteger required
Example:1712345678
Timestamp in seconds since epoch.
webhook-signaturestring required
Example:v1,BKQR1BIFjiNPdfpqM3+FH/YckKhX7WIq4/KK6Cc5aDY=
Signature with version prefix and base64-encoded value. Format is <version>,<base64_signature>. Multiple signatures may be space-delimited (e.g. v1,RmF0aG9t v2,QVBJ). How to verify webhook signatures.
Payload
Example payload
{
"title": "Quarterly Business Review",
"meeting_title": "QBR 2025 Q1",
"meeting_type": "Quarterly Business Review",
"recording_id": 123456789,
"url": "https://fathom.video/xyz123",
"meeting_url": "https://us02web.zoom.us/j/123456789",
"share_url": "https://fathom.video/share/xyz123",
"created_at": "2025-03-01T17:01:30Z",
"scheduled_start_time": "2025-03-01T16:00:00Z",
"scheduled_end_time": "2025-03-01T17:00:00Z",
"recording_start_time": "2025-03-01T16:01:12Z",
"recording_end_time": "2025-03-01T17:00:55Z",
"calendar_invitees_domains_type": "one_or_more_external",
"shared_with": "single_team",
"transcript_language": "en",
"transcript": [
{
"speaker": {
"display_name": "Alice Johnson",
"matched_calendar_invitee_email": "alice.johnson@acme.com"
},
"text": "Let's revisit the budget allocations.",
"timestamp": "00:05:32"
}
],
"default_summary": {
"template_name": "general",
"markdown_formatted": "## Summary\nWe reviewed Q1 OKRs, identified budget risks, and agreed to revisit projections next month.\n"
},
"action_items": [
{
"description": "Email revised proposal to client",
"recording_timestamp": "00:10:45",
"recording_playback_url": "https://fathom.video/calls/xyz123?timestamp=645",
"assignee": {
"name": "Alice Johnson",
"email": "alice.johnson@acme.com",
"team": "Marketing"
}
}
],
"highlights": [
{
"type": "Objection",
"summary": "Pushed back on price",
"text": "They pushed back hard on the price",
"start_time": 16,
"end_time": 27.5
}
],
"calendar_invitees": [
{
"name": "Alice Johnson",
"matched_speaker_display_name": "Alice Johnson",
"email": "alice.johnson@acme.com",
"email_domain": "acme.com"
}
],
"recorded_by": {
"name": "Alice Johnson",
"email": "alice.johnson@acme.com",
"email_domain": "acme.com",
"team": "Marketing"
},
"crm_matches": {
"contacts": [
{
"name": "Jane Smith",
"email": "jane.smith@client.com",
"record_url": "https://app.hubspot.com/contacts/123"
}
],
"companies": [
{
"name": "Acme Corp",
"record_url": "https://app.hubspot.com/companies/456"
}
],
"deals": [
{
"name": "Q1 Renewal",
"amount": 50000,
"record_url": "https://app.hubspot.com/deals/789"
}
],
"error": "no CRM connected"
}
}Response
Return any 2xx code to acknowledge receipt.
Changes
Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.