How pricing works
Each call is paid for on its own. A wallet session pays with USDC on Base through the x402 Payment Required protocol:- Your agent makes a request
- OneShot responds with
402 Payment Requiredand a price - Your agent signs a USDC payment (in ETH mode the SDK tops up USDC first when it runs low)
- The request executes
Payment methods
Tool pricing
All prices are in USD (USDC) per request. Rows marked dynamic are priced by quote; see below.Quote-based pricing
Variable-cost operations quote before they charge. Request a quote, review the price, then authorize payment.
Verified domain (subsequent sends):
Bulk examples (verified domain):
Service fees round to the cent and the per-recipient rate is a tenth of a cent, so on a verified domain the fee moves in one-cent steps: 1 to 5 recipients quote 0.02, 16 to 25 quote $0.03. Use the figure on the quote instead of computing it from the rate.
Which domains charge the mailbox fee
The fee belongs to the domain, set when the domain was created. A call cannot opt in or out. A domain charges it when/email/domains reports
mailbox_mode: "mailbox". On such a domain, every address not already listed
active in its addresses[] bills the one-time fee on its first send, including
the default agent@. Once the address is active, it is free from then on.
Domains reporting mailbox_mode: "relay" never charge it.
Common mistakes:
- Omitting
mailbox_modeon your quote does not make the send relay. That request parameter picks a mode only while a domain is unprovisioned (brand new, or one you own whoseprovisioning_statusis stillunprovisioned). A provisioned domain keeps the mode it was created with and charges per new address whether or not you passmailbox_mode. from_mailboxdoes not trigger the fee. Choosingsales@over the defaultagent@doesn’t change the domain’s mode. A different address is simply a different mailbox, and on a relay domain it costs nothing either way.- Two similar-looking domains can differ. If one was registered in mailbox mode
and the other in relay mode, the same code path bills 0.01
on the other. Check
mailbox_modeper domain; don’t assume the pool is uniform.
mailbox_provisioning_fee on the
quote as authoritative: 0 means nothing extra is
billed.
Domain pool, rotation & warmup
Rotation, listing, and pause/resume cost nothing extra; you pay per send as above. Agents that own multiple sender domains get a managed pool.
Cost implications:
- Each domain has its own daily cap, so a second verified domain doubles your headroom without raising the per-send price.
- Newly registered domains stay in
pool_status='warming'(out of rotation) until warmup graduates them, typically a few weeks at the day-1 ramp. Rotation skips them meanwhile, but explicit sends (passingfrom_address) still work at the normal verified-domain rate. - Pools are per agent. Domains owned by different wallets are isolated, so one agent’s reputation can’t affect another’s.
Voice Call
Price depends on duration and whether you need a dedicated phone number.
Conference calls (multiple participants) use a shared OneShot number, so there is no phone registration fee.
SMS
SMS costs $0.0035 per segment per recipient.
Segment sizes:
- Standard characters (GSM-7): 160 characters per segment
- Unicode/emoji: 70 characters per segment
Purchase
A purchase costs the quoted total: product price, shipping, tax, and a service fee. The base tool fee is $0.00.Build Site
A build starts at $1.00 for 3 sections. It includes hosting, SSL, CDN, and stock images from Unsplash.
Example builds:
Browser
A browser session costs 0.005 minimum. Sessions navigate sites, fill forms, and extract data.Compute
A compute goal deposits one budget upfront. Paid tool calls draw from it, and whatever is left when the goal ends comes back as OneShot credits. You get one receipt per goal, for the amount spent.
The estimate adds an orchestrator allowance, a 20% platform fee on estimated tool spend, and a $0.05 quote fee to its tool estimates. Those lines size the deposit; they are not charged separately, so any part not spent on tools is credited back.
Funding an agent’s credits
Access-token sessions (Grok Bot, cloud runners, any client without a wallet key) spend from a prepaid credit balance instead of signing x402 payments per call. Fill it with USDC/ETH on Base or with a card. Once credited, both methods produce the same ledger row and count the same toward spend budgets and spend reporting:Funding a pilot without crypto
A card can fund an agent’s credits. Stripe takes the payment and issues the receipt; OneShot credits the balance.- Call
POST /v1/credits/checkoutwith{ amount }(same 1000 bounds as the x402 top-up). Authenticate as for any agent-write route: a signed wallet proof or an access token, never a bareX-Agent-ID. This creates the Checkout Session only; nothing is credited yet. - The response is
{ session_id, url }. Send the payer tourl. - At Stripe Checkout, the payer enters a card. For a business receipt they also enter a company name (required) and VAT/tax ID (collected when Stripe supports it for their country). Stripe, not OneShot, collects these details, generates the receipt/invoice PDF through its
invoice_creation, and emails it to the payer. - When Stripe confirms the payment, OneShot’s webhook credits the agent’s balance for the same amount. The result matches a USDC top-up: same credit-ledger entry type, same effect on daily and per-transaction spend budgets, and the same appearance in spend history and receipts.
Card top-ups do not yet support org-level balances shared across agents, USD invoicing with net terms, or purchase orders/contracts. Each card top-up funds one agent’s own balance, like an x402 top-up.
Getting started
Fund your wallet
Get USDC or ETH on Base and start calling tools.
SDK auto-payments
The SDK handles x402 payments.
Rate limits
Rate limits per endpoint type.