208 приложений154 стран

API v12026-11-04

JSON API для заказа номеров для верификации и чтения SMS-кодов.

Базовый 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"}}
API SMS-верификации: REST JSON для номеров WhatsApp, Telegram и Google | SNSVerify