Create an address
Creates an address on the domain. It receives as soon as the domain does, and it can be sent from once the domain can send.
Runs the real call against your workspace, with your own key.
POST /domains/{id}/addresses
Creates an address on the domain. It receives as soon as the domain does, and it can be sent from once the domain can send.
The request
Parameters
localPartstringrequired- The part before the `@`, 1 to 64 characters, lowercased. `*` is how the catch-all is written and cannot be an address of its own.
labelstring | null- A name for the address in the app, at most 120 characters.
Example
Needs domains:write. A key limited to particular addresses or domains needs to hold the whole domain.
curl -X POST "$OE/domains/b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f/addresses" -H "$AUTH" -H "Content-Type: application/json" \ -d '{ "localPart": "billing", "label": "Invoices" }'{ "object": "address", "id": "5f0c2b7e-8d41-4a6f-b913-7e2a0c4d9b18", "domainId": "b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f", "address": "[email protected]", "localPart": "billing", "label": "Invoices", "enabled": true, "lastReceivedAt": null, "createdAt": "2026-09-25T10:00:00.000Z", "updatedAt": "2026-09-25T10:00:00.000Z"}Creating an address that was removed brings it back, enabled. Creating one that already exists turns it back on and returns it, and changes its label only when you send one.
With the catch-all on, a new address starts with the signature and settings the catch-all has.
An address reserved for an account answers 409 address_reserved, and a workspace at its address limit answers 422 workspace_limit_reached.