API для разработчиков

API DaySMS совместим с протоколом SMS-Activate. Если ваша программа умеет работать с SMS-Activate, укажите адрес сервера https://daysms.ru/stubs/handler_api.php и свой ключ из личного кабинета. Цены — в рублях, списание с баланса аккаунта.

Запрос

GET https://daysms.ru/stubs/handler_api.php?api_key=КЛЮЧ&action=ДЕЙСТВИЕ&...

Методы

action Параметры Ответ
getBalance — ACCESS_BALANCE:123.45
getNumber service, country, необязательно maxPrice (₽) ACCESS_NUMBER:ID:НОМЕР, ошибки NO_NUMBERS, NO_BALANCE, WRONG_MAX_PRICE:цена, BAD_SERVICE
getNumberV2 то же JSON: activationId, phoneNumber, activationCost, countryCode…
getStatus id STATUS_WAIT_CODE, STATUS_OK:КОД, STATUS_CANCEL
getStatusV2 id JSON с последним SMS: code, text, dateTime
setStatus id, status: 1 — номер готов, 3 — ждать ещё SMS, 6 — завершить, 8 — отменить (возврат) ACCESS_READY, ACCESS_RETRY_GET, ACCESS_ACTIVATION, ACCESS_CANCEL, EARLY_CANCEL_DENIED
getActiveActivations — JSON со списком активных номеров
getPrices необязательно service, country JSON {страна: {сервис: {cost, count}}}, цены в ₽. Ключ не нужен
getCountries — JSON со списком стран. Ключ не нужен
getServicesList — JSON со списком сервисов и кодов. Ключ не нужен

Логика работы

1. getNumber — получаете ID и номер, деньги списываются с баланса. 2. Вводите номер в целевом сервисе. 3. Опрашиваете getStatus раз в 3–5 секунд до STATUS_OK. 4. Завершаете setStatus&status=6. Если код не пришёл — setStatus&status=8 (не раньше чем через 2 минуты), деньги вернутся на баланс; через 20 минут номер отменяется автоматически.

Лимит — 10 запросов в секунду на ключ. При превышении возвращается TOO_MANY_REQUESTS.

Пример (Python)

import requests, time
API = "https://daysms.ru/stubs/handler_api.php"
KEY = "ВАШ_КЛЮЧ"
r = requests.get(API, params={"api_key": KEY, "action": "getNumber", "service": "tg", "country": 16}).text
_, act_id, phone = r.split(":")
while True:
    s = requests.get(API, params={"api_key": KEY, "action": "getStatus", "id": act_id}).text
    if s.startswith("STATUS_OK"):
        print("Код:", s.split(":", 1)[1]); break
    time.sleep(4)
requests.get(API, params={"api_key": KEY, "action": "setStatus", "id": act_id, "status": 6})