Your app to your customers
Publish an event through the API. Hookbridge signs and delivers a copy to the configured customer endpoint.
Outbound endpointsDeliver events to customer endpoints, accept webhooks from third-party providers, or retrieve stored events through the API on your own schedule.
Free tier available. No credit card required.Each endpoint has its own authentication, delivery behavior, logs, and retention settings.
Publish an event through the API. Hookbridge signs and delivers a copy to the configured customer endpoint.
Outbound endpointsAccept an external webhook at a stable URL, verify it when configured, and forward the original request to your service.
Inbound endpointsStore incoming events until your worker retrieves and acknowledges them through the API.
Pull endpointsOutbound deliveries, inbound forwards, and stored pull events share the same message history inside a project.
Webhook delivery metrics and recent activity
| Message ID | Direction | Endpoint | Status | Response | External | Time |
|---|---|---|---|---|---|---|
| msg_01JY... | outbound | Customer billing | succeeded | 200 | 84 ms | 10:42:16 AM |
| in_01JY9... | inbound | Stripe billing | succeeded | 200 | 102 ms | 10:41:49 AM |
| evt_01JY... | pull | Batch orders | stored | - | - | 10:40:08 AM |
Configure each destination or ingestion URL separately.
Filter delivery records by direction, endpoint, status, and time.
Sign outgoing requests and verify supported incoming signatures.
Keep payloads available according to the plan and endpoint settings.
Track volume, success, failures, latency, retries, and stored event counts.
Create CSV exports when delivery data needs to leave the console.
The send API returns after the message is stored and queued. Delivery continues outside your request path, with a message ID you can query later.
Open the API referencecurl -X POST https://send.hookbridge.io/v1/webhooks/send \
-H "Authorization: Bearer $HOOKBRIDGE_KEY" \
-H "Content-Type: application/json" \
-d '{"endpoint_id":"ep_customer_billing","payload":{"event":"invoice.paid"}}'
# => {"data":{"message_id":"01935abc-...","status":"queued"}}import { HookBridge } from '@hookbridge/sdk';
const hookbridge = new HookBridge({ apiKey: process.env.HOOKBRIDGE_KEY });
const message = await hookbridge.send({
endpointId: 'ep_customer_billing',
payload: { event: 'invoice.paid' }
});
console.log(message.messageId);import os
from hookbridge import HookBridge
client = HookBridge(api_key=os.environ["HOOKBRIDGE_KEY"])
message = client.send(
endpoint_id="ep_customer_billing",
payload={"event": "invoice.paid"},
)
print(message.message_id)import hookbridge "github.com/hookbridge/hookbridge-go/v2"
client, _ := hookbridge.NewClient(os.Getenv("HOOKBRIDGE_KEY"))
message, _ := client.Send(ctx, hookbridge.SendRequest{
EndpointID: "ep_customer_billing",
Payload: map[string]any{"event": "invoice.paid"},
})
fmt.Println(message.MessageID)require "hookbridge"
client = HookBridge.new(api_key: ENV["HOOKBRIDGE_KEY"])
message = client.send(
endpoint_id: "ep_customer_billing",
payload: { event: "invoice.paid" }
)
puts message.message_id<?php
require 'vendor/autoload.php';
use HookBridge\HookBridge;
$client = new HookBridge(getenv('HOOKBRIDGE_KEY'));
$message = $client->send(
endpointId: 'ep_customer_billing',
payload: ['event' => 'invoice.paid']
);Every plan includes static IP delivery and webhook signatures. Upgrade for more messages, endpoints, and retention.
Timeouts, server errors, and other retryable responses follow the configured retry schedule. Non-retryable client errors remain available for inspection.
Yes. A retained message can be replayed from the console or API whether the original delivery succeeded or failed.
An inbound or pull endpoint can verify a configured HMAC signature before accepting a request. Static tokens and IP allowlists are also supported.
Create a project and add an outbound, inbound, or pull endpoint.