Все запросы, кроме /api/login, /api/register, /api/restore_password и /api/public/*, требуют Bearer-токен. Те же методы доступны под префиксом /api/v1/....
Authorization: Bearer <api_token>
Базовый URL: https://sms-numbers.co/api
Для POST с телом отправляйте Content-Type: application/json. Ответы приходят с Content-Type: application/json; charset=UTF-8.
API номеров
GET
Список номеров
Возвращает номера аккаунта (со страной и статусом). Временные/OTP-номера по умолчанию скрыты.
GET https://sms-numbers.co/api/numbers
Header: Authorization: Bearer <api_token>
filter (string) — опциональный фильтр по статусу (filter_slug), например active.
include_disposable (boolean) — включить временные номера для регистрации.
GET
Информация о номере
Данные конкретного номера, принадлежащего вам.
GET https://sms-numbers.co/api/number/{id}
Путь: id (integer) — ID из списка. 404 если не найден.
GET
Поиск (устаревший)
Оставлен для совместимости. Для тарифов используйте публичные методы цен, затем POST /api/number/buy.
GET https://sms-numbers.co/api/numbers/search/{iso}
Путь: iso — ISO-код страны, например ru, us.
Тарифы: GET https://sms-numbers.co/api/public/countries и GET https://sms-numbers.co/api/public/prices/{country_id}.
POST
Подключение номера
Оформляет заказ долгосрочного номера. Списывает баланс; при недостатке средств возвращает 402 со ссылками на оплату. В профиле должен быть валидный email (для переадресации SMS).
POST https://sms-numbers.co/api/number/buy
JSON-тело:
agree_terms (обязательно) — согласие с условиями (true / 1).
number_price_id (integer) — ID тарифа из /api/public/prices/{id} (обязателен, если не указан country).
country (integer) — то же, что ID тарифа (алиас number_price_id).
period (integer, 1–36, по умолчанию 1) — срок в месяцах.
payment_method (опционально, по умолчанию balance) — оплата с баланса; иначе создаётся ожидающий платёж.
Каталог, покупка и данные для установки в мобильном приложении. Те же пути есть под /api/v1. Нужен Bearer-токен. В ответе только цена продажи в EUR, оптовая цена не отдаётся.
GET
Страны
Страны, для которых сейчас есть пакеты eSIM. Необязательный параметр q фильтрует по названию или ISO.
GET https://sms-numbers.co/api/esim/countries
GET
Пакеты
Тарифы страны. iso — двухбуквенный код, например de. В пакете есть package_id, объём data, validity_days и price_eur.
GET https://sms-numbers.co/api/esim/packages/{iso}
POST
Купить eSIM
Списывает баланс и возвращает заказ с QR и полями установки. Если баланса не хватает, ответ 402 со ссылками на оплату.
POST https://sms-numbers.co/api/esim/purchase
package_id (обязательно) — id пакета из списка пакетов.
{"package_id":"change-7days-1gb"}
GET
Мои заказы
Завершённые заказы eSIM, сначала новые. Параметр page — следующая страница (по 20).
GET https://sms-numbers.co/api/esim/orders
GET
Заказ
Один заказ: sims с qrcode, qrcode_url, iccid и direct_apple_installation_url, если Airalo их отдал, плюс HTML установки.
GET https://sms-numbers.co/api/esim/orders/{id}
API сообщений
GET
Список сообщений
Все SMS аккаунта.
GET https://sms-numbers.co/api/messages
GET
Диалоги
Последнее сообщение по каждому собеседнику (список чатов).
GET https://sms-numbers.co/api/app/messages
GET
Сообщения по номеру
История с {number}. Помечает сообщения как просмотренные.
GET https://sms-numbers.co/api/app/messages/{number}
POST
Отправить SMS
Исходящее SMS (одно или несколько). Нужен положительный баланс.
POST https://sms-numbers.co/api/message/send
from (string) — ваш виртуальный номер; если не найден — системный отправитель.
to (обязательно) — получатель; цифры и + ( ) -; несколько номеров через запятую.