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.
Generate opaque Reply-To addresses that carry caller metadata back into your app.
Turn support addresses into durable webhook events.
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.
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