Skip to main content
Initialize once.

Initialize

Email

from_domain must be a domain provisioned through OneShot. from_mailbox defaults to agent and from_domain to oneshotagent.com. from_name is the display name recipients see; omit it to send from the bare address.
Dedicated mailboxes: pass mailbox_mode: "mailbox" when first provisioning a new from_domain to give each address a dedicated mailbox (better deliverability, per-address warmup) instead of the default relay (send-only) mode. This adds a one-time mailbox_provisioning_fee to the quote. It applies only at first setup: a provisioned domain keeps the mode it was created with, and requesting mailbox on an existing relay domain returns 400 mailbox_mode_conflict.Omitting mailbox_mode does not make your sends relay sends. On a domain set up in mailbox mode, every address not already active bills the one-time fee on its first send, including the default agent@. Call listDomains() and read mailbox_mode per domain to see which charge. from_mailbox has no effect on it.

Bulk email

The SDK handles bulk quoting. Service fees scale with the number of recipients.

Voice calls

SMS

Deep research

Poll inbox

People search and enrichment

seniority takes any of owner, founder, c_suite, partner, vp, head, director, manager, senior, entry, intern. Common variants ("Vice President", "C-Level", "executive") are accepted, and a value that matches no level fails the search with invalid_input. industry is free text. An empty results array means the search ran and nobody matched. If the search could not be run, the call throws a JobError with a retryable code (service_unavailable, service_auth, rate_limited) instead of returning an empty result.

Find and verify email

Commerce: search and buy

Search the web and get structured results synchronously, without polling:

Web read

Read a web page as markdown, with a screenshot:

Browser automation

Person intelligence

Look up a person by name+company, email, phone or profile URL. Each method runs async and returns when the job finishes.

Universal tool method

Get balance

The agent.usdcAddress getter returns the USDC contract address on Base Mainnet: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913.

Spend budgets

Cap the agent’s spend per day and per call. The API enforces the cap, so it survives restarts and applies across every process using this wallet:

Error handling

Build production websites

Update existing website

Complete agent example

Next steps

API Reference

API reference

SDK Source

SDK source

Optional phone lookup

waitForPhones waits without purchasing phones. onStatusUpdate('completed', requestId) fires after this wait, before resolution; phones_pending: true may remain on timeout.