Introduction
Emithook is the event front door: infrastructure that receives webhooks and email, and sends webhooks — all on a single delivery engine. Its founding guarantee: every event is durably stored before it's acknowledged, so nothing downstream — configuration, workers, deploys — can lose an accepted event.
- 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. Want to feel it before reading further? Get an instant endpoint — a webhook URL and an email address, no signup.
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, and an instant endpoint needs no account at all.
- Never-lose ingest. Stored before the 200, always — then backoff retries with jitter, dead-letter queue, circuit breaker, SSRF-guarded egress, and a 14-day replay window.
- Simple by default, advanced on demand. The console asks three questions (who sends, the secret, where to deliver); one Advanced toggle reveals transforms, sync proxy, generic HMAC, rotation and per-route filters.
- 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).
- Your region. Data resident where you choose (India /
ap-south-1today, multi-region by design); self-hosting with pluggable adapters is documented in Self-hosting.
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).