Self-signup for a free account + first inbox
POST /v1/agent/sign-up
Check GET /v1/signup-status for current availability. When available, reserves a free account and first inbox on free.extrovertmail.com and returns a temporary signup:verify key. Follow the response’s activation method. For incoming_email, the human sends from the expected human_email to the returned inbox address, or approves using verified console sign-in. Observe activation until proven, then explicitly call POST /v1/agent/verify with an empty JSON object to exchange the bootstrap key for a scoped mailbox key. Legacy OTP responses instead require the code emailed to human_email; the code is never returned in the response. The temporary key can inspect, observe, correct and complete activation, but cannot read or send mail. Preserve the pending signup and its response fields when resuming; do not create another account because an observer or connection timed out.
Request Body required
Section titled “Request Body required ”object
Optional gift. The verified human must claim the existing workspace and gift; email activation alone never activates Startup.
object
The human email expected to activate this inbox.
Friendly From name. Up to 60 Unicode characters after normalization; same validation and defaults as inbox creation.
Desired local part for the first free inbox. It is normalized to lowercase, must contain at least five characters, and cannot be postmaster, admin, webadmin, legal, fraudmark, fraudmarc, keith, melissa, richard, sydney, syd, john, or johnny. Omit it for a generated local part.
Responses
Section titled “ Responses ”Account and inbox reserved; follow the returned activation method before completing verification.
The verification-only signup:verify bootstrap key (shown once) plus the pending inbox on free.extrovertmail.com. Incoming-email activation reserves it for 24 hours. The human sends from the expected address or approves through verified console sign-in. The key can check, correct, and complete activation; it cannot read or send mail. Legacy responses may instead describe an emailed OTP.
object
object
Pending_human_claim is not Startup activation. No card is required to claim a gift.
Limited-scope bootstrap key
The pending inbox on free.extrovertmail.com.
Legacy OTP delivery only.
Legacy OTP expiry only.
Invalid request.
The canonical error envelope. error is a stable machine code.
object
Stable error code (e.g. unauthorized, forbidden, not_found, invalid, quota_exceeded, rate_limited).
Example
forbiddenHuman-readable detail (never leaks internals).
Example
missing required scopeMachine-readable quota reason. inbox_limit_exceeded means billing account inbox capacity across all organizations and projects sharing that account; enrollment_token_mailbox_budget_exhausted means the enrollment key lifetime creation allowance. Read message for recovery; inbox counts are separate from sending quotas.
Consumed plus reserved units.
Requested additional units.
Next UTC usage-period boundary; pending reservations survive this boundary.
Free signup is temporarily paused (signup_disabled).
The canonical error envelope. error is a stable machine code.
object
Stable error code (e.g. unauthorized, forbidden, not_found, invalid, quota_exceeded, rate_limited).
Example
forbiddenHuman-readable detail (never leaks internals).
Example
missing required scopeMachine-readable quota reason. inbox_limit_exceeded means billing account inbox capacity across all organizations and projects sharing that account; enrollment_token_mailbox_budget_exhausted means the enrollment key lifetime creation allowance. Read message for recovery; inbox counts are separate from sending quotas.
Consumed plus reserved units.
Requested additional units.
Next UTC usage-period boundary; pending reservations survive this boundary.
Upstream delivery failed. The request can be retried.
The canonical error envelope. error is a stable machine code.
object
Stable error code (e.g. unauthorized, forbidden, not_found, invalid, quota_exceeded, rate_limited).
Example
forbiddenHuman-readable detail (never leaks internals).
Example
missing required scopeMachine-readable quota reason. inbox_limit_exceeded means billing account inbox capacity across all organizations and projects sharing that account; enrollment_token_mailbox_budget_exhausted means the enrollment key lifetime creation allowance. Read message for recovery; inbox counts are separate from sending quotas.
Consumed plus reserved units.
Requested additional units.
Next UTC usage-period boundary; pending reservations survive this boundary.
Self-signup is not configured or the signup gate is unavailable.
The canonical error envelope. error is a stable machine code.
object
Stable error code (e.g. unauthorized, forbidden, not_found, invalid, quota_exceeded, rate_limited).
Example
forbiddenHuman-readable detail (never leaks internals).
Example
missing required scopeMachine-readable quota reason. inbox_limit_exceeded means billing account inbox capacity across all organizations and projects sharing that account; enrollment_token_mailbox_budget_exhausted means the enrollment key lifetime creation allowance. Read message for recovery; inbox counts are separate from sending quotas.
Consumed plus reserved units.
Requested additional units.
Next UTC usage-period boundary; pending reservations survive this boundary.