Выберите язык

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

SMS-верификация прямо из вашего кода

Один HTTPS-вызов даёт вашему боту или платформе настоящий номер для WhatsApp, Telegram и многих других сервисов. Получайте код через вебхук или long polling и платите только за номера, на которые он пришёл.

  • 1 321сервисов
  • 145стран
  • 0,10 $минимальная цена за номер
  • Автовозврат, если код не пришёл

curl

curl -s -X POST https://smsgrab.com/api/dev/v1/activations \
  -H "Authorization: Bearer $SMSGRAB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"service":"whatsapp","country":"indonesia"}'

Python

activation = requests.post(
    "https://smsgrab.com/api/dev/v1/activations",
    headers={"Authorization": f"Bearer {key}"},
    json={"service": "whatsapp", "country": "indonesia"},
).json()

Node.js

const activation = await fetch('https://smsgrab.com/api/dev/v1/activations', {
  method: 'POST',
  headers: { Authorization: `Bearer ${key}`, 'Content-Type': 'application/json' },
  body: JSON.stringify({ service: 'whatsapp', country: 'indonesia' }),
}).then((response) => response.json());

PHP

$activation = json_decode((string) $client->post('activations', [
    'json' => ['service' => 'whatsapp', 'country' => 'indonesia'],
])->getBody(), true);

Go

order := map[string]any{"service": "whatsapp", "country": "indonesia"}
err := call("POST", "/activations", order, idempotencyKey(), &activation)
201 Created
{
  "id": "5c1d0c2e-9f3a-4b7e-8a61-2f0c9d4e7b10",
  "compat_id": 100000123,
  "status": "WAITING_SMS",
  "service_id": "whatsapp",
  "country_id": "indonesia",
  "phone_number": "+6281234567890",
  "price_minor": 18,
  "currency": "USD",
  "expires_at": "2026-09-27T10:25:00.000Z",
  "sms": []
}

Создано для автоматизации

Всё, что нужно вашей интеграции, — с тем же запасом номеров, учётом и возвратами, что и в приложении.

  • Понятный REST API

    Предсказуемый JSON, идемпотентные покупки и ясные причины ошибок, на которые можно реагировать.

  • Подписанные вебхуки

    События с подписью HMAC для каждого кода и смены статуса, с повторами в течение 24 часов.

  • Long polling

    Держите запрос до 30 секунд и получайте код в момент его прихода.

  • Совместимость с sms-activate

    Направьте свои инструменты на новый адрес. Действия и ответы останутся прежними.

  • Ключи под вашим контролем

    Ключи только для чтения или для покупок, списки разрешённых IP, дневные лимиты, срок действия и замена без простоя.

  • Автоматические возвраты

    Код не пришёл до истечения номера? Деньги сразу вернутся на баланс.

  • Использование и журнал запросов

    Ежедневные запросы, расходы и ошибки по каждому ключу, а также журнал за последние 7 дней с фильтрами.

  • Цены за объём

    Цены от оптовой стоимости, которые сами снижаются по мере роста вашего месячного объёма.

Запуск за четыре шага

До первого номера — всего несколько вызовов.

  1. Создайте аккаунт

    Зарегистрируйтесь по адресу электронной почты и подтвердите его. Приложение и сайт используют один аккаунт.

  2. Создайте API-ключ

    Выберите доступ, ограничьте ключ своими серверами и один раз скопируйте секрет.

  3. Купите номер

    Отправьте сервис и страну методом POST. Номер и цена придут сразу.

  4. Получите код

    Дождитесь его через long polling или вебхук, а затем завершите активацию.

Цены, которые снижаются по мере роста

Цены для разработчиков строятся от оптовой стоимости каждого номера плюс наценка, которая уменьшается с вашим объёмом за 30 дней.

  • Никогда не дороже того же номера в приложении
  • Не меньше 0,10 $ за номер
  • За номера без кода деньги возвращаются автоматически
  • Уровень обновляется через несколько минут после достижения
  • Списание в USD с того же баланса, что и в приложении

Наценка по расходам разработчика за 30 дней

Наценка для разработчиков по расходам за 30 дней
Расходы разработчика за 30 дней Наценка к оптовой цене Пример цены
До 100,00 $ +80 % 0,18 $ на 28 % дешевле, чем в приложении
От 100,00 $ +70 % 0,17 $ на 32 % дешевле, чем в приложении
От 500,00 $ +60 % 0,16 $ на 36 % дешевле, чем в приложении
От 2 000,00 $ +50 % 0,15 $ на 40 % дешевле, чем в приложении

Пример: предложение с оптовой стоимостью 0,10 $, которое в приложении стоит 0,25 $.

Получить API-ключ

Переход

Переходите с sms-activate одной строкой

Наш совместимый адрес работает по тому же протоколу, поэтому боты и панели для sms-activate заработают, как только вы смените базовый адрес и ключ.

https://smsgrab.com/api/stubs/handler_api.php
  • getNumber, getStatus, setStatus, getPrices и все остальные стандартные действия
  • Числовые ID активаций, коды сервисов и ID стран, которые вы уже используете
  • Те же ключи, лимиты, цены, возвраты и вебхуки, что и в REST API
Справочник по совместимости

curl

BASE="https://smsgrab.com/api/stubs/handler_api.php?api_key=$SMSGRAB_API_KEY"

curl -s "$BASE&action=getBalance"
curl -s "$BASE&action=getNumber&service=tg&country=6"
curl -s "$BASE&action=getStatus&id=100000123"
curl -s "$BASE&action=setStatus&id=100000123&status=6"

Python

import os

import requests

BASE = "https://smsgrab.com/api/stubs/handler_api.php"
KEY = os.environ["SMSGRAB_API_KEY"]


def action(name: str, **params) -> str:
    response = requests.get(BASE, params={"api_key": KEY, "action": name, **params}, timeout=30)
    response.raise_for_status()
    return response.text


print(action("getBalance"))
answer = action("getNumber", service="tg", country=6)
if answer.startswith("ACCESS_NUMBER:"):
    _, activation_id, number = answer.split(":")
    print(activation_id, number)

В реальном времени

Коды приходят прямо на ваш сервер

Подпишитесь на нужные события, и мы доставим их на ваш HTTPS-адрес с подписью, которую можно проверить.

  • Номер куплен
  • Код получен
  • Активация завершена
  • Активация отменена
  • Активация истекла
  • Оплата возвращена
  • Баланс заканчивается
Руководство по вебхукам
600запросов в минуту на ключ
60покупок в минуту на ключ
100номеров в ожидании одновременно
30секунд long polling
  • Каждая доставка подписана HMAC-SHA256 с меткой времени
  • Только публичные HTTPS-адреса с проверкой перед каждой доставкой
  • Тестовые доставки, история за 30 дней и повторная доставка в один клик

Вопросы разработчиков

Сколько стоит API для разработчиков?

Подписки нет. Каждый номер стоит оптовую цену плюс 80 % наценки, которая снижается до 70 %, 60 % и 50 %, когда ваши расходы разработчика за 30 дней превышают 100, 500 и 2000 USD. Номер никогда не стоит меньше 0,10 USD и дороже, чем в приложении.

Что будет, если код не придёт?

Номер действует 20 минут. Если за это время код не пришёл или вы отменили номер, пока он ещё ждёт, деньги автоматически вернутся на баланс.

Можно ли использовать мою интеграцию с sms-activate?

Да. Замените базовый адрес на наш совместимый и используйте ключ SmsGrab. Стандартные действия, ответы и числовые ID останутся прежними.

Какие лимиты частоты?

По умолчанию каждый ключ может делать 600 запросов и 60 покупок в минуту, все ключи аккаунта вместе — 3000 запросов в минуту, и одновременно код могут ждать до 100 номеров.

Как защитить ключ?

Храните ключи только на серверах, давайте каждому приложению свой ключ, ограничьте его адресами серверов и задайте дневной лимит расходов. Если ключ мог утечь, замените или отзовите его в аккаунте.

У приложения и API общий баланс?

Да. API использует баланс вашего аккаунта SmsGrab, а каждая покупка и возврат отображаются в кошельке, как и любые другие.

Больше ответов — в справочном центре

Готовы автоматизировать верификацию?

Создайте ключ в аккаунте и сделайте первый вызов за несколько минут.