TODAY SMS

API

JSON API через HTTPS. Передавайте ключ API в заголовке Authorization. Цены, возвраты и обратный отсчёт 20 минут такие же, как на сайте.

Базовый адрес

https://today-sms.com/api/v1

Авторизация

Заголовок Authorization: Bearer YOUR_API_KEY. Создайте ключ на странице «Ключ API» после первого пополнения. До 300 запросов в минуту.

curl https://today-sms.com/api/v1/balance \
  -H "Authorization: Bearer YOUR_API_KEY"

GET /balance

Ваш баланс в USD.

Пример ответа

{
  "balance": "42.5000",
  "currency": "USD"
}

GET /apps

Сервисы, для которых сейчас есть номера: код, название, минимальная цена, страны.

Пример ответа

[
  { "app": "telegram", "name": "Telegram", "from": "0.4515", "countries": 61 }
]

GET /prices?app=telegram

Страны для одного сервиса, сначала самые дешёвые: код страны, код ISO, цена, доступные номера.

Пример ответа

[
  { "country": "indonesia", "iso": "id", "price": "0.4515", "stock": 702866 }
]

POST /numbers {"app":"telegram","country":"indonesia"}

Покупает номер. Сумма списывается с баланса.

Пример ответа

{
  "id": 1042,
  "phone": "+6281234567890",
  "price": "0.4515",
  "status": "waiting",
  "expires_at": "2026-10-14T09:20:00Z"
}

GET /numbers/{id}

Статус и все полученные на данный момент SMS.

Пример ответа

{
  "id": 1042,
  "status": "received",
  "sms": [ { "code": "482913", "text": "Your code is 482913", "at": "2026-10-14T09:02:11Z" } ]
}

POST /numbers/{id}/cancel

Отменяет номер без SMS через 120 секунд после покупки. Полный возврат.

Пример ответа

{
  "id": 1042,
  "status": "canceled",
  "refunded": "0.4515"
}

POST /numbers/{id}/finish

Закрывает номер после получения кода.

Пример ответа

{
  "id": 1042,
  "status": "finished"
}

Статусы

waitingНомер готов, SMS ещё нет
receivedПришло хотя бы одно SMS
finishedЗакрыт после получения кода
canceledОтменён, сумма возвращена
expiredSMS не пришло вовремя, сумма возвращена
checkingОтвет поставщика неясен; если номер не появится, возврат в конце отсчёта

Ошибки

При ошибке возвращается статус не 2xx и JSON с кодом ошибки.

{
  "error": "not_enough_balance"
}
unauthorizedКлюч API не указан или неверен
not_allowedAPI доступен после первого пополнения
bad_requestОбязательное поле не указано или неверно
no_numbersСейчас нет номеров для этого сервиса и страны
not_enough_balanceСначала пополните баланс
too_many_openСлишком много открытых номеров; завершите или отмените часть
too_earlyОтмена доступна через 120 секунд после покупки
has_smsSMS уже пришло; номер нельзя отменить
not_foundВ вашем аккаунте нет такого номера
try_againПоставщик не подтвердил отмену; попробуйте через минуту
rate_limitedСлишком много запросов за минуту