API для розробників

Автоматизуйте верифікації у великих масштабах

API SNSPhone дозволяє вашим інструментам замовляти номери США, які не є VoIP, читати SMS-коди та керувати орендою. Два формати: REST API з JSON та загальний формат активації SMS для існуючих скриптів.

Швидкий старт

Базовий URL https://snsphone.com/api/v1. Створіть ключ на сторінці API в консолі та надсилайте його як Authorization: Bearer spk_... (або поле ключа). Усі номери є номерами США, які не є VoIP. Гроші в USD з 2 десятковими знаками, час у форматі ISO 8601 UTC, 300 запитів на хвилину на ключ. Ціни станом на 2026-11-03.

Python

import os, time, requests

API = "https://snsphone.com/api/v1"
H = {"Authorization": f"Bearer {os.environ['SNSPHONE_KEY']}"}

order = requests.post(f"{API}/orders", headers=H, data={"service": "google"}).json()["order"]
print("Use this US 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://snsphone.com/api/v1";
const H = { Authorization: `Bearer ${process.env.SNSPHONE_KEY}` };

const { order } = await fetch(`${API}/orders`, {
  method: "POST", headers: H, body: new URLSearchParams({ service: "discord" }),
}).then((r) => r.json());
console.log("Use this US 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);

Каталог

GET/services

Кожен код сервісу з його назвою, категорією, ціною верифікації та періодами оренди. Ключ не потрібен.

Публічний, ключ не потрібен.

curl "https://snsphone.com/api/v1/services"
{"country":"us","services":[{"code":"whatsapp","name":"WhatsApp","category":"Messaging","verification":"0.90","rentals":[]},{"code":"telegram","name":"Telegram","verification":"0.45","rentals":[{"days":365,"period":"1 year","price":"37.44"}]}]}

GET/prices?service=telegram

Ціни в USD, опціонально для одного сервісу. Ключ не потрібен.

Публічний, ключ не потрібен.

curl "https://snsphone.com/api/v1/prices?service=telegram"
{"country":"us","prices":[{"service":"telegram","type":"verification","days":null,"price":"0.45"},{"service":"telegram","type":"rental","days":365,"price":"37.44"}]}

GET/balance

Ваш баланс в USD.

Потрібен ваш API ключ.

curl "https://snsphone.com/api/v1/balance" \
  -H "Authorization: Bearer $KEY"
{"balance":"25.00","currency":"USD"}

Верифікації

POST/orders

Купує верифікацію (201). Повертає номер США та час завершення 20 хвилинного вікна.

Потрібен ваш API ключ.

curl -X POST "https://snsphone.com/api/v1/orders" \
  -H "Authorization: Bearer $KEY" \
  -d "service=whatsapp"
{"order":{"id":"VR-7K2M9QX4PB","service":"whatsapp","country":"us","phone":"+14155550142","number":"4155550142","status":"waiting","code":null,"expires_at":"2026-11-03T12:20:00.000Z"},"window_minutes":20}

GET/orders/VR-7K2M9QX4PB

Одна верифікація з її статусом та кожним отриманим кодом. Статуси: waiting, received, finished, refunded, canceled.

Потрібен ваш API ключ.

curl "https://snsphone.com/api/v1/orders/VR-7K2M9QX4PB" \
  -H "Authorization: Bearer $KEY"
{"order":{"id":"VR-7K2M9QX4PB","status":"received","code":"482913","sms":"Your WhatsApp code is 482913"}}

GET/orders?status=open

Ваші відкриті верифікації (status=all для останніх 100).

Потрібен ваш API ключ.

curl "https://snsphone.com/api/v1/orders?status=open" \
  -H "Authorization: Bearer $KEY"
{"orders":[...]}

POST/orders/VR-7K2M9QX4PB/resend

Запитує ще один код на тому ж номері, після першого коду та поки вікно відкрите. Без додаткової оплати.

Потрібен ваш API ключ.

curl -X POST "https://snsphone.com/api/v1/orders/VR-7K2M9QX4PB/resend" \
  -H "Authorization: Bearer $KEY"
{"order":{"status":"received","waiting_for_resend":true}}

POST/orders/VR-7K2M9QX4PB/finish

Закриває верифікацію, яка отримала свій код.

Потрібен ваш API ключ.

curl -X POST "https://snsphone.com/api/v1/orders/VR-7K2M9QX4PB/finish" \
  -H "Authorization: Bearer $KEY"
{"order":{"status":"finished"}}

POST/orders/VR-7K2M9QX4PB/cancel

Скасовує до отримання коду. Повна сума повертається на ваш баланс.

Потрібен ваш API ключ.

curl -X POST "https://snsphone.com/api/v1/orders/VR-7K2M9QX4PB/cancel" \
  -H "Authorization: Bearer $KEY"
{"order":{"status":"canceled","refunded":"0.90"}}

Оренда

POST/rentals

Орендує номер США для одного сервісу та періоду (201). days є опціональним, якщо сервіс має один період.

Потрібен ваш API ключ.

curl -X POST "https://snsphone.com/api/v1/rentals" \
  -H "Authorization: Bearer $KEY" \
  -d "service=telegram&days=365"
{"rental":{"id":"RN-4J8T2W6QHM","service":"telegram","phone":"+13125550198","days":365,"period":"1 year","price":"37.44","status":"active","ends_at":"2027-11-03T12:00:00.000Z","messages":[]}}

GET/rentals?status=active

Ваші активні оренди з їх останніми повідомленнями (status=all для останніх 100).

Потрібен ваш API ключ.

curl "https://snsphone.com/api/v1/rentals?status=active" \
  -H "Authorization: Bearer $KEY"
{"rentals":[...]}

GET/rentals/RN-4J8T2W6QHM

Одна оренда з кожним отриманим SMS на ній.

Потрібен ваш API ключ.

curl "https://snsphone.com/api/v1/rentals/RN-4J8T2W6QHM" \
  -H "Authorization: Bearer $KEY"
{"rental":{"id":"RN-4J8T2W6QHM","status":"active","messages":[{"from":"Telegram","sms":"Telegram code: 57291","code":"57291","received_at":"2026-11-03T12:01:12.000Z"}]}}

POST/rentals/RN-4J8T2W6QHM/renew

Додає ще один період за тією ж ціною.

Потрібен ваш API ключ.

curl -X POST "https://snsphone.com/api/v1/rentals/RN-4J8T2W6QHM/renew" \
  -H "Authorization: Bearer $KEY"
{"rental":{"renewed":1,"ends_at":"2028-11-02T12:00:00.000Z"}}

POST/rentals/RN-4J8T2W6QHM/cancel

Скасовує протягом перших 20 хвилин, якщо SMS не надійшло. Усе сплачене повертається на ваш баланс.

Потрібен ваш API ключ.

curl -X POST "https://snsphone.com/api/v1/rentals/RN-4J8T2W6QHM/cancel" \
  -H "Authorization: Bearer $KEY"
{"rental":{"status":"canceled","refunded":"37.44"}}

Формат SMS-активації

Для інструментів, які вже підтримують загальний формат активації. Один URL, поле дії, прості текстові відповіді. Лише верифікації.

https://snsphone.com/stubs/handler_api.php?api_key=KEY&action=ACTION
ДіяДодаткові поляВідповідьЗначення
getBalanceнемаєACCESS_BALANCE:12.50Ваш баланс в USD.
getServicesListнемає{"status":"success","services":[{"code":"whatsapp","name":"WhatsApp"}]}Коди сервісів з ціною верифікації (JSON).
getCountriesнемає{"us":{"name":"United States","dial":"1"}}Лише США. country може бути us, 187 або пропущено.
getPrices&service=whatsapp{"us":{"whatsapp":{"cost":0.9,"count":100}}}Ціни в USD. Фільтр сервісу є опціональним.
getNumber&service=whatsapp&country=usACCESS_NUMBER:VR-7K2M9QX4PB:14155550142Купує верифікацію. Повертає id та номер з 1 на початку.
getStatus&id=VR-7K2M9QX4PBSTATUS_OK:482913STATUS_WAIT_CODE, STATUS_OK:<code>, STATUS_WAIT_RETRY:<last code> (запит ще одного коду), STATUS_CANCEL (скасовано або повернено кошти).
setStatus&id=VR-7K2M9QX4PB&status=3ACCESS_RETRY_GETstatus=1 готовий (ACCESS_READY), 3 ще один код (ACCESS_RETRY_GET), 6 завершити (ACCESS_ACTIVATION), 8 скасувати з повним поверненням коштів, якщо код не надійшов (ACCESS_CANCEL).

Помилки

Помилки REST надходять як {"error":{"code","message"}} з цими статусними кодами. Формат активації відповідає простим словом.

400Відсутнє або неправильне поле (bad_json, bad_period).
401Відсутній ключ або неправильний ключ (no_key, bad_key).
402Недостатньо коштів на балансі (no_balance).
404Невідомий сервіс, замовлення, оренда або кінцева точка, або продукт, який сервіс не пропонує (not_sold).
409Неможливо зараз (has_code, has_sms, too_late, not_ready, too_many_open, too_many_active, no_numbers).
429Більше 300 запитів за хвилину (rate_limited).
BAD_KEYВідсутній або неправильний API ключ.
BAD_ACTIONНевідома дія.
BAD_SERVICEНевідомий код сервісу.
BAD_COUNTRYНе США, або сервіс продається лише як оренда.
NO_BALANCEНедостатньо коштів на балансі.
NO_NUMBERSНаразі немає вільних номерів. Спробуйте ще раз через деякий час.
NO_ACTIVATIONНевідомий id, або він не належить вам.
EARLY_CANCEL_DENIEDКод вже надійшов, тому його неможливо скасувати.
NO_ACTIVATIONSВже відкрито 20 верифікацій.
TOO_MANY_REQUESTSБільше 300 запитів за хвилину.

Питання щодо API

Ключі, обмеження та опитування, відповіді.

Чи має SNSPhone API для SMS верифікації?

Так. REST API з JSON на /api/v1 для сервісів, цін, верифікацій та оренд, і загальний формат SMS активації на /stubs/handler_api.php.

Як автентифікувати запити до API?

Створіть ключ на сторінці API в консолі та надсилайте його як Authorization: Bearer spk_..., або як поле key. Ключі зберігаються лише у вигляді хешу і показуються один раз.

Які обмеження на кількість запитів до API?

300 запитів на хвилину на ключ, до 20 відкритих верифікацій та 20 активних оренд на обліковий запис.

Чи коштують замовлення через API більше, ніж через сайт?

Ні. API використовує ті самі ціни та правила повернення, що й консоль.

Як дізнатися, коли код надійшов?

Опитуйте GET /orders/{id} кожні кілька секунд. Статус змінюється з waiting на received, а поле code містить цифри.

API для SMS верифікації без VoIP: номери США через REST | SNSPhone