How pricing works
OneShot uses the x402 Payment Required protocol. Every API call is paid individually with USDC on Base. No API keys, no subscriptions.- Your agent makes a request
- OneShot responds with
402 Payment Requiredand a price - Your agent signs a USDC payment (or the SDK auto-swaps ETH to USDC)
- The request executes
Payment methods
API pricing
All prices are in USD (USDC) per request.Quote-based pricing
Some operations have variable costs. You request a quote, review the price, then authorize payment.Email Send
Email pricing depends on whether you already have a verified sender domain. New domain (first send):
Verified domain (subsequent sends):
Bulk examples (verified domain):
Which domains charge the mailbox fee
The fee is a property of the domain, decided when that domain was set up — not something a particular call opts into. A domain charges it when/email/domains reports
mailbox_mode: "mailbox". On such a domain, every address that isn’t already
listed active in its addresses[] bills the one-time fee on its first send —
the canonical agent@ default included. Once that address is active, it is free
forever. Domains reporting mailbox_mode: "relay" never charge it.
Three consequences that are easy to get wrong:
- Omitting
mailbox_modeon your quote does not make the send relay. That request parameter only picks a mode while a domain is still unprovisioned — brand new, or one you own whoseprovisioning_statusis stillunprovisioned. Once a domain is provisioned it always uses the mode it was created with, and keeps charging per new address whether or not you ever passmailbox_modeagain. from_mailboxis not the trigger. Choosingsales@over the defaultagent@doesn’t move a domain between modes. It only matters in that a different address is, by definition, a different mailbox — and on a relay domain it costs nothing either way.- Two similar-looking domains can differ. One may have been registered in
mailbox mode and another in relay mode, so the same code path bills 0.01 on the other. Check
mailbox_modeper domain rather than assuming your pool is uniform.
mailbox_provisioning_fee on the
quote is always the authoritative number: 0 means
nothing extra is billed.
Domain pool, rotation & warmup
Agents that own multiple sender domains get a managed pool out of the box. There is no separate fee for rotation, listing, or pause/resume — you pay per send, same as above.
Why this matters for cost-aware sending:
- Each domain in the pool carries its own daily cap, so adding a second verified domain doubles your headroom without paying more per send.
- Newly-registered domains stay in
pool_status='warming'(out of rotation) until warmup graduates them — typically a few weeks at the day-1 ramp. During that time the domain isn’t usable via rotation, but explicit sends (passingfrom_address) still work and cost the normal verified-domain rate. - The whole pool is per-agent: domains owned by different wallets are isolated. No cross-agent reputation contamination.
Voice Call
Voice calls are priced by 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 Send
SMS pricing is per message segment per recipient.
Segment sizing:
- Standard characters (GSM-7): 160 characters per segment
- Unicode/emoji: 70 characters per segment
Commerce Buy
Commerce purchases include the product price, shipping, tax, and a service fee. The base API fee is $0.00. You only pay the quoted total.Build
Build creates websites with hosting, SSL, CDN, and stock images from Unsplash.
Example builds:
Browser
Autonomous browser sessions for navigating websites, filling forms, and extracting data.Compute (Orchestrator)
Compute goals deposit a budget upfront. The orchestrator draws from it as it calls tools. Unused budget is tracked in your ledger.Getting started
Fund your wallet
Get USDC or ETH on Base and start making API calls.
SDK auto-payments
The SDK handles x402 payments automatically.
Rate limits
View API rate limits per endpoint type.