Базовый URL https://snsverify.com/api/v1
Каждый путь на этой странице относителен к нему. Суммы указаны в долларах США в виде строк с двумя десятичными знаками, время, UTC (ISO 8601).
Два формата, один аккаунт
Эта страница описывает REST API с JSON. Если ваш инструмент уже использует общий формат SMS-активации (handler_api.php с параметрами action=), используйте SMS activation API. Оба используют ваш API-ключ, цены, открытые активации и возвраты.
Обзор
API SMS-верификации позволяет вашему программному обеспечению приобретать номер телефона для приложения, ожидать SMS с кодом верификации и читать код, не открывая сайт. Каждый заказ, это одна активация: одно приложение, одна страна, один номер и окно в 20 минут. Заказы без кода полностью возвращаются в конце окна.
Запросы используют GET для чтения и POST для действий. Тела POST могут быть формами или JSON. Успешные ответы, это JSON-объекты; ошибки имеют одинаковую структуру: {"error":{"code":"...","message":"..."}}.
Аутентификация
Создайте API-ключ в консоли в разделе API key. Он показывается один раз; мы храним только зашифрованную копию. Отправьте его в заголовке Authorization как bearer token. Параметр key также принимается для инструментов, которые не могут устанавливать заголовки.
Authorization: Bearer vfk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Создание нового ключа сразу заменяет старый. Эндпоинты услуг, стран и цен работают без ключа.
Ошибки
| HTTP | Значение |
|---|---|
| 400 | Отсутствующее или некорректное поле (missing_filter, bad_json). |
| 401 | Нет ключа или неправильный ключ (no_key, bad_key). |
| 402 | Недостаточно средств на балансе (no_balance). |
| 404 | Неизвестное приложение, страна, заказ или эндпоинт. |
| 409 | Заказ не может выполнить это сейчас (has_code, not_ready, too_many_open, no_numbers). |
| 429 | Более 300 запросов в минуту (rate_limited). |
Быстрый старт
Закажите номер WhatsApp в Великобритании с помощью curl, затем опрашивайте заказ каждые несколько секунд, пока не появится код.
curl -X POST https://snsverify.com/api/v1/orders \ -H "Authorization: Bearer $SNSVERIFY_KEY" \ -d service=whatsapp -d country=gb
Python
import os, time, requests
API = "https://snsverify.com/api/v1"
H = {"Authorization": f"Bearer {os.environ['SNSVERIFY_KEY']}"}
order = requests.post(f"{API}/orders", headers=H,
data={"service": "whatsapp", "country": "gb"}).json()["order"]
print("Use this number:", order["phone"])
while True:
o = requests.get(f"{API}/orders/{order['id']}", headers=H).json()["order"]
if o["code"] or o["status"] in ("refunded", "canceled"):
break
time.sleep(4)
print("Code:", o["code"])Node.js
const API = "https://snsverify.com/api/v1";
const H = { Authorization: `Bearer ${process.env.SNSVERIFY_KEY}` };
const { order } = await fetch(`${API}/orders`, {
method: "POST", headers: H,
body: new URLSearchParams({ service: "telegram", country: "nl" }),
}).then((r) => r.json());
console.log("Use this number:", order.phone);
let o = order;
while (!o.code && !["refunded", "canceled"].includes(o.status)) {
await new Promise((r) => setTimeout(r, 4000));
({ order: o } = await fetch(`${API}/orders/${order.id}`, { headers: H }).then((r) => r.json()));
}
console.log("Code:", o.code);Ограничения по частоте запросов
300 запросов в минуту на ключ и до 20 открытых заказов на аккаунт. Опрос заказа каждые 3-5 секунд более чем достаточен: большинство кодов приходят в течение минуты.
Статусы заказов
waitingНомер открыт, и код еще не поступил.receivedПоступил хотя бы один код; запросите еще один с помощью resend, пока окно открыто.finishedЗакрыт после получения кода, вами или в конце окна.refundedОкно завершилось без кода; полная сумма вернулась на ваш баланс.canceledВы отменили до получения кода; полная сумма вернулась на ваш баланс.
Эндпоинты
GET/services
Каждый код услуги с его названием, категорией и минимальной ценой. Ключ не требуется.
{"services":[{"code":"whatsapp","name":"WhatsApp","category":"social","from":"0.31"}]}GET/countries
Каждый код страны (ISO, нижний регистр) с названием и кодом набора. Ключ не требуется.
{"countries":[{"code":"gb","name":"United Kingdom","dial_code":"44"}]}GET/prices?service=whatsapp&country=gb
Цены в USD. Фильтруйте по приложению, стране или обоим. Ключ не требуется.
{"prices":[{"service":"whatsapp","country":"gb","price":"0.94"}]}GET/balance
Ваш баланс в USD.
{"balance":"25.00","currency":"USD"}POST/orders
Покупает номер (HTTP 201). Возвращает заказ с номером телефона и временем окончания окна.
Тело: service=whatsapp&country=gb
{"order":{"id":"AC-7K2M9QX4PB","service":"whatsapp","country":"gb","phone":"+447700900123","price":"0.94","status":"waiting","code":null,"expires_at":"2026-11-04T12:20:00.000Z"},"window_minutes":20}GET/orders/AC-7K2M9QX4PB
Один заказ с его статусом и всеми полученными кодами. Статусы: waiting, received, finished, refunded, canceled.
{"order":{"id":"AC-7K2M9QX4PB","status":"received","code":"482915","sms":"Your WhatsApp code: 482-915"}}GET/orders?status=open
Ваши открытые заказы; status=all возвращает последние 100.
{"orders":[{"id":"AC-7K2M9QX4PB","status":"waiting"}]}POST/orders/AC-7K2M9QX4PB/resend
Запрашивает еще один код на том же номере после первого кода, пока окно открыто. Без дополнительной платы.
{"order":{"status":"received","waiting_for_resend":true}}POST/orders/AC-7K2M9QX4PB/finish
Закрывает заказ, который получил свой код.
{"order":{"status":"finished"}}POST/orders/AC-7K2M9QX4PB/cancel
Отменяет до получения кода. Полная сумма возвращается на ваш баланс.
{"order":{"status":"canceled","refunded":"0.94"}}