Inboxes
List inboxes
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`.
Create inbox
Create inbox
Create or update inbox
Upsert. Takes the same body as POST plus the lookup keys `id` and `external_id`, matched in that order, then by `email`. A match is updated in place and returns 200 — fields absent from the body keep their stored value. No key, or no match, creates the inbox exactly as POST would and returns 201.
Get inbox
Accepts either the internal UUID or the resource `external_id`.
Update inbox
Accepts either the internal UUID or the resource `external_id`.
Delete inbox
Accepts either the internal UUID or the resource `external_id`.
Add allowed recipient
Accepts either the internal UUID or the resource `external_id`. Adds an email to `allowed_recipients`. Idempotent — returns 200 with the current list when already present.
Remove allowed recipient
Accepts either the internal UUID or the resource `external_id`. Removes an email from `allowed_recipients`. Accepts the email in JSON body or as the `email` query parameter.