Skip to main content
POST
Create an inbound address

Authorizations

Authorization
string
header
required

API key with an sk_live_ or sk_test_ prefix.

Body

application/json
localPart
string

1-64 chars of a-z 0-9 . _ -, starting and ending alphanumeric. Lowercased. Omit to auto-generate.

Pass "*" instead to create a catch-all: it receives every message sent to the domain that doesn't match one of your other addresses on it (an exact address always wins over the catch-all), including mail to reserved local parts like postmaster that can't be minted as their own address. "*" is a sentinel, not a normal local part — it bypasses both the character-format rule above and the reserved-name check.

Required string length: 1 - 64
description
string
Maximum string length: 200
forwardTo
string<email>

Optional address to also forward received mail to. Cannot point at any inbound address (rejected as a mail loop).

Maximum string length: 320
webhookEndpointId
string<uuid>

Optional webhook endpoint to bind this address to. When unset, message.received events fan out to every endpoint subscribed to that event.

domainId
string<uuid>

Optional inbound domain to mint this address on — the id from GET /v1/inbound/domains. Must be a verified custom domain owned by this workspace. Omit to use the workspace's shared receiving domain ({slug}.in.senderkit.email), which is created lazily on first call.

livemode
boolean

Explicit environment for the new address. Defaults to true (live) regardless of which key environment created it, matching webhook endpoints — callers state intent explicitly rather than it being inferred from the key.

Response

The created address.

id
string

Public inbound address ID.

Example:

"inb_0a1b2c3d4e5f6g7h"

address
string

The full receiving address, on the workspace's shared domain.

Example:

"support@acme.in.senderkit.email"

description
string | null
forwardTo
string | null

Address received mail is also forwarded to, or null.

active
boolean
livemode
boolean
createdAt
string<date-time>