API для SMS-підтвердження

Купівля номера, перевірка коду та скасування виконуються одним HTTP-запитом. Це поширений у галузі віртуальних номерів формат handler_api, тож програми реєстрації та боти підключаються одразу, достатньо вказати адресу і ключ.

Отримати ключ API

Після входу створіть ключ у меню API на екрані акаунта. Ключ показується лише один раз під час створення, тож одразу збережіть його. API використовує той самий баланс і ті самі ціни, що й веб-версія.

Базова URL-адреса

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

Основні запити

actionЩо ми робимоПриклад відповіді
getBalanceПеревірити балансACCESS_BALANCE:12.50
getPrices&service=telegram&country=krЦіни та доступні номери за сервісами{"kr":{"telegram":{"cost":3.2,"count":7922}}}
getNumber&service=telegram&country=krКупити номерACCESS_NUMBER:ID:PHONE
getStatus&id=IDПеревірити кодSTATUS_WAIT_CODE / STATUS_OK:CODE
setStatus&id=ID&status=8Скасувати номер (до отримання коду, повне повернення)ACCESS_CANCEL
setStatus&id=ID&status=3Отримати ще один код на той самий номерACCESS_RETRY_GET
setStatus&id=ID&status=6ЗавершитиACCESS_ACTIVATION

Параметри запиту

НазваОбов'язковоОпис
api_keyУсіКлюч API, створений на екрані акаунта
actionУсіgetBalance, getPrices, getNumber, getStatus, setStatus
servicegetNumberКод сервісу (наприклад: telegram, whatsapp, google). Збігається з адресою сторінки у списку сервісів
countrygetNumberkr (корейський номер 010, за замовчуванням теж kr)
idgetStatus, setStatusID номера, який повертає getNumber (починається з N-)
statussetStatus8 скасувати, 3 ще один код, 6 завершити, 1 готово

Текст відповіді та значення

ВідповідьЗначенняГроші
ACCESS_NUMBER:ID:PHONEНомер отриманоСписується вартість номера
STATUS_WAIT_CODEОчікуємо кодБез змін
STATUS_OK:CODEКод надійшовОплату завершено
STATUS_WAIT_RETRY:CODEЧекаємо наступний код (разом із попереднім)Без доплат
STATUS_CANCELСкасовано або час вийшовПовернено, якщо коду не було
ACCESS_CANCELСкасованоПовне повернення
ACCESS_RETRY_GETЧекаємо ще один код на той самий номерБез доплат
ACCESS_ACTIVATIONВикористання номера завершеноБез змін
NO_BALANCEПоповніть баланс і отримуйте одразуНе списується
NO_NUMBERSНомери цієї країни зараз недоступніНе списується
NO_ACTIVATIONSВідкрито 20 номерівНе списується
EARLY_CANCEL_DENIEDНомер з отриманим кодом не скасовуйте, а завершуйте (6)Без змін
BAD_KEYНеправильний ключ APIНе списується
BAD_SERVICE / BAD_COUNTRYНеправильний код сервісу або країниНе списується
NO_ACTIVATIONID номера не знайденоБез змін
TOO_MANY_REQUESTSПеревищено ліміт 300 запитів на хвилинуНе списується

Приклади різними мовами

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)

Як це працює

  • Отримайте номер через getNumber, введіть його у формі реєстрації, а потім викликайте getStatus кожні 5 секунд.
  • STATUS_OK:коли код надійде, введіть його і завершіть через setStatus 6.
  • Якщо код не надійде протягом 20 хвилин, вартість номера автоматично повернеться на баланс.
  • Можна надсилати до 300 запитів на хвилину.
API для SMS-підтвердження | 010SMS