Linje

Email to Webhook

Turn incoming email into an application event.

Linje receives mail for provisioned inboxes, stores the raw message and attachments, then posts a signed event to your application.

Quickstart

Give your application an email address.

curl -fsS \
  -X POST \
  -H "Authorization: Bearer $LINJE_PROJECT_TOKEN" \
  -H "content-type: application/json" \
  -d '{
    "id":"documents",
    "webhook-url":"https://app.example.com/linje/inbound"
  }' \
  https://api.linje.systems/v1/inboxes

Send mail directly to the provisioned inbox or forward an existing address into it.

Event

Receive parsed email and stable artifacts.

POST https://app.example.com/linje/inbound
x-linje-inbound-id: ...
x-linje-delivery-id: ...
x-linje-timestamp: ...
x-linje-signature: sha256=...

{
  "schema":"linje.inbound-email.v1",
  "event-id":"...",
  "inbound-id":"...",
  "inbox-id":"documents",
  "email": {
    "from":[{"email":"customer@example.com"}],
    "subject":"Requested files"
  },
  "content":{"text":"Attached."},
  "attachments":[{"download":{"url":"https://api.linje.systems/..."}}]
}

Patterns

Use inboxes where email crosses into product logic.

Replies

Generate opaque Reply-To addresses that carry caller metadata back into your app.

Support intake

Turn support addresses into durable webhook events.

Attachments

Receive documents, screenshots, invoices, and evidence files.

Reliability

Store first. Sign, retry, inspect, and replay delivery.

Linje stores the raw message and attachments before callback delivery. Webhooks are HMAC-signed and delivered at least once with automatic retry and an inspectable attempt history. Replay redelivers the existing email event instead of creating a new message.

Read the webhook replay guide.

Boundary

Linje delivers the event. Your app owns the workflow.

Linje does not extract fields, triage support cases, or run rules based on message contents. It delivers stable email artifacts to the system that owns that business logic.

Next step

Start with inbound email, then add outbound when you need it.

Send an email to your webhook Sign in