Sign in with your access seed — that is all. No email, no password.
впервые здесь?
Двухфакторная аутентификация
Type the 6-digit code from your authenticator app, or any one of your recovery codes.
Создайте анонимный аккаунт
No email, no password, no KYC. On the next step you get a seed phrase — that phrase is the entire account.
уже есть сид-фраза?
Аккаунт создан
Your access seed:
Write this seed down now — it is shown only this once.
The seed is the one and only key to your account. Lose it and the balance is gone for good — there is no reset, no recovery and no support override.
API Проверки SMS — SMSNoKYC
Автоматизируйте OTP-верификацию от начала до конца. Бронируйте виртуальные номера в более чем 190 странах, читайте SMS-коды за секунды, арендуйте долгосрочные выделенные линии и управляйте каждым заказом через единый REST-интерфейс — без API-ключа, без KYC, с оплатой криптовалютой.
Требуется аутентификация. Каждый запрос опирается на cookie сессии, поэтому вы должны быть авторизованы в своём аккаунте SMSNoKYC. Установите сессию через веб-интерфейс или точку аутентификации перед вызовом.
Почему разработчики выбирают SMSNoKYC API
SMSNoKYC — наиболее гибкий SMS-верификационный API для разработчиков, которым важны анонимность, глобальное покрытие и предсказуемые цены. В отличие от устаревших SMS-OTP-провайдеров, закрывающих доступ за корпоративными контрактами, ежемесячными минимумами и KYC-анкетами, SMSNoKYC работает с любым HTTPS-клиентом, тарифицирует строго поштучно и принимает 20+ криптовалют: Bitcoin, Monero, Ethereum, USDT, USDC, Solana, Litecoin, XRP, TRON и Toncoin.
Типичные сценарии применения: автоматизация массовой регистрации аккаунтов для QA, получение одноразовых паролей для headless-агентов и CI-ботов, проверка процессов с обязательным указанием телефона в рамках непрерывной интеграции, аренда выделенных долгосрочных номеров для аккаунтов Telegram и WhatsApp, которым нужен бесперебойный приём SMS, а также геораспределённая верификация в 190+ странах с явным выбором уровня оператора — виртуального, физического или премиум.
Аутентификация
API использует аутентификацию сессий на основе cookies. Для программной аутентификации:
Отправьте POST-запрос на /auth-api.php с вашей seed-фразой
Сохраните cookie сессии из ответа
Включайте cookie во все последующие API-запросы
POST/auth-api.php
Аутентифицируйтесь с помощью вашей seed-фразы и установите сессию.
Параметр
Тип
Обязательный
Описание
action
string
обязательный
Должно быть "login"
seed
string
обязательный
Ваш 16-символьный seed доступа (напр. AbC3-dEf4-gHj5-kLm6)
cURL
Python
JavaScript
# Login and save session cookie
curl -X POST https://smsnokyc.com/auth-api.php \
-d "action=login&seed=AbC3-dEf4-gHj5-kLm6" \
-c cookies.txt
import requests
session = requests.Session()
resp = session.post("https://smsnokyc.com/auth-api.php", data={
"action": "login",
"seed": "AbC3-dEf4-gHj5-kLm6"
})
data = resp.json()
print(data) # {"success": true, "user": {...}}# session object now holds the cookie for all future requests
Все ответы в формате JSON. Конечные точки POST принимают тела запросов application/json и application/x-www-form-urlencoded.
Лимиты запросов
API применяет следующие ограничения по частоте запросов:
Эндпоинт
Лимит
Окно
Аутентификация
5 попыток
15 минут
Все остальные endpoints
Без строгого лимита
—
Ограничение частоты запросов: Аутентификация ограничена 5 попытками за 15 минут. Другие endpoints в настоящее время не ограничены, но чрезмерное использование может быть замедлено. Используйте разумные интервалы между запросами.
Обработка ошибок
Все ошибки возвращают объект JSON с полем <code>error</code>:
{
"error": "Description of what went wrong"
}
HTTP код
Значение
200
Успех (проверьте тело ответа на ошибки уровня приложения)
403
Недействительный CSRF-токен
405
Неверный HTTP-метод (напр. GET на endpoint только для POST)
429
Лимит запросов превышен
Распространённые ошибки на уровне приложения:
Ошибка
Причина
"Login required"
Сессия истекла или не аутентифицирован
"Insufficient balance"
Недостаточно средств — включает поля need и have
"Service not available for this country"
Нет в наличии или сервис неактивен для выбранной страны
"Missing country or service"
Обязательные параметры не были предоставлены
Список стран
GET/api.php?action=countries
Возвращает все активные страны с доступными виртуальными номерами. Аутентификация не требуется.
resp = session.get("https://smsnokyc.com/api.php", params={"action": "countries"})
countries = resp.json()
for c in countries:
print(c["code"], c["name"])
const resp = await fetch("https://smsnokyc.com/api.php?action=countries");
const countries = await resp.json();
Возвращает доступных операторов (провайдеров) для конкретной страны. У каждого оператора есть тип и ценовой множитель, применяемый к базовой цене сервиса.
Типы операторов:virtual — VoIP-номера, самые дешёвые, могут быть заблокированы некоторыми сервисами. physical — реальные SIM-карты, более высокий процент успеха. premium — самая быстрая доставка (~10 сек), наивысший процент успеха.
Купить номер (SMS-активация)
POST/api.php?action=buy
Купите виртуальный номер для одноразовой SMS-верификации. Номер активен 20 минут. Если SMS не получено, ваш баланс автоматически возвращается.
Возвращает ваши 50 последних заказов, включая номера телефонов и SMS-коды. Опрашивайте этот endpoint для проверки входящих SMS-кодов по активным заказам.
Арендуйте один или несколько выделенных телефонных номеров. Номер принадлежит исключительно вам на весь период аренды и принимает неограниченное количество входящих SMS.
Параметр
Тип
Обязательный
Описание
country
string
обязательный
Код страны
operator_id
integer
обязательный
ID оператора
duration
integer
обязательный
7, 14, 30 или 90 дней
qty
integer
необязательный
Количество номеров для аренды (1–10, по умолчанию: 1)
Вот полный пример на Python, который выполняет аутентификацию, находит сервис, покупает номер и запрашивает SMS-код:
Python
import requests, time
BASE = "https://smsnokyc.com"
SEED = "AbC3-dEf4-gHj5-kLm6"
s = requests.Session()
# 1. Authenticate
s.post(f"{BASE}/auth-api.php", data={"action": "login", "seed": SEED})
# 2. Check balance
user = s.get(f"{BASE}/api.php?action=user").json()
print(f"Balance: ${user['balance']}")
# 3. Get services for USA
services = s.get(f"{BASE}/api.php?action=services&country=us").json()
whatsapp = next(svc for svc in services if svc["name"] == "WhatsApp")
print(f"WhatsApp: ${whatsapp['price']} ({whatsapp['stock']} in stock)")
# 4. Buy a number
order = s.post(f"{BASE}/api.php?action=buy", json={
"country": "us",
"service_id": whatsapp["id"]
}).json()
print(f"Order #{order['order_id']} created")
# 5. Poll for SMS codefor _ in range(60):
orders = s.get(f"{BASE}/api.php?action=orders").json()
my_order = next(o for o in orders if o["id"] == order["order_id"])
if my_order["sms_code"]:
print(f"SMS code: {my_order['sms_code']}")
print(f"Phone: {my_order['phone_number']}")
breakprint("Waiting for SMS...")
time.sleep(5)
else:
print("Timeout — balance will be refunded automatically")
Часто задаваемые вопросы
Для чего нужен API верификации SMSNoKYC?
Он открывает вашему собственному коду тот же каталог, что и сайт: виртуальные номера в более чем 190 странах для разовой OTP-верификации и для аренды на 7-90 дней. Через простой REST-интерфейс на JSON вы можете просматривать приложения, читать актуальные цены, бронировать номера, забирать входящие коды и возвращать средства за неудавшиеся активации — без KYC, с оплатой только криптовалютой.
Нужен ли API-ключ или OAuth-токен?
Нет. Аутентификация — это cookie сессии: один раз отправьте вашу 16-символьную фразу доступа POST-запросом на /auth-api.php, затем передавайте возвращённую cookie в каждом следующем вызове. Ничего не нужно выделять, ротировать или отзывать — вы входите один раз за сессию и остаётесь в ней всё время жизни cookie.
Сколько стоит API?
Вызовы API бесплатны — ни ежемесячной платы, ни подписки, ни минимального объёма. Вы платите только за номер: разовые активации от 0,05 $, выделенная аренда от нескольких долларов за 7 дней. Всё списывается с предоплаченного баланса, а любая активация, так и не получившая SMS, возвращается сама.
Какие языки и фреймворки могут его вызывать?
Работает всё, что умеет отправлять HTTPS-запрос — Python (requests, httpx), Node.js (fetch, axios), Go, PHP, Ruby, Java, C#, cURL из Bash и прочее. В документации есть готовые к копированию примеры на cURL, Python и JavaScript, а полный файл OpenAPI 3.0 по адресу /openapi.json позволяет сгенерировать типизированный клиент на нужном вам языке.
Что будет, если код верификации так и не придёт?
У каждой активации есть окно в 20 минут. Если за это время ничего не приходит, заказ отменяется сам, и полная цена возвращается на баланс — без тикета, без ручного повтора. Возвращённый баланс можно сразу потратить на другой номер, возможно на другой категории оператора (виртуальный, физический или премиум) ради более высокого процента успеха.
Есть ли у API ограничения по частоте?
Вход ограничен 5 попытками за 15 минут на IP, чтобы блокировать подбор фразы. Остальное — каталог, покупка, заказы, аренда — пока без жёсткого лимита, но держите разумные интервалы: опрашивать /api.php?action=orders раз в 3-5 секунд более чем достаточно для чтения SMS, а устойчивые всплески выше примерно 10 запросов/с могут ограничиваться на уровне WAF.