SmsBuyz Instant SMS Verification Numbers
API

How to Use SmsBuyz API for SMS Verification — Developer Guide

Complete SMS verification API quickstart with curl and Python examples, endpoint overview, and error handling tips.

· 8 min read

I got tired of clicking through the SmsBuyz dashboard for every verification. Fifty activations a day doesn't scale with a mouse. The API fixes that — buy, poll, finish. Three endpoints and you're automated.

Base URL: https://smsbuyz.com/v1. Auth via Bearer token from your profile settings. All endpoints return JSON. This is current as of June 2026.

The loop

Every verification follows the same cycle:

BuyGET /v1/user/buy/activation/{country}/{operator}/{product}

PollGET /v1/user/check/{id} every 3–5 seconds

CloseGET /v1/user/finish/{id} on success, or /v1/user/cancel/{id} to bail and get refunded

Endpoint reference

EndpointWhat it does
GET /v1/user/profileBalance check before a buy batch
GET /v1/user/buy/activation/…Purchase a number — returns id + phone
GET /v1/user/check/{id}Poll for SMS — check the sms[] array
GET /v1/user/finish/{id}Mark order done, release the number
GET /v1/user/cancel/{id}Cancel pending order, refund balance
GET /v1/guest/pricesPrice list — no auth needed

Copy-paste examples

curl — buy a Telegram number:

curl "https://smsbuyz.com/v1/user/buy/activation/ru/any/telegram" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/json"

Python — full flow (WhatsApp example):

import time, requests

BASE = "https://smsbuyz.com/v1"
HEADERS = {"Authorization": "Bearer YOUR_TOKEN", "Accept": "application/json"}

r = requests.get(f"{BASE}/user/buy/activation/us/any/whatsapp", headers=HEADERS)
order = r.json()
order_id, phone = order["id"], order["phone"]

for _ in range(60):
    check = requests.get(f"{BASE}/user/check/{order_id}", headers=HEADERS).json()
    if check.get("sms"):
        code = check["sms"][0]["code"]
        requests.get(f"{BASE}/user/finish/{order_id}", headers=HEADERS)
        break
    time.sleep(5)

Errors I've actually hit

401 — expired or wrong token. Regenerate in profile settings.

402 — insufficient balance. Top up, retry buy.

Polling too fast — stick to 3–5 second intervals. Hammering check every 500ms won't make SMS arrive faster; it might get you throttled.

20-minute timeout — if sms[] stays empty, cancel the order. Balance returns automatically. Don't leave zombie orders open.

Migrating from 5sim? Same pattern — see our 5sim comparison. Full spec at /docs/api.

Ready to get started?

Create your free account and get +20% bonus on your first deposit.