Introduction
Emithook is open-source webhook infrastructure. It does two jobs on a single delivery engine:
- Receive & relay — give a provider a stable URL (or let them write to a queue, or send you email), and Emithook acknowledges in under 100 ms and durably buffers the event — so your service can be down for hours and lose nothing. It then verifies the signature in the processing plane and routes the event to your systems.
- Send & broadcast — push your own events out as webhooks-as-a-service. One API call delivers to a URL or a queue, or fans out to every endpoint an application's customers have subscribed.
The same machinery — signing, retries, circuit-breaking, logs, archive, and one-click replay — is shared across both directions.
Four ways an event enters
| Ingress | Use it when |
|---|---|
| HTTPS edge | A provider POSTs to your <ingest-domain>/<slug> URL. |
| Queue ingestion | You write to a broker (SQS/Pub/Sub/Kafka…) and Emithook consumes it. |
| Inbound email (MX) | Mail to <alias>@in.<ingest-domain> is parsed into an event. |
| Send API | You call POST /v1/send with a payload and a destination. |
Webhooks and email share a dedicated, config-driven ingest domain (shown as <ingest-domain>), separate from the console/marketing site.
Three delivery patterns
- Fan-out — one event always goes to the same set of destinations.
- Per-tenant — register customers as applications;
POST /v1/app/{tenant}/eventresolves their endpoints. - Direct send — ad-hoc
POST /v1/sendto a single URL or queue.
Why teams use it
- Zero setup. You're live immediately on our domain for both webhooks and email — bringing your own domain is optional.
- Reliability you'd otherwise build. Backoff retries with jitter, dead-letter queue, circuit breaker, SSRF-guarded egress.
- Agent-native. Console, CLI, the TypeScript SDK and an MCP server are all thin clients over one scoped API (Python/Go SDKs + a Terraform provider are on the roadmap).
- Open-source, no lock-in. Apache-2.0, self-hostable with pluggable adapters (Postgres, NATS, Redis, MinIO) — or use the managed cloud, with data resident in your region (India /
ap-south-1today, multi-region by design).
Where to next
- Quickstart — a delivered, signed webhook in a few minutes.
- Receive webhooks — the inbound relay: ingress, presets, routing.
- Send webhooks — outbound webhooks-as-a-service.
- Glossary & data model — the precise vocabulary every surface uses.
- Roadmap & availability — what ships when (read this before calling the API).