Your AI agent buys the number, reads the code and pays in crypto — no human, no KYC, no email.
Give any AI agent the power to provision anonymous phone numbers end to end — one-shot verification codes from $0.01 or dedicated rentals for 7, 14, 30 or 90 days from $4.20 — with zero human involvement at any step. Works with Claude Desktop, Claude Code, ChatGPT, Cursor, Continue, Cline, OpenClaw, n8n and any raw HTTP client. Coverage spans 133 services (Telegram, WhatsApp, Google, Discord, Tinder, OpenAI, Binance, Twitter/X, Coinbase, Apple, Microsoft, Steam, PayPal and more) across 116 countries and 400 carrier routes — 15,400+ live price points in total. Settle in 8 cryptocurrencies: Bitcoin, Monero, Ethereum, Litecoin, TRON, USDT (on ERC-20 and TRC-20) and SOL.
Two things an agent can buy here
Both draw on a single prepaid balance — fund it once from $25 and mix codes with rentals freely.
One-shot SMS verification
One number catches one code, then retires. Made for signups, OTP prompts and throwaway registrations. If no SMS shows up within 20 minutes the charge flows back to your balance automatically. Choose from 15,400+ live price points across 133 services and 116 countries.
POST /api/v1/numbers
Dedicated number rental
Your agent gets a line nobody else can touch for 7, 14, 30 or 90 days, catching unlimited incoming SMS from every one of our 133 services. The right pick for accounts that live on — Telegram bots, WhatsApp profiles, recovery numbers, standing 2FA. Order several in one call to rotate a fleet.
POST /api.php?action=rental_buy
One backend, three ways in
Whatever your stack looks like, all three routes land on the same accounts, the same balance and the same /api/v1/* machinery.
MCP — native for Claude, Cursor, Continue, Cline
Point your MCP config at https://smsnokyc.com/mcp and eleven tools light up at once: list_services, list_countries, list_catalog, quote, create_account, topup, topup_status, buy_number, get_sms, cancel_number, agent_help.
REST — for everything else that speaks HTTP
Clean JSON under /api/v1/ with Bearer seed auth and an OpenAPI 3.1 contract at /openapi.json. curl it, script it in Python or Go — anything with an HTTP stack qualifies.
x402-light — USDC funding in a single exchange
Built for wallet-holding agents. Add X-Payment-Mode: x402 on /api/v1/topup and the 402 response carries USDC deposit instructions — one round trip, no facilitator, no middleman.
From empty wallet to received code in six requests
There is no SDK, no OAuth dance, no inbox to confirm. Call one — a free account and its seed. Call two — a crypto invoice for whatever amount you pick between $25 and $1000. From there every code or rental simply debits the balance.
1Open the account
One free POST to /api/v1/account. Save the returned seed — it is the only key to the balance. Balance starts empty.
2Fund it with crypto
POST /api/v1/topup naming an amount and a coin — 8 accepted, from BTC and XMR to ETH, LTC, TRX, USDT on ERC-20 or TRC-20, plus SOL — then transfer exactly what the invoice states to the returned address.
3Watch the invoice settle
GET /api/v1/topup/{id} on a roughly 10 second loop. Once the network confirms, status flips to completed and the amount is credited to your balance.
4Purchase the number
POST /api/v1/numbers with a service_id and a country code. The balance is debited and a line is assigned within seconds.
5Pull the code
GET /api/v1/numbers/{id} until sms_code fills in — most codes land inside a minute. Cancel first and the full amount returns to balance.
# 1. Create a free account — returns the seed (only credential) curl -X POST https://smsnokyc.com/api/v1/account # → {"account_seed":"AaBb-CcDd-EeFf-GgHh", "balance":0.00, ...} # 2. Fund the balance (min $25, max $1000; pick any of 8 coins) curl -X POST https://smsnokyc.com/api/v1/topup \ -H 'Authorization: Bearer AaBb-CcDd-EeFf-GgHh' \ -H 'Content-Type: application/json' \ -d '{"amount_usd": 25, "crypto": "XMR"}' # → {"topup_id":12345, "address":"4Abc...", "amount_crypto":"0.025", ...} # 3. Pay XMR, then poll until completed curl https://smsnokyc.com/api/v1/topup/12345 \ -H 'Authorization: Bearer AaBb-CcDd-EeFf-GgHh' # 4. Buy a SINGLE-USE SMS number (debits $0.20–$1) curl -X POST https://smsnokyc.com/api/v1/numbers \ -H 'Authorization: Bearer AaBb-CcDd-EeFf-GgHh' \ -H 'Content-Type: application/json' \ -d '{"service_id": 1, "country": "US"}' # 5. Poll for SMS code (typically < 60 s) curl https://smsnokyc.com/api/v1/numbers/86421 \ -H 'Authorization: Bearer AaBb-CcDd-EeFf-GgHh' # → {"phone_number":"+1...", "sms_code":"847291", "status":"completed"}
# Alternative: rent a dedicated number for 7/14/30/90 days # (unlimited incoming SMS, all services accepted) curl -X POST 'https://smsnokyc.com/api.php?action=rental_buy' \ -H 'Cookie: smsnokyc_session=...' \ -d 'country=US&operator_id=1&duration=30&qty=1' # → {"order_ids":[12346], "total":15.00, "duration":30}
Wire up MCP in under a minute /mcp
Drop the snippet below into Claude Desktop, Claude Code, Cursor, Continue or Cline, restart the client, then simply ask for a US number to verify a Google signup. The agent takes it from there.
{
"mcpServers": {
"smsnokyc": {
"url": "https://smsnokyc.com/mcp"
}
}
}
Eleven tools, one endpoint
Once connected, run agent_help() — the server ships its own canonical walkthrough with worked examples, so the recipe travels with the tool.
x402-light — fund the balance in one 402 exchange x402-light
Attach the X-Payment-Mode: x402 header to /api/v1/topup and the API answers with HTTP 402, carrying USDC (ERC-20) deposit details in both the X-Payment-Required header and the JSON body. Transfer the USDC, poll once, start spending. Note that x402-light covers funding only — purchases themselves always debit the prepaid balance.
curl -X POST https://smsnokyc.com/api/v1/topup \ -H 'Authorization: Bearer AaBb-CcDd-EeFf-GgHh' \ -H 'X-Payment-Mode: x402' \ -d '{"amount_usd": 25}' # ← HTTP/1.1 402 Payment Required # ← X-Payment-Required: {"network":"erc20","token":"USDCETH", # ← "amount_usdc":"25","recipient":"0xff...","expires_in":900}
Dry-run sandbox — integrate first, spend later dry_run=1
Every /api/v1/* endpoint accepts ?dry_run=1, the X-Dry-Run: 1 header, or dry_run: true in the body. In this mode the synthetic top-up flips to completed after 60 seconds, the synthetic number hands back the code 123456 after 30 seconds, and nothing touches the production database. Wire up your whole agent loop before a single satoshi moves.
curl -X POST 'https://smsnokyc.com/api/v1/account?dry_run=1' \ -H 'Content-Type: application/json' \ -d '{"crypto":"XMR"}' # Then poll the synthetic topup, buy a number, get SMS "123456" — all fake.
What autonomous agents actually do with this
Recurring patterns pulled from real agentic traffic.
Bulk account provisioning
Growth agents spin up batches of Telegram, Discord or Twitter/X profiles in parallel, drawing a fresh number from a different country for each one.
Unblocking headless logins
A research agent hits a login wall that only accepts SMS OTP. It provisions a line, catches the code, finishes the session and drops the number.
Exchange signups without a personal SIM
Pass the phone check on Binance, Coinbase or Kraken while the real number stays private — the agent settles in stablecoin from its own wallet.
OTP flows tested across borders
Loop one API call per country and confirm your own product delivers OTP correctly across a 116-country footprint.
Assistants shielding user privacy
A user asks Claude or ChatGPT to open an account somewhere; the assistant sources the number and relays the code so the personal phone never appears anywhere.
White-label SMS tooling
Agent platforms wrap the API and expose anonymous verification as a built-in capability to their own customer base — resale with zero friction.
Standing lines for long-lived bots
A persistent agent keeps a 30 or 90 day Telegram number on rental and reads incoming alerts month after month — no recurring human re-verification.
Rotating fleets for ad operations
Rent five or ten long-term numbers spread across countries, bind one per marketing account, and let the agent rotate the pool on schedule.
Six reasons this fits agent workflows
The properties that let an autonomous process verify phones without a human safety net.
Identity-free by design
No name, no inbox, no document upload, no captcha maze. A seed phrase is the whole account, with optional TOTP 2FA on top.
Seconds, not minutes
Lines are assigned near-instantly and most codes arrive inside 60 seconds. Silence triggers an automatic refund.
116 countries on tap
One API surface, 400 carrier routes, and virtual, physical and premium operator tiers to pick from per route.
133 services covered
Telegram, WhatsApp, Google, Discord, OpenAI, Binance, Tinder, Twitter/X and more — query any service and country pair for a live quote.
Sandbox on every endpoint
dry_run=1 simulates the entire journey — account, top-up, purchase, code — while your wallet stays sealed.
Prepaid with an escape hatch
Cancel before the code lands and the balance is restored on the spot. Top up exact amounts to hard-cap what a session can spend.
Point your agent at the spec and go
Every endpoint, schema and error shape is documented in machine-readable form at https://smsnokyc.com/openapi.json — hand that URL to your agent and let it explore.
FAQ
Answers for teams wiring SmsNoKYC into agent pipelines.
Is $25 really the smallest first top-up?
Yes — $25 is the floor on every balance top-up, the first one included, with a $1000 ceiling per top-up. Nothing is skimmed as a fee: the full amount lands on your balance once the network confirms, and at typical code prices of $0.20 to $1 it covers roughly 25 to 125 verifications. The floor exists for one reason — it filters out disposable accounts that would drag down delivery quality for the whole pool.
Which agents and IDEs are supported?
Anything that speaks MCP connects natively: Claude Desktop, Claude Code, Cursor, Continue, Cline and every other Model Context Protocol client. Agents without MCP support — ChatGPT integrations, OpenClaw, n8n workflows, plain Python scripts, long-running managed agents — hit the identical backend over HTTPS at /api/v1/* with the same seed-based Bearer auth and the same flow.
No code arrived — do I lose the money?
No. Fire /api/v1/numbers/{id}/cancel at any point before a code lands and the full charge bounces straight back to your balance. Forgot to cancel? The order self-expires at the 20 minute mark and refunds itself. Money only stays spent when a code actually arrives on a number you kept open.
Can I integrate without spending real crypto?
Append ?dry_run=1 to any /api/v1/* call — or send the X-Dry-Run: 1 header, or put dry_run: true in the JSON body. The sandbox walks itself forward: the seed comes back as AAAA-DRYR-DRYR-DRYR, the top-up completes after 60 seconds, buy_number issues a synthetic +1-555-DRY-XXXX line, and get_sms serves the code 123456 after 30 seconds. No payment rail is contacted, no rows hit topups or orders, nothing real is provisioned. Every MCP tool takes the same dry_run flag.
One-shot verification or rental — which one do I need?
A one-shot verification (POST /api/v1/numbers) gives you a single number that catches a single code, stays live for 20 minutes and typically costs $0.20 to $1 — built for signups and OTP prompts. A rental (POST /api.php?action=rental_buy) hands your agent a dedicated line for 7, 14, 30 or 90 days that accepts unlimited incoming SMS from every service, starting at $4.20 — built for accounts the agent keeps alive, like a Telegram bot it monitors for months. Both draw from one shared balance funded in top-ups of $25 or more. A native /api/v1/rentals endpoint is on the roadmap; until then the legacy rental_buy action accepts the same Bearer seed auth.