Request approval of an inbound sender
Asks for an address to be added to the workspace's authorized senders.
A credential cannot authorize an address, and this call mails nothing. It records a request: the grant is created pending with awaitingApproval: true, and no confirmation link exists yet. A workspace owner or admin approves it from the InkSeal dashboard, which mails a single-use link to the address; only opening that link from the mailbox activates the grant. Approval proves the workspace wants the address and the link proves whoever named it controls the mailbox, so neither alone is enough and controlling the mailbox never makes an address a sender. Report the pending request to your human and poll listAuthorizedSenders to see when it is active.
Re-adding a revoked address records a fresh request. Re-adding a pending one returns it unchanged, so a link a person already sent keeps working. An address that is already active answers 409 invalid_state rather than being reset, because that would drop a working grant back to pending and silently stop mail that works today. The workspace owner's own address answers 409 invalid_state too: it is authorized by construction.
Request
- Base URL: https://inkseal.net/api/v1
- URL: https://inkseal.net/api/v1/account/authorized-senders
- Auth: HTTP bearer
Headers
Makes this mutation retry-safe. 1 to 255 printable ASCII characters (0x20 to 0x7e), trimmed before use. The key is scoped to the workspace and the credential that sent it. Reusing it with a different method, path, or payload answers 422 idempotency_key_reuse. A completed attempt replays its stored status and body with an Idempotent-Replay: true response header; 5xx, 429, and non-JSON answers leave the key retryable. A concurrent request holding the 90 second lease answers 409 idempotency_in_progress. Records are retained 24 hours.
Request body
Example request
{
"email": "contracts@example.com",
"kind": "delegate"
}Response
The grant, pending and awaiting a workspace person's approval. confirmationEmailSent is always false here.
Example response
{
"data": {
"sender": {
"id": "Sn4kR7pQx2LmVb9tY6cZw",
"email": "contracts@example.com",
"kind": "delegate",
"status": "pending",
"confirmationSentAt": "2026-08-21T09:14:02.000Z",
"expiresAt": "2026-08-28T09:14:02.000Z",
"createdAt": "2026-08-21T09:14:02.000Z",
"updatedAt": "2026-08-21T09:14:02.000Z"
}
}
}Changes
No recorded changes to this operation across all 1 revision of this API.