HTTP/HTTPS API

Подключайте номера, принимайте и отправляйте SMS из своего сервиса. Авторизация по Bearer-токену, JSON-ответы, публичные методы без ключа.

API

Быстрый старт

1
Создайте аккаунт или войдите в кабинет.
2
Включите API в настройках и скопируйте токен.
3
Авторизация
Передавайте токен в заголовке Authorization.
4
Методы
Используйте эндпоинты ниже для номеров и SMS.
5
Баланс
Для покупки номера и отправки SMS пополните счёт.

Аутентификация

Все запросы, кроме /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) — оплата с баланса; иначе создаётся ожидающий платёж.

Пример тела:

{"agree_terms":true,"number_price_id":123,"period":1}
POST

Отключение номера

Отменяет неподключённый заказ (с возвратом при оплате с баланса) или планирует отключение активного номера.

POST https://sms-numbers.co/api/number/cancel
  • id (обязательно, integer) — ID номера.
  • asap (boolean, опционально) — отключить сразу; иначе до valid_till.
POST

Настройки номера

Переадресация входящих SMS и пользовательский тег.

POST https://sms-numbers.co/api/number/update
  • id (обязательно).
  • email — переадресация на email (dest_email).
  • number — переадресация на телефон (dest_number).
  • user_tag — своя метка.

API сервисов (временные / OTP)

POST

Купить временный номер

Заказ disposable-номера для сервиса (≈15 минут). Та же логика баланса / ссылок на оплату.

POST https://sms-numbers.co/api/service/buy
  • service_id (обязательно) — ID сервиса из /api/public/services.
  • country_id (обязательно) — ID страны из /api/public/services/{id}/countries.
  • agree_terms (обязательно) — согласие с условиями.
  • payment_method (опционально, по умолчанию balance).

Сценарий: GET /api/public/services → GET /api/public/services/{id}/countries → POST /api/service/buy.

{"service_id":10,"country_id":226,"agree_terms":true}

Туристическая eSIM

Каталог, покупка и данные для установки в мобильном приложении. Те же пути есть под /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 (обязательно) — получатель; цифры и + ( ) -; несколько номеров через запятую.
  • body (обязательно) — текст.

Аккаунт и платежи

GET

Профиль

Объект текущего пользователя.

GET https://sms-numbers.co/api/account/profile
POST

Обновить профиль

Опциональные поля: firstname, lastname, phone, country, city, address, zip, company, telegram_id.

POST https://sms-numbers.co/api/account/update
GET

Баланс

Возвращает credit и код валюты.

GET https://sms-numbers.co/api/account/balance
GET

История платежей

Платежи аккаунта, новые сверху.

GET https://sms-numbers.co/api/payments
POST

Создать платёж

Создаёт ожидающее пополнение и возвращает ссылку на оплату.

POST https://sms-numbers.co/api/payment/create
  • amount (обязательно, от 1 до 2000) — сумма в EUR.
  • method (обязательно) — card или crypto.
  • number_price_id (опционально) — привязать описание тарифа номера.

В ответе есть payment_link → /api/payment/{id}/{method}/pay.

Публичные методы

Авторизация не нужна (кроме login/register, где выдаётся токен).

GET

Список стран

Все страны каталога.

GET https://sms-numbers.co/api/public/countries
GET

Страны с номерами

Страны, где есть долгосрочные тарифы.

GET https://sms-numbers.co/api/public/countries/numbers
GET

Информация о стране

Страна, операторы (MCC/MNC) и доступные типы продуктов.

GET https://sms-numbers.co/api/public/country/{id}
GET

Тарифы по стране

Долгосрочные (numbers_prices), disposable (numbers_disposable_prices), исходящие SMS (messages_outgoing_prices) и метаданные страны.

GET https://sms-numbers.co/api/public/prices/{country_id}
GET

Список сервисов

OTP / сервисы регистрации, доступные через API.

GET https://sms-numbers.co/api/public/services
GET

Страны сервиса

Страны и цены setup для сервиса (id из списка сервисов).

GET https://sms-numbers.co/api/public/services/{id}/countries
POST

Вход

Тело: email, password. Возвращает data.token.

POST https://sms-numbers.co/api/login
POST

Регистрация

Тело: email, password (мин. 6); опционально firstname, lastname. Возвращает пользователя с API-токеном.

POST https://sms-numbers.co/api/register
POST

Сброс пароля

Тело: email — отправляет ссылку для сброса.

POST https://sms-numbers.co/api/restore_password

Ответы сервера

200 OKУспешно
400 Bad RequestНеверные параметры запроса
401 UnauthorizedНет токена или он неверный
402 Payment RequiredПараметры верные, запрос не выполнен (например, мало баланса)
403 ForbiddenЗапрещено / ошибка валидации
404 Not FoundРесурс не найден
422 UnprocessableНельзя обработать (например, нет email в профиле)
429 Too Many RequestsПревышен лимит запросов
500 / 502 / 503 / 504Ошибка на стороне сервера

Успех: {"success": true, "data": {...}, "message": "..."}

Ошибка: {"success": false, "message": "...", "data": {...}}

Sign up icon

Регистрация

Зарегистрируйтесь сейчас, подтвердите e-mail и получите деньги на счёт для тестирования номеров