API для SMS-верифікації
Купуйте номери та читайте SMS-коди за допомогою простих HTTP GET або POST запитів. Відповіді у текстовому форматі, поширеному серед інструментів SMS-активації, запити до приватних номерів відповідають у JSON.
Початок роботи
- Адреса
- https://snscodes.com/stubs/handler_api.php
- Аутентифікація
- Параметр api_key. Створіть ключ на сторінці API вашого облікового запису; він показується один раз.
- Ліміт запитів
- 300 запитів на хвилину на ключ
- Гроші
- Ціни та баланс у доларах США, списані з того самого балансу, що й на сайті.
curl "https://snscodes.com/stubs/handler_api.php?api_key=$KEY&action=getNumber&service=telegram&country=us" # ACCESS_NUMBER:N-7KQ2M9XWD4:14155550123 curl "https://snscodes.com/stubs/handler_api.php?api_key=$KEY&action=getStatus&id=N-7KQ2M9XWD4" # STATUS_OK:482913
import time, requests
BASE = "https://snscodes.com/stubs/handler_api.php"
KEY = "YOUR_KEY"
r = requests.get(BASE, params={"api_key": KEY, "action": "getNumber", "service": "telegram", "country": "us"}).text
_, num_id, phone = r.split(":")
print("number", phone)
while True:
s = requests.get(BASE, params={"api_key": KEY, "action": "getStatus", "id": num_id}).text
if s.startswith("STATUS_OK"):
print("code", s.split(":")[1]); break
if s == "STATUS_CANCEL":
break
time.sleep(5)const BASE = "https://snscodes.com/stubs/handler_api.php";
const KEY = process.env.SNSCODES_KEY;
const call = async (q) => (await fetch(BASE + "?" + new URLSearchParams({ api_key: KEY, ...q }))).text();
const [, id, phone] = (await call({ action: "getNumber", service: "telegram", country: "us" })).split(":");
console.log("number", phone);
for (;;) {
const s = await call({ action: "getStatus", id });
if (s.startsWith("STATUS_OK")) { console.log("code", s.split(":")[1]); break; }
if (s === "STATUS_CANCEL") break;
await new Promise((r) => setTimeout(r, 5000));
}Отримати баланс action=getBalance
Повертає ваш баланс у доларах США.
ACCESS_BALANCE:42.50
BAD_KEYКлюч відсутній або неправильний.
Ціни на коди action=getPrices
Ціни за код за країною та сервісом. Обидва фільтри є необов’язковими.
| Параметр | Обов’язковий | Опис |
|---|---|---|
| service | ні | Код сервісу, наприклад telegram |
| country | ні | us, gb або au |
{"us":{"telegram":{"cost":3,"count":100}}}Купити номер для коду action=getNumber
Купує один номер для одного додатка. Сума списується з вашого балансу одразу та повертається, якщо код не надійшов протягом 20 хвилин.
| Параметр | Обов’язковий | Опис |
|---|---|---|
| service | так | Код сервісу з getPrices |
| country | так | us, gb або au |
ACCESS_NUMBER:N-7KQ2M9XWD4:14155550123
BAD_SERVICEНевідомий код сервісу.BAD_COUNTRYЦей сервіс не продається для цієї країни.NO_BALANCEНедостатньо коштів на балансі. Нічого не списується.NO_NUMBERSНаразі немає доступних номерів. Нічого не списується.NO_ACTIVATIONSУ вас вже є 20 активних номерів для кодів.
Отримати код action=getStatus
Опитуйте кожні 5-10 секунд, доки не надійде код.
| Параметр | Обов’язковий | Опис |
|---|---|---|
| id | так | Ідентифікатор з getNumber |
STATUS_OK:482913
STATUS_WAIT_CODESMS ще не надійшло.STATUS_WAIT_RETRY:482913Очікування іншого коду; показано останній.STATUS_CANCELСкасовано або повернено кошти.NO_ACTIVATIONНевідомий ідентифікатор.
Скасувати, повторити або завершити action=setStatus
status=8 скасовує номер без коду (повний повернення коштів), status=3 запитує інший код на тому ж номері, status=6 завершує його.
| Параметр | Обов’язковий | Опис |
|---|---|---|
| id | так | Ідентифікатор з getNumber |
| status | так | 8, 3 або 6 |
ACCESS_CANCEL
EARLY_CANCEL_DENIEDКод вже надійшов; завершіть замість скасування.ACCESS_RETRY_GETОчікування іншого коду.ACCESS_ACTIVATIONЗавершено.
Ціни на приватні номери action=getRentPrices
Ціна за весь період за країною та тривалістю. Повертає JSON.
| Параметр | Обов’язковий | Опис |
|---|---|---|
| country | ні | Дволітерний код країни |
{"us":{"sixMonths":35.99,"twelveMonths":59.99}}Купити приватний номер action=getRentNumber
Купує приватний номер на певний період. Повертає JSON.
| Параметр | Обов’язковий | Опис |
|---|---|---|
| country | так | Дволітерний код країни |
| period | так | oneMonth, threeMonths, sixMonths, twelveMonths, twoYears або threeYears |
{"status":"success","id":"N-3HV8QZ2K5M","phone":"14155550123","until":"2027-05-02T10:00:00.000Z"}BAD_PERIODЦей період недоступний для цієї країни.NO_BALANCEНедостатньо балансу.
Читати SMS приватного номера action=getRentStatus
Усі SMS, отримані приватним номером до цього часу. Повертає JSON.
| Параметр | Обов’язковий | Опис |
|---|---|---|
| id | так | Ідентифікатор з getRentNumber |
{"status":"success","state":"active","messages":[{"code":"482913","text":"Your code is 482913","from":"Telegram","at":"..."}]}Скасувати приватний номер action=setRentStatus
status=2 скасовує приватний номер з повним поверненням коштів, якщо SMS не надійшло і номеру менше 20 хвилин.
| Параметр | Обов’язковий | Опис |
|---|---|---|
| id | так | Ідентифікатор з getRentNumber |
| status | так | 2 |
{"status":"success"}EARLY_CANCEL_DENIEDSMS надійшло або минуло 20 хвилин.