Skip to main content
VirtualSMS exposes an x402-compatible top-up endpoint so AI agents can fund a balance with a single stablecoin transfer and immediately receive a working API key. Each subsequent SMS verification draws from that balance at the same retail prices as the standard API path. This is the lowest-friction integration we offer for autonomous agents: one signature funds the account, and the agent then has a normal API key it can reuse for thousands of verifications. See pricing for the full cost breakdown across verification, rentals, and proxies.

Endpoint

Pricing per verification depends on service + country and matches the rates published at /api/v1/services. There is no per-call premium for the x402 path. Agents pay the same as customers using the REST API key path.

Supported networks

Polygon, Arbitrum, and Optimism are intentionally not in the manifest. VirtualSMS routes settlement through Base + Solana to keep gas + bridging overhead low for agent flows.

Request body

How the flow works

  1. Your agent sends POST /api/v1/x402/topup with the desired top-up amount
  2. The endpoint returns HTTP 402 Payment Required with a payment manifest listing every supported network/token + recipient wallet + price
  3. Your agent picks one network/token, signs an authorization for the amount, and submits it via the standard x402 X-PAYMENT header
  4. VirtualSMS verifies the signature, settles on-chain, then returns {api_key, balance_usd, user_id, endpoints}: the API key is immediately usable
  5. The agent then calls /api/v1/customer/purchase, /api/v1/customer/order/{id}, and the rest of the REST API with the issued key, drawing from the funded balance

Sample 402 response

Output schema (after successful settlement)

The returned api_key is a standard VirtualSMS key: it works with every REST endpoint, supports all services and countries we list, and can be re-used until the balance is exhausted or the agent tops up again against the same key.

Topping up an existing key

To add to a balance without provisioning a new account, include the existing API key:
The 402 manifest, signing flow, and settlement are identical. The response returns the same api_key plus the new balance_usd.

Why top-up instead of per-call settlement

An earlier per-call /sms-verify endpoint returned a flat 0.10quoteperverification.Deprecated20260430:flatpercallpricingdidnotfitour0.10 quote per verification. Deprecated 2026-04-30: flat per-call pricing did not fit our 0.05 to $7 service price range, and a single signature per SMS added meaningful latency for high-volume agents. The endpoint now returns HTTP 410 Gone with a pointer to /topup. One up-front signature funds N verifications at the same retail rates, and the resulting API key works with the full REST surface.

Discovering this endpoint

VirtualSMS is listed (or will be listed on first settlement) on:

Info endpoint

Returns the live wallet addresses, supported networks, and top-up range, useful for client introspection without triggering a 402.
Already have an account and want balance/history dashboards? Use the REST API with an x-api-key issued from the web app. Want an agent to provision its own key in one signature? Use x402 top-up.