How to Test a Webhook via Terminal (Troubleshooting Guide)
This guide will help you successfully receive webhooks from calls recorded with Fathom. It provides some initial checks and shows you how to manually send a webhook event to your endpoint using Terminal.
Note: You can find our additional documentation on webhooks with Fathom in our API documentation: https://fathom-e4df0608.mintlify.app/
Why this matters:
If a webhook wasn’t received, you’ll want to determine whether:
The endpoint is misconfigured, inactive, or unreachable
or
The external system simply never sent the event
By simulating the webhook event yourself, you can confirm whether your endpoint is capable of receiving and processing requests and quickly narrow down whether the issue is with the webhook itself or with the system sending the event.
Initial Checks (Before Testing)
Please confirm the following:
Endpoint is configured as a POST endpoint
Not GET
Production URL is being used
Not a Test URL
If using n8n: the workflow toggle is green and says Active
Inactive workflows often return errors when engaged directly
The webhook URL displayed in Fathom’s settings page matches the intended destination
Simulating a Webhook Event
You can use the following cURL command to simulate a webhook event.
⚠️ Note for n8n users: if the response you get is Workflow started you'll need to check the execution in n8n (Executions/History) and inspect the run output/logs.
Important: Replace the following values
Replace https://server.cloud/webhook/<uuid> with:
The full URL of your listening endpoint
Replace these values with real data obtained from Fathom’s API via a GET request to the Meetings endpoint:
recording_id
url
share_url
⚠️ Important: Real Values Are Required
If you do not replace the example values, your endpoint may still return a 2xx response (e.g., 200 or 202).
This does not confirm that the workflow is working correctly.
A 2xx response only confirms that:
The endpoint received the request
The server accepted it
It does not confirm:
That the data was valid
That downstream logic executed correctly
That the workflow processed the real recording
To properly test your setup, you must use real recording_id, url, and share_url values from your Fathom account.
Otherwise, you may receive a false positive.
Mac / Linux
curl --request POST <https://server.cloud/webhook/><uuid> \\
--header "Content-Type: application/json" \\
--header "webhook-signature: test-signature" \\
--data '{"recording_id":123456789,"url":"<https://fathom.video/meeting/123456789","share_url":"https://fathom.video/share/abcde12345","type":"meeting_content_ready>"}'
Windows
curl -X POST <https://server.cloud/webhook/><uuid> ^
-H "Content-Type: application/json" ^
-H "webhook-signature: test-signature" ^
-d "{\\"recording_id\\":98765432,\\"url\\":\\"<https://fathom.video/meeting/123456789\\\\",\\\\"share_url\\\\":\\\\"https://fathom.video/share/abcde12345\\\\",\\\\"type\\\\":\\\\"meeting_content_ready\\\\"}">
