Create a key to copy examples filled with your team.
Receiving emails
Hosted inboxes or MX on inbound.your-domain.
KYC must be approved before you can create an inbox or its shared-IP cluster. The API returns 403 {error: kyc_required} before that. Create an active shared cluster first. Then issue a hosted address on the PostShiba inbound zone, or bind one to a verified sending domain.
Hosted or domain-bound
| Kind | Description |
|---|---|
| Hosted | Omit sending_domain_id. Address lands on CAPSULE_INBOUND_ZONE, for example inbabc123@inbound.postshiba.com. mx_status is not_required. No DNS is needed, but the team still needs an active shared cluster. |
| Domain-bound | Set sending_domain_id on a verified domain. Address is {local_part}@inbound.{sending_domain}. Publish MX on that inbound host only. Do not MX the sending domain itself. |
Catch-all local_part * requires a sending domain. Plus-addressing maps agent+thread@ to inbox agent@ and sets thread_id to thread.
Mail retention defaults to 168 hours, then PostShiba purges it. Read retention_hours and each message's expires_at because deployments can change the default. Set reply_to on outbound mail to the inbox address if you want replies to land here.
Create fields
| Field | Description |
|---|---|
name |
Required. |
local_part |
Optional on hosted. Generated as inb plus hex when blank. * needs a sending domain. |
sending_domain_id |
Blank issues a hosted inbox. Must be a verified domain when set. |
webhook_url |
Optional. Leave blank to store and poll. |
webhook_format |
json or sendgrid_parse. Default json. |
tenant_id |
Optional. The sending domain's tenant wins when sending_domain_id is set. Otherwise the team's default tenant. |
webhook_secret is returned on create and show, never on index. Delete disables the inbox. The dashboard can change webhook settings. The API has no update action.