SMS verification API

Buy numbers, check codes and cancel, each with a single HTTP request. It uses the handler_api format widely used in the virtual number industry, so sign-up software and bots connect by just entering the URL and key.

Get an API key

After logging in, create a key in the API menu on the account screen. The key is shown only once when created, so save it right away. The API uses the same credit and prices as the website.

Base URL

https://010sms.com/stubs/handler_api.php?api_key=API_KEY&action=...

Main requests

actionWhat we doSample response
getBalanceCheck creditACCESS_BALANCE:12.50
getPrices&service=telegram&country=krPrices and available numbers by service{"kr":{"telegram":{"cost":3.2,"count":7922}}}
getNumber&service=telegram&country=krBuy a numberACCESS_NUMBER:ID:PHONE
getStatus&id=IDCheck codeSTATUS_WAIT_CODE / STATUS_OK:CODE
setStatus&id=ID&status=8Cancel number (before a code arrives, full refund)ACCESS_CANCEL
setStatus&id=ID&status=3Get another code on the same numberACCESS_RETRY_GET
setStatus&id=ID&status=6FinishACCESS_ACTIVATION

Request parameters

NameRequiredDescription
api_keyAllAPI key created on the account screen
actionAllgetBalance, getPrices, getNumber, getStatus, setStatus
servicegetNumberService code (e.g. telegram, whatsapp, google). Same as the service list page URL
countrygetNumberkr (Korean 010 number, kr if omitted)
idgetStatus, setStatusNumber ID returned by getNumber (starts with N-)
statussetStatus8 cancel, 3 request another code, 6 finish, 1 ready

Response strings and meanings

ResponseMeaningMoney
ACCESS_NUMBER:ID:PHONEYou got a numberNumber price is deducted
STATUS_WAIT_CODEWaiting for the codeAs is
STATUS_OK:CODECode receivedPayment complete
STATUS_WAIT_RETRY:CODEWaiting for the next code (previous code included)No extra cost
STATUS_CANCELCancelled or time is upRefunded if no code arrived
ACCESS_CANCELCancelledFull refund
ACCESS_RETRY_GETWaiting for another code on the same numberNo extra cost
ACCESS_ACTIVATIONYou have finished using this numberAs is
NO_BALANCETop up your credit and receive right awayNot deducted
NO_NUMBERSNumbers for that country are not available right nowNot deducted
NO_ACTIVATIONSYou have 20 open numbersNot deducted
EARLY_CANCEL_DENIEDFinish (6) instead of cancel once a code is receivedAs is
BAD_KEYInvalid API keyNot deducted
BAD_SERVICE / BAD_COUNTRYInvalid service or country codeNot deducted
NO_ACTIVATIONNumber ID not foundAs is
TOO_MANY_REQUESTSOver 300 requests per minuteNot deducted

Examples by language

import time, requests

BASE = "https://010sms.com/stubs/handler_api.php"
KEY = "API_KEY"

def call(**p):
    return requests.get(BASE, params={"api_key": KEY, **p}, timeout=30).text

r = call(action="getNumber", service="telegram", country="kr")
if not r.startswith("ACCESS_NUMBER"):
    raise SystemExit(r)
_, num_id, phone = r.split(":")
print("Number:", phone)

for _ in range(240):                      # 20 minutes
    s = call(action="getStatus", id=num_id)
    if s.startswith("STATUS_OK"):
        print("Code:", s.split(":")[1])
        call(action="setStatus", id=num_id, status=6)
        break
    time.sleep(5)

How it works

  • Get a number with getNumber, enter it on the sign-up screen, then call getStatus every 5 seconds.
  • STATUS_OK:When the code arrives, enter it and finish with setStatus 6.
  • If no code arrives within 20 minutes, the number price is refunded to your credit automatically.
  • Send up to 300 requests per minute.
SMS verification API | 010SMS