Skip to content
Extrovert Docs
Search
Ctrl
K
Cancel
Website
Console
Select theme
Dark
Light
Auto
Introduction
Quickstart
Zero to first email
Create an inbox
Wait for email and OTPs
Authentication & keys
Coming from Agent Mail
Migration guide
Concepts
Agents
Enrollment keys & permissions
Inboxes
Messages, threads & search
Attachments
Webhooks & HMAC
Domains & onboarding
Purchase approvals for agents
Deliverability & limits
Unsubscribes & suppression
TypeScript SDK
SDK guide
Review Loop
The agent contract
MCP
Overview & tools
Connect an agent host
wait_for_email
Client configuration
API reference
Overview
Enrollment & identity
Inboxes
Messages & threads
wait_for_email
Webhooks
Errors
Endpoints
Overview
ops
Overview
Liveness probe
GET
Readiness probe (checks the store)
GET
This OpenAPI description (YAML)
GET
This OpenAPI description (JSON)
GET
enrollment
Overview
Redeem an enrollment token for an agent key
POST
Read current free-signup availability
GET
Self-signup for a free account + first inbox
POST
Verify a signup code and upgrade to a full-permission key
POST
Introspect the principal behind the agent key
GET
inboxes
Overview
List the agent's inboxes
GET
Create an inbox
POST
List inboxes in a project (or the org subtree with `-`)
GET
Create an inbox in a project
POST
Get an inbox in a project
GET
Delete an inbox in a project
DELETE
Update an inbox in a project
PATCH
Get IMAP/SMTP settings for an inbox in a project
GET
x402 paid purchase of one or more inboxes
POST
Get an inbox
GET
Delete an inbox (tears down the mailbox + authenticated sender)
DELETE
Update an inbox (rename the sender identity / metadata in place)
PATCH
Get IMAP/SMTP connection settings + login for an owned mailbox
GET
messaging
Overview
Send a message from the inbox (authenticated sender)
POST
Reply in-thread (recipients + threading derived)
POST
List messages in an inbox
GET
Full-text search messages in an inbox
GET
Batch update messages (mark read/unread and/or move folder)
PATCH
Delete a message (move to Trash, or expunge)
DELETE
Mark a message read or unread
PATCH
Download the raw RFC822 (.eml) bytes of a message
GET
Forward a message to new recipients
POST
Get one message by id (owning inbox resolved from the id)
GET
List conversation threads (newest-first)
GET
Full-text search conversation threads
GET
Get one thread with its messages
GET
Delete a thread (every message; move to Trash or expunge)
DELETE
Block until a matching message arrives (wait_for_email)
POST
wait_for_email (legacy body-addressed form)
POST
Stream events for one inbox (Server-Sent Events)
GET
Stream events across all of the agent's inboxes (Server-Sent Events)
GET
List the contact-list entries governing an inbox
GET
Add an allow/block entry to an inbox's contact lists
POST
Delete a contact-list entry by id
DELETE
attachments
Overview
List a message's attachment metadata
GET
Download one attachment's bytes
GET
webhooks
Overview
List the agent's webhooks (secrets redacted)
GET
Register an inbound HMAC-signed webhook
POST
Get one webhook (secret redacted)
GET
Delete a webhook
DELETE
Update a webhook (url, events, inbox filter, active)
PATCH
domains
Overview
List the customer's domains and their status
GET
Add a delegated or purchased domain
POST
Get one domain's detail, status, and nameserver records
GET
Offboard (remove) a domain from the customer
DELETE
Trigger or refresh verification for a domain
POST
commerce
Overview
Quote a new domain without purchasing it
POST
Request a domain purchase without granting approval or spending
POST
Request a plan change for human approval
POST
List this agent's commerce requests
GET
Get one commerce request and its exact blocker or progress
GET
Cancel an uncommitted commerce request
POST
List commerce approvals for an org
GET
Create an exact-price domain request without charging or registering
POST
Create a reviewable upgrade or downgrade without charging
POST
Get a commerce approval request
GET
Approve once and optionally create bounded future authority
POST
Deny a pending commerce request
POST
Cancel a commerce request before irreversible work
POST
Resume the same idempotent request after a recoverable blocker
POST
Get Stripe's hosted payment-authentication link for a human
GET
List bounded future domain-purchase authority
GET
Create bounded future domain-purchase authority
POST
Update a spend control with version fencing
PUT
Disable a spend control
DELETE
admin
Overview
The identity's reachable orgs + projects (landing scope)
GET
List the identity's reachable orgs
GET
Create a child org (admin+ on the parent)
POST
Archive (soft-delete) an org (owner)
DELETE
Update an org's display fields (admin)
PATCH
List the org's projects (viewer)
GET
Create a project in the org (admin)
POST
Archive (soft-delete) a project (admin)
DELETE
Update a project's display fields (admin)
PATCH
List the org's members (viewer)
GET
Remove a member from the org (admin; last-owner guarded)
DELETE
Change a member's role (admin; role-capped, last-owner guarded)
PATCH
Invite a member to the org (admin; role-capped)
POST
Accept an invitation (identity-only; email-bound)
POST
Claim an agent-created account (identity-only; email-bound)
POST
Revoke a pending invitation (admin)
POST
List enrollment tokens
GET
Issue an enrollment token (secret shown once)
POST
Revoke an enrollment token
DELETE
List issued agent API keys
GET
Issue an agent API key (secret shown once)
POST
Revoke an agent API key
DELETE
List agents
GET
Create an agent identity without issuing credentials
POST
Disable an agent (instantly invalidates its keys)
POST
Re-enable a disabled agent
POST
List onboarded domains
GET
Add a delegated or purchased domain
POST
Get one domain's detail and nameserver records
GET
The org's deliverability rollup (console)
GET
List the org's deliverability findings (console)
GET
The domain's current outbound provider route (console)
GET
The domain's retiring-sender ledger (console)
GET
List / search the org's suppression rows
GET
Export the org's suppression rows as CSV
GET
Revoke (un-suppress) one org-scope suppression row
POST
List commerce approvals for an org
GET
Create an exact-price domain request without charging or registering
POST
Create a reviewable upgrade or downgrade without charging
POST
Get a commerce approval request
GET
Approve once and optionally create bounded future authority
POST
Deny a pending commerce request
POST
Cancel a commerce request before irreversible work
POST
Resume the same idempotent request after a recoverable blocker
POST
Get Stripe's hosted payment-authentication link for a human
GET
List bounded future domain-purchase authority
GET
Create bounded future domain-purchase authority
POST
Update a spend control with version fencing
PUT
Disable a spend control
DELETE
List the org's console audit log
GET
List project webhooks
GET
Register a project webhook
POST
Get one project webhook
GET
Delete a project webhook
DELETE
Update a project webhook
PATCH
Get the org's console settings
GET
Update a subset of the org's console settings
PATCH
List every inbox in the org
GET
Create an inbox from the console
POST
Permanently delete an inbox and its authenticated sender
DELETE
Update an inbox's enforced daily recipient limit
PATCH
Shared-inbox feed; recent threads across every org inbox
GET
List recent messages for an org inbox
GET
Get a single message (with attachment metadata) for an org inbox
GET
List a message's attachment metadata for an org inbox
GET
Download one attachment's bytes for an org inbox
GET
List persistent threads for an org inbox
GET
Get one persistent thread and its messages
GET
Send a message from an org inbox
POST
Thread-aware console reply from an org inbox
POST
Create a single-use ticket for the console realtime stream
POST
Live Approvals queue stream (console plane, Server-Sent Events)
GET
Approvals queue (Review Loop, console plane)
GET
Get one review (intent + current draft + turns + diff)
GET
Approve a draft and send it (human authority)
POST
Edit a draft, capture the diff, and send (human authority)
POST
Reject a draft (human authority)
POST
Post a human comment on a review's chat thread (console side-panel)
POST
Browse the category registry (console plane)
GET
Create a category from the console
POST
Get one category (console plane)
GET
Soft-delete a category (console plane, human authority)
DELETE
Rename / re-describe a category (console plane, human authority)
PATCH
Merge a category into another (console plane, human authority)
POST
Graduate a category one rung up (console plane, human authority)
POST
Demote a category one rung down (console plane, human authority)
POST
Read a category's graduation gate status (console plane)
GET
Read a category's backlog reconciliation status (console plane)
GET
Read a category's demand-driven pacing state (console plane)
GET
Run the D19 backlog reconciliation sweep on demand (console plane)
POST
Set a category's risk-dial overrides (console plane, human authority)
PATCH
Read the effective risk dial (console plane)
GET
Set the account-default risk dial (console plane, human authority)
PATCH
Set/clear the never-graduate lock on a category (console plane, human authority)
POST
Read the account-default review policy (console plane)
GET
Set the account-default review policy (console plane, human authority)
PATCH
Set/clear the per-inbox review-policy override (console plane, human authority)
PATCH
Read the effective rule stack (console plane)
GET
Read the rule/category change audit log (console plane)
GET
Undo a rule change (console plane, human authority)
POST
List BYO review-agent links (console plane)
GET
Link a BYO review-agent to an inbox (console plane)
POST
Delete a BYO review-agent link (console plane)
DELETE
billing
Overview
Receive Stripe billing webhooks
POST
Get org billing state and plan entitlements
GET
Create a Stripe Checkout Session for an Extrovert paid plan
POST
Create a Stripe Checkout Session for an annual managed-domain registration
POST
Create a Stripe Billing Portal Session for payment recovery and subscription management
POST
unsubscribe
Overview
Render the unsubscribe confirmation page
GET
Record an unsubscribe (RFC 8058 one-click or preferences form)
POST
suppressions
Overview
Pre-check a recipient or list the org's suppression rows
GET
Revoke (un-suppress) one org-scope suppression row
POST
reviews
List review requests (Review Loop, agent plane)
GET
Drain review events (non-blocking)
GET
Long-poll for a review event
GET
Ack review events (advance cursor)
POST
Get one review request (current draft + intent + state)
GET
Get a review's append-only thread turns
GET
Get the human's assembled feedback for a review (diff + comments + decision + new rules)
GET
Post a chat turn on a review's thread (agent question)
POST
Post a new agent draft (redraft) under a parent_revision CAS
POST
Withdraw a pending review (composing agent)
POST
Re-stamp a draft's rules-version without redrafting ($0 escape valve)
POST
Get the reviewer's decision context for a review (BYO review-agent plane)
GET
Submit a reviewer decision (approve/edit/reject/escalate)
POST
categories
Browse the category registry (Review Loop, agent plane)
GET
Propose a new category (agent plane)
POST
Get one category (agent plane)
GET
Rename / re-describe a category (agent plane, metadata only)
PUT
Read the effective risk dial (Review Loop, agent plane)
GET
Read a category's graduation gate status (agent plane)
GET
Propose graduating a category (agent plane; cannot flip the bit)
POST
Read the D19 backlog-reconciliation status (agent plane)
GET
Read the demand-driven pacing state for a category (agent plane)
GET
reputation
The caller's org deliverability rollup
GET
List the org's deliverability findings
GET
rules
Get the ordered writing-rule set (precedence ladder applied)
GET
Save a writing rule (append-only by supersession)
PUT
Read the rule/category change audit log (agent plane, read-only)
GET
Undo a rule change (restore the prior version)
POST
Promote a rule between the category and general/house-style layers
POST
Retire a rule (soft delete)
POST
jobs
Poll an async job's status
GET
Payments
x402 test mode
Operating Extrovert
Package and MCP availability
Rate limits & quotas
Self-host
Website
Console
Select theme
Dark
Light
Auto
Overview
Copy Markdown
Open
Open in ChatGPT
Open in Claude
View in Markdown
inboxes
Section titled “inboxes”
Create, list, get, update, and delete inboxes. Paid plans can also fetch mail-client credentials.