Skip to main content

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.
  1. Your agent makes a request
  2. OneShot responds with 402 Payment Required and a price
  3. Your agent signs a USDC payment (or the SDK auto-swaps ETH to USDC)
  4. The request executes

Payment methods

The SDK handles x402 payments automatically. Fund your wallet with USDC or ETH. For Stripe ACP, see the Stripe ACP docs.

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):
The quote endpoint returns an exact cost breakdown before you commit. Domain registration is a one-time fee. Beyond that you pay the per-send service fee, plus a mailbox_provisioning_fee per new address on domains that provision a mailbox per address — charged until that address is provisioned and active, then free ($0 on send-only domains; always itemized on the quote). Maximum 500 recipients per request.
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_mode on 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 whose provisioning_status is still unprovisioned. 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 pass mailbox_mode again.
  • from_mailbox is not the trigger. Choosing sales@ over the default agent@ 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 19.99ononeand19.99 on one and 0.01 on the other. Check mailbox_mode per domain rather than assuming your pool is uniform.
Before paying, 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 (passing from_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.
See Domain Rotation for the selector mechanics and the domain pool listing endpoint to see what’s currently in your pool.

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.
If a call fails its objective (success_evaluation = “fail”), you are charged at provider cost and credited the difference.

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
Examples:
Reading your SMS inbox is free. No payment required for inbox list or get endpoints.

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:
Updates to existing builds cost less. Store your request_id to iterate.

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.
The orchestrator estimates a budget before you pay. Check the Budget endpoint for remaining funds after execution.

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.