SolidHooks vs Hookdeck: which inbound webhook gateway fits you?
Last checked: 2 November 2026. We make SolidHooks. Every Hookdeck fact below comes from hookdeck.com and links to the page we read.
Both SolidHooks and Hookdeck Event Gateway sit between webhook providers, such as Stripe or GitHub, and your application. They receive, verify, store and deliver inbound webhooks with retries. The short version:
- Choose Hookdeck if you want breadth: according to Hookdeck, 800+ pre-configured sources, plus payload transformations, per-tenant Delivery Groups, a Terraform provider, published uptime and latency SLAs on its Growth plan, and a separate outbound product (Outpost).
- Choose SolidHooks if you want billing per delivery with retries not billed, a pipeline an AI agent can set up end to end through a hosted MCP server or Agent Auth, inbound email as a source, and private delivery into your network without opening inbound ports.
Weighing more than two options? See our Hookdeck alternatives roundup.
At a glance
| Hookdeck Event Gateway | SolidHooks | |
|---|---|---|
| Free tier | Developer: $0, up to 10,000 events, 3-day retention, 1 user (pricing) | Hobby: $0, 10,000 deliveries a month, 3-day retention, hard cap (plans) |
| Paid plans | Team from $39/month, 7-day retention; Growth from $499/month, 30-day retention; usage beyond the 10,000 included events is $3.00 per 100k up to 5M events a month, billed in 10k steps (pricing) | Launch $29/month for 50,000 deliveries, 7-day retention; Scale $375/month for 1,000,000, 30-day retention; then $2.75 per 100k (pricing, plans) |
| What's billed | Events: an inbound request delivered to a destination. One request can create 0, 1 or many events (pricing FAQ) | Deliveries: one event routed to one connection (plans) |
| Retries | "Customizable retry policies and exponential backoff" (Event Gateway). Pricing FAQ: "The price of an event includes all its retries." | Exponential backoff; 3 attempts within 1 hour on Hobby, 8 within 36 hours on paid plans. Not billed (retries) |
| Replay and history | Bulk pause, cancel or replay, with API access to event history (Event Gateway) | Every event stored and queryable, with a per-event timeline; free per-delivery retry and billed event replay (events, replay) |
| Signature verification | Built-in; 800+ pre-configured sources, according to Hookdeck | Presets for Stripe, GitHub, Linear, Shopify, Paystack, Nuvion, OpenAI, Anthropic and Resend, plus Standard Webhooks, generic HMAC, Basic auth and API-key header (verification) |
| Transformations | Unlimited on all plans (pricing) | Not offered |
| Routing | Routing, filters and field-level dedup (Hookdeck's pages) | Event-type allowlist per connection; fan-out through multiple connections; idempotency keys (connections, idempotency) |
| Inbound email | Not listed on the pricing or product pages we checked | Yes: each email source gets its own address (email ingestion) |
| Private network delivery | Static IP add-on, $100 (pricing) | Connect: outbound-only connector, no inbound ports; 1 connector on Launch, 5 on Scale (private delivery) |
| MCP server | Local, through the CLI (hookdeck gateway mcp); starts read-only, --allow-write to change data (MCP docs) | Hosted at https://api.solidhooks.com/mcp, browser sign-in; plus Agent Auth (MCP, Agent Auth) |
| Infrastructure as code | API and Terraform provider (Event Gateway) | REST API with an OpenAPI spec; no Terraform provider |
Pricing: events vs deliveries
The headline numbers look close: both free tiers cover 10,000 a month. They count different things, though.
Hookdeck bills events. It counts every inbound HTTP request as a request; when a request is delivered to a destination, that's an event. One request can produce no events (if a filter drops it), one, or several (if it goes to several destinations). Requests that create no events are "discarded requests": 100,000 a month are included on every plan, then $2.50 per million. Hookdeck's pricing FAQ says event retries are free: "The price of an event includes all its retries." On the Developer plan, going over 10,000 events locks the dashboard until you upgrade or the period resets, though events keep flowing, according to the same FAQ.
SolidHooks bills deliveries. A delivery is one event routed to one connection, so fanning one event out to three destinations is three deliveries. Automatic retries reuse the same delivery and aren't billed. A manual retry of one delivery is free too. Duplicate (idempotent) requests and requests that fail signature verification aren't billed. Replaying an event creates new deliveries, and those are billed. On Hobby, ingest stops with 429 QUOTA_EXCEEDED once you've used the 10,000; paid plans meter overage instead (plans).
So, for the parts that matter most, the two units behave alike: one webhook sent to two destinations is two events on Hookdeck and two deliveries on SolidHooks, and neither charges for retries. The differences are at the edges: Hookdeck charges for very large volumes of filtered-out requests; SolidHooks charges for replays.
A worked example
Say you receive 100,000 webhooks a month, each fanned out to 2 destinations, and 3% of deliveries fail once and are retried.
- SolidHooks: 100,000 × 2 = 200,000 deliveries. Retries add nothing. Launch includes 50,000, leaving 150,000 at $2.75 per 100,000 = $4.13. Total: $29 + $4.13 = $33.13 a month.
- Hookdeck: 100,000 × 2 = 200,000 events. Retries are included in the event price. Team starts at $39 with 10,000 events included. All 200,000 fall in Hookdeck's first usage tier (up to 5 million events a month), and Hookdeck's pricing calculator charges $3.00 per started 100,000: 2 × $3.00 = $6.00 (pricing). Total: $45.00 a month. Hookdeck's FAQ describes usage as pro-rated in 10,000-event steps beyond the 10,000 included, which would give 19 × $0.30 = $5.70, or $44.70.
One caveat: this example has no filtered-out requests and no replays; if you have many of either, run your own numbers on both pricing pages.
Receiving and verifying webhooks
This is Hookdeck's strongest area. It says it has 800+ pre-configured sources, each of which sets up signature verification and authentication for that provider. SolidHooks has presets for a shorter list: Stripe, GitHub, Linear, Shopify, Paystack, Nuvion, OpenAI, Anthropic and Resend. Anything else uses a generic verifier: Standard Webhooks, an HMAC of the body in a header you name (SHA-256, SHA-512, SHA-1 or MD5, in hex, base64 or base64url), Basic auth, or an API-key header (verification).
Where a provider signs a timestamp, SolidHooks checks it against a window you set (300 seconds by default, two-sided) to reject replayed requests. A request that fails verification is stored as a rejected event, never delivered and never billed (events).
If most of your providers are on the SolidHooks preset list, or send Standard Webhooks, the difference won't matter much. If you integrate with dozens of less common providers, Hookdeck saves you set-up work.
Reliability: retries, replay and rate limits
Retries. SolidHooks retries a failed delivery on a fixed exponential schedule (5 seconds, 5 minutes, 30 minutes, 2 hours, then longer gaps), with jitter, up to the plan's attempt and time limits. Endpoints that answer 429, 502 or 504 are parked rather than failed, and Retry-After is honoured (retries). Hookdeck describes "customizable retry policies and exponential backoff", so you can tune the policy; SolidHooks' schedule is set by plan.
Replay and audit trail. Both keep event history for your retention period and let you replay. SolidHooks gives each event a timeline from ingest through every delivery attempt (GET /v1/events/{id}/timeline), and separates a free retry of one delivery from a billed replay of the whole event. Hookdeck offers bulk pause, cancel and replay.
Rate limits. Hookdeck includes 5 events per second of throughput per destination, with more available to buy; deliveries above that are queued, not rejected, according to its pricing page. It also offers Delivery Groups for per-tenant delivery rates. SolidHooks paces deliveries at 10, 50 or 200 per second across the organisation depending on plan, plus an optional per-destination limit you set; held deliveries queue and send automatically (rate limits).
Agents and automation
Both products expect AI agents to work with them, in different ways.
SolidHooks runs a hosted MCP server at https://api.solidhooks.com/mcp. You add the URL to Claude, Claude Code, Cursor or VS Code, sign in through your browser, and the client can manage sources, destinations, connections and deliveries. There's nothing to install. It acts with your full role, so for narrower access SolidHooks recommends Agent Auth: the agent gets its own identity and a human approves each capability (MCP, Agent Auth). Every endpoint is in an OpenAPI spec, and the docs have an llms.txt index.
Hookdeck runs its MCP server locally through its CLI (hookdeck gateway mcp). It talks to the client over stdio, starts read-only, and needs --allow-write to create, change or delete data. Hookdeck also publishes Agent Skills for its products and for common webhook providers (MCP docs).
Infrastructure as code is a clear Hookdeck win: it has a Terraform provider. SolidHooks offers the REST API and OpenAPI spec, but no Terraform provider.
Things only one of them does
Hookdeck, according to its pages: payload transformations, Delivery Groups, a Terraform provider, a $100 static IP add-on, published uptime and latency SLAs on Growth, and Outpost for sending webhooks to your own customers.
SolidHooks:
- Inbound email. An email source gets its own address; each message becomes a stored event with a parsed JSON envelope that routes and retries like a webhook (email ingestion).
- Private delivery with Connect. A small agent inside your network makes only outbound connections, so SolidHooks can deliver to services with no public URL and no inbound firewall rule (private delivery).
- A hosted MCP server with browser sign-in, alongside Agent Auth.
Moving a Stripe source from Hookdeck
If you're switching, the SolidHooks side takes three API calls (quickstart):
export API=https://api.solidhooks.comexport SDHK_KEY=sdhk_sk_... # 1. A source with the Stripe preset. The response includes its ingestUrl.curl -s "$API/v1/sources" \ -H "authorization: Bearer $SDHK_KEY" \ -H 'content-type: application/json' \ -d '{ "name": "Stripe", "provider": "stripe", "verifierConfig": { "secret": "whsec_..." } }' # 2. A destination: your endpoint.curl -s "$API/v1/destinations" \ -H "authorization: Bearer $SDHK_KEY" \ -H 'content-type: application/json' \ -d '{ "name": "My app", "type": "http", "url": "https://your-app.example.com/webhooks", "method": "POST" }' # 3. A connection between them.curl -s "$API/v1/connections" \ -H "authorization: Bearer $SDHK_KEY" \ -H 'content-type: application/json' \ -d '{ "name": "Stripe to My app", "sourceId": "src_...", "destinationId": "dest_..." }'
Then, in Stripe, change the webhook endpoint URL to the ingestUrl from step 1.
Which should you choose?
Choose Hookdeck if:
- you integrate with many webhook providers and want them pre-configured;
- you need to transform payloads before they reach your code;
- you need per-tenant delivery rates, Terraform, a static IP, or contractual SLAs;
- you also want to send webhooks to your own customers from the same vendor.
Choose SolidHooks if:
- you want a bill driven by deliveries, with retries and failed-verification requests never counted;
- you want an AI agent to set up and run the pipeline through a hosted MCP server or Agent Auth;
- some of your "webhooks" arrive as email;
- you need to deliver into a private network without opening inbound ports.
Looking at other options too?
If neither fits, or you'd like to see Svix Ingest, Convoy and building your own side by side, read Hookdeck alternatives for receiving webhooks.
FAQ
Try it
Try SolidHooks free with 10,000 deliveries a month. Get started · See every option