Skip to main content

Initialize

All examples below work with either initialization method.

Send Email

from_domain must be a domain you’ve provisioned through OneShot. from_mailbox defaults to agent and from_domain to oneshotagent.com, so the default sender is [email protected]. from_name is the human-readable 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 real dedicated mailbox (better deliverability + per-address warmup) instead of the default relay (header-only) send. It adds a one-time mailbox_provisioning_fee to the quote. It only applies at first setup — an already-provisioned domain keeps the mode it was created with, and requesting mailbox on an existing relay domain returns 400 mailbox_mode_conflict.The corollary is the part that surprises people: never passing mailbox_mode doesn’t make your sends relay sends. If a domain was set up in mailbox mode, every address on it that isn’t already active bills the one-time fee on its first send — the default agent@ included. Call listDomains() and read mailbox_mode per domain to see which of yours charge; from_mailbox has no bearing on it.

Bulk Email

Send the same email to multiple recipients:
The SDK automatically handles bulk quoting and pricing. Service fees scale with the number of recipients.

Voice Calls

Make phone calls that can accomplish objectives autonomously:

SMS Messages

Send text messages to one or multiple recipients:

Deep Research

Poll Inbox

People Search & Enrichment

Email Finder & Verification

Commerce - Search & Buy

Search the web and get structured results instantly (synchronous — no polling):

Web Read

Read any web page and get markdown content with a screenshot:

Browser Automation

Navigate websites, fill forms, extract structured data, and interact with web apps:

Person Intelligence

Look up anyone by email, name, or social URL. Each method runs async and returns when the job finishes.

Universal Tool Method

Call any OneShot tool using the universal tool() method:

Check Wallet Balance

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

Spend Budgets

Cap what the agent can spend per day and per call. Enforced by the API, so the cap survives restarts and is shared across every process using this wallet:

Error Handling

Build Production Websites

Generate and deploy fully-functional websites from product descriptions:

Update Existing Website

Iterate on an existing website with new content:

Complete Agent Example

Next Steps

API Reference

Explore all available endpoints

SDK Source

View SDK source code on GitHub