Skip to main content
Email is one of the most fundamental primitives in Naive API v2. Every company gets a system domain auto-provisioned on registration, and agents can create inboxes, send mail, and read replies — all scoped to the authenticated identity. This guide covers the full email lifecycle: domain setup, inbox provisioning, sending, and reading.

CLI First

Tools

ToolTypeDescription
create_inboxCoreCreate a new email inbox on the company’s domain
delete_inboxCoreDeactivate an email inbox
list_inboxesCoreList all available inboxes for the company
send_emailCoreSend an email from a specific inbox
list_inbox_emailsCoreList received emails for an inbox
get_emailCoreRead the full body of a specific email

Domain Prerequisites

Before sending email, your company needs an active (verified) domain. System domains are auto-provisioned on registration but may start as pending_dns until the email-provider records are verified.
If your domain shows pending_dns, trigger verification:
See Domain Management for the full BYOD workflow.

Creating Inboxes

Create email addresses on your company’s active domain. Each inbox gets a dedicated identity.
Response:

Parameters

ParamTypeRequiredDefaultDescription
local_partstringYesThe part before @ (min 2 chars, alphanumeric + dots/hyphens)
domain_idstringNoAutoSpecific domain UUID (defaults to company’s first active domain)
You can create multiple inboxes on the same domain — support@, sales@, notifications@, etc.

Sending Email

The send_email tool requires the inbox UUID you’re sending from. This enforces identity — agents can only send from addresses they own.
Response:

Parameters

ParamTypeRequiredDefaultDescription
from_inboxstringYesInbox UUID to send from
tostringYesRecipient email address
subjectstringYesEmail subject line
bodystringYesEmail body (plain text or HTML)
reply_tostringNoReply-to address override
Cost: 10 credits per email (deducted immediately on success)

Reading the Inbox

List received emails

Response:

Read a specific email

Error Handling

ErrorCauseRecovery
invalid_inboxInbox UUID not found or not owned by this agentUse GET /v1/email/inboxes to see available inboxes
no_active_domainCompany has no verified domainCheck GET /v1/domains and verify with POST /v1/domains/:id/verify
domain_not_verifiedSending from an unverified domainRun naive domains verify <id> or POST /v1/domains/:id/verify
insufficient_creditsNot enough credits to sendCheck balance with GET /v1/status
duplicate_recordEmail address already exists (active)Use a different local_part

Typical Workflow