Fire delivers events to your system via webhooks. You must register your endpoint in the Fire dashboard before you can receive any events.
Register an endpoint
Open the Fire dashboard
Navigate to Settings → Endpoints.
Add a new endpoint
Click Add endpoint and fill in the following fields:| Field | Description |
|---|
| URL | The HTTPS URL where you want to receive events |
| Secret | A random string used to sign payloads — store this securely |
| Events | Select the events you want to receive (or leave as “All events”) |
Save and test
Save the endpoint. Use the Send test event button to verify that your endpoint is reachable and responding with 2xx.
Your endpoint must respond with a 2xx status within 10 seconds or Fire will mark the delivery as failed.
Retry behavior
If your endpoint returns a non-2xx response or times out, Fire retries the delivery with exponential backoff:
| Attempt | Delay |
|---|
| 1st retry | 5 minutes |
| 2nd retry | 30 minutes |
| 3rd retry | 2 hours |
| 4th retry | 8 hours |
After all retries are exhausted, the event is marked as failed. You can manually replay failed events from the dashboard.
Receiving events
Every event Fire sends is an HTTP POST request with:
Content-Type: application/json
X-Fire-Signature: HMAC-SHA256 signature of the body (see Authentication)
X-Fire-Event: event type identifier (e.g. menu.updated)
Always verify the signature before processing the event.
Responding to events
Return a 200 OK (or any 2xx) as soon as you receive the request — before processing the payload. This prevents timeouts if your processing takes time.
app.post("/fire-webhook", (req, res) => {
res.sendStatus(200); // Acknowledge first
// Process asynchronously
processFireEvent(req.body).catch(console.error);
});