---
title: "Receive emails as webhooks | WebhookRelay"
meta:
  "og:description": "Turn inbound email into webhooks with Webhook Relay. Create an email input on a bucket, get a unique inbound address, and every email you receive is parsed to JSON and delivered to your endpoint — with optional transforms, sender filtering and fan-out."
  "og:title": "Receive emails as webhooks"
  description: "Turn inbound email into webhooks with Webhook Relay. Create an email input on a bucket, get a unique inbound address, and every email you receive is parsed to JSON and delivered to your endpoint — with optional transforms, sender filtering and fan-out."
---

![Stripes](https://webhookrelay.com/docs/email/images/stripes.svg)

Documentation

**Fundamentals**

# **Receive emails as webhooks**

Turn inbound email into webhooks with Webhook Relay. Create an email input on a bucket, get a unique inbound address, and every email you receive is parsed to JSON and delivered to your endpoint — with optional transforms, sender filtering and fan-out.

Webhook Relay can **receive inbound email and deliver it as a webhook**. You add an _email input_ to a bucket, Webhook Relay gives you a unique address like `5519fb0d-997a-46cd-b102-ac990b4c38fa@in.webhookrelay-mail.com`, and every message sent to it is parsed and forwarded to your endpoint as a JSON `POST` — the same pipeline as any other Webhook Relay input, so you also get transforms, fan-out, retries and an audit log.

```
Sender  ──▶  {uuid}@in.webhookrelay-mail.com  ──▶  Webhook Relay  ──▶  JSON webhook  ──▶  your endpoint
(any email)        (your email input)            (parse + policy)      (POST application/json)   (or transform first)
```

Use it to drive automation from email: parse order confirmations, support requests, alerts, reports or any "email-only" system into your API, a database, Slack/Discord, or a spreadsheet — without running an SMTP server.

## [Create an email input](#create-an-email-input)

1. Open the [Webhook Relay dashboard](https://my.webhookrelay.com) and create (or pick) a **bucket** — a bucket groups inputs and outputs.
2. Add an **Email** input to the bucket. Webhook Relay generates a unique inbound address for it.

![Creating an email input on a bucket in the Webhook Relay dashboard](https://webhookrelay.com/docs/email/images/docs/email/email_input.png)

1. Copy the generated address — it looks like `<uuid>@in.webhookrelay-mail.com`, where the `<uuid>` is unique to that input.
2. Send mail to it (or hand it to whatever system needs to email you). Every message is parsed and delivered to the bucket's outputs.

> Each email input has its own address. Disable the input to stop accepting mail without deleting it, and delete it to free the address.

Prefer the terminal? The `relay` CLI creates an address in a single command and can poll the bucket for incoming mail — see [Create & poll email addresses from the CLI](https://webhookrelay.com/docs/email/docs/email/cli/).

## [What your endpoint receives](#what-your-endpoint-receives)

The parsed message is delivered as a JSON body with `Content-Type: application/json` and an `X-Webhookrelay-Source: email` header. Here is a real message:

```
{
  "from": "karolis.rusenas@gmail.com",
  "from_name": "K",
  "recipient": "5519fb0d-997a-46cd-b102-ac990b4c38fa@in.webhookrelay-mail.com",
  "to": ["5519fb0d-997a-46cd-b102-ac990b4c38fa@in.webhookrelay-mail.com"],
  "subject": "prod test",
  "date": "Fri, 26 Jun 2026 11:27:41 +0400",
  "message_id": "C70BE3E7-4B20-4240-A1B8-2D19E0032FFD@gmail.com",
  "text": "helloooo\r\n",
  "headers": {
    "From": "K <karolis.rusenas@gmail.com>",
    "To": "5519fb0d-997a-46cd-b102-ac990b4c38fa@in.webhookrelay-mail.com",
    "Subject": "prod test",
    "Content-Type": "text/plain; charset=us-ascii",
    "Return-Path": "<karolis.rusenas@gmail.com>"
  },
  "spf": "none",
  "dkim": "pass",
  "dmarc": "pass"
}
```

HTML emails also include an `html` field, and attachments arrive in an `attachments` array. See the [payload reference](https://webhookrelay.com/docs/email/docs/email/payload/) for every field.

## [Forward, transform or fan out](#forward-transform-or-fan-out)

Because the email becomes an ordinary event on the bucket, you can:

- **Forward it** to one or more outputs (your API, an internal service behind a firewall, another webhook host).
- **[Transform it first](https://webhookrelay.com/docs/email/docs/webhooks/functions/)** — attach a function to the input or output to reshape the JSON (e.g. pull `text`/`subject` into your own schema, or build a [Slack/Discord/Teams message](https://webhookrelay.com/docs/email/webhook-message-formatter/)).
- **Restrict who can send** with a [sender allowlist, and control attachments and rate limits](https://webhookrelay.com/docs/email/docs/email/filtering-and-policy/).

## [Next steps](#next-steps)

- [Create & poll email addresses from the CLI](https://webhookrelay.com/docs/email/docs/email/cli/) — do it all from the terminal.
- [Email webhook payload reference](https://webhookrelay.com/docs/email/docs/email/payload/) — every field, attachments and headers.
- [Sender filtering & policy](https://webhookrelay.com/docs/email/docs/email/filtering-and-policy/) — allowlists, attachments, limits.
- [Transform functions](https://webhookrelay.com/docs/email/docs/webhooks/functions/) — reshape the email before delivery.

Did this page help you?