Mint a per-entity address
Records an address like ticket-4231@in.acme.com with a blob of your
own JSON attached, returned verbatim in the entities map of every
webhook payload delivered to it — so your system routes the mail without
a lookup and without parsing a local part.
Nothing is created in AWS. The SES receipt rule is a catch-all for
the receiving domain, so mail to this address was already landing in
your bucket before the call. What the call records is the metadata to
echo back and — on a domain whose allow_patterns is non-empty — an
entry in that list, so the address you just created is not the one your
own restriction refuses. Where allow_patterns is empty, every
recipient is already delivered and nothing about routing changes.
Reversible by revoking, so it is not classified destructive and a test-environment credential may call it.
local_part is optional. Omitted, SendOps mints a- plus 24 Crockford
base32 characters. Supplied, it must be an RFC 5321 dot-atom, is
lower-cased, and may not begin with the reserved a-.
409 conflict when the local part is already live at this domain. 422
with a field error on local_part or metadata when either fails
validation.
Path parameters
domain string required The receiving domain, by NAME (in.acme.com). A UUID is also accepted. Matched case-insensitively, and scoped to the calling org — a domain belonging to another org is a 404, never a 403.
Request body
Content type: application/json
local_part string optional The part before the "@" — ticket-4231. Omitted, SendOps mints a- plus 24 Crockford base32 characters. Supplied, it must be an RFC 5321 dot-atom (letters, digits, dots and the punctuation ! # $ % & ' * + - / = ? ^ _ { | } ~`), is lower-cased, and may not begin with the reserved a-.
Constraints: length 0–64
metadata object optional Your own JSON object, returned verbatim in the entities map of every webhook payload delivered to this address. SendOps never reads inside it, never indexes it and never matches on it. At most 4 KB, because it rides on every delivery and lives in your intake function's memory for the life of a warm container. Omitted becomes {}; a scalar or an array is refused.
Responses
Errors follow the RFC 7807 problem format — see the error reference.
id string<uuid> required local_part string required The part before the "@". Pass this back to revoke.
address string required local_part@domain — the mailbox a sender writes to. Carried alongside local_part deliberately: a client that has to concatenate the two has a way to get it wrong.
metadata object required The JSON returned in the entities map of every webhook payload delivered to this address. Always an object; {} when none was given.
created_at string<date-time> required code: invalid_scope), or it is bound to the test environment and this operation is irreversible (code: test_environment_forbidden). Branch on code: the first is fixed by granting the scope, the second only by using a live credential. See the "Live and test credentials" section of the API description. application/problem+json code is conflict.
application/problem+json validation_failed Problem. When the refusal is about a
reference — a segment key, template slug, topic or attribute name the
organization does not have — it additionally carries validation_code,
field, line/column, missing, candidates and next_step, so a
client can correct the call without a second round of guessing. See
ValidationProblem.
application/problem+json code is internal_error. The
request_id field can be quoted to SendOps support to investigate.
application/problem+json