Emails
List emails
Keyset-paginated. Filters are typed query params (`field=value`, `field[op]=value`); unknown filters, unsortable fields and malformed values are rejected with 400 `validation_failed`.
Submit a raw .eml
Stores an RFC 5322 message exactly as SES inbound would: raw object in the raw bucket, `Email` in `received`, and a `process-email` job — filters, agent and webhooks run as for real mail. Send the message either as `multipart/form-data` (field `file`, optional `inbox_id`) or as the request body with `Content-Type: message/rfc822` (optional `?inbox_id=`). Without `inbox_id` the inbox is resolved from the `To:` header among the caller workspace inboxes. A `Message-ID` already stored is rejected with 409 (`error.details.email_id` points at the existing email).
Get email
Get email
Delete email
Soft-deletes the email (sets `deleted_at`). It stops appearing in lists and detail; the raw object is purged by the retention job.
Download original .eml
Download original .eml
Reprocess email
Re-enqueues processing for the email regardless of current status.