Skip to main content
You pay per call. Fixed prices run from 0.001to0.001 to 0.50 a call, and inbox reads are free (Tool pricing). Tools with variable costs, such as email send, voice, and commerce, quote before they charge (Quote-based pricing). There are no API keys or subscriptions.

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:
  1. Your agent makes a request
  2. OneShot responds with 402 Payment Required and a price
  3. Your agent signs a USDC payment (in ETH mode the SDK tops up USDC first when it runs low)
  4. The request executes
x402 is how a wallet session pays per call. Hosted and access-token sessions spend from a prepaid balance instead, which you can fill by card or crypto (see Funding an agent’s credits).

Payment methods

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

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.

Email

The first send on a new domain carries one-time costs. After that, a send on a verified domain costs 0.01plus0.01 plus 0.001 per additional recipient. New domain (first send): 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.01,6to15quote0.01, 6 to 15 quote 0.02, 16 to 25 quote $0.03. Use the figure on the quote instead of computing it from the rate.
The quote endpoint returns an exact cost breakdown before you commit. Domain registration is one-time. After 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 ($0 on send-only domains; always itemized on the quote). Maximum 500 recipients per request.
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_mode on 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 whose provisioning_status is still unprovisioned). A provisioned domain keeps the mode it was created with and charges per new address whether or not you pass mailbox_mode.
  • from_mailbox does not trigger the fee. Choosing sales@ over the default agent@ 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 19.99ononeand19.99 on one and 0.01 on the other. Check mailbox_mode per domain; don’t assume the pool is uniform.
Before paying, treat 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 (passing from_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.
Domain Rotation explains the selector. The domain pool listing endpoint shows what’s in your pool.

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

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
Examples:
Reading your SMS inbox (the list and get endpoints) is free.

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

Browser

A browser session costs 0.0006perstep,witha0.0006 per step, with a 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.
Check the Budget endpoint for spend entries and remaining funds while a goal runs.

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.
  1. Call POST /v1/credits/checkout with { amount } (same 0.01to0.01 to 1000 bounds as the x402 top-up). Authenticate as for any agent-write route: a signed wallet proof or an access token, never a bare X-Agent-ID. This creates the Checkout Session only; nothing is credited yet.
  2. The response is { session_id, url }. Send the payer to url.
  3. 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.
  4. 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.