기본 URL https://snsverify.com/api/v1
이 페이지의 모든 경로는 상대 경로예요. 금액은 소수점 두 자리까지 표시된 미국 달러(USD)로 표시되며, 시간은 UTC(ISO 8601) 기준이에요.
두 형식, 하나의 계정
이 페이지는 JSON을 사용하는 REST API에 대해 설명해요. 이미 일반적인 SMS 액티베이션 형식(handler_api.php와 action= 파라미터)을 지원하는 도구를 사용 중이라면, SMS 액티베이션 API를 사용하세요. 두 API 모두 동일한 API 키, 가격, 진행 중인 액티베이션 및 환불을 공유해요.
개요
SMS 인증 API를 사용하면 웹사이트를 열지 않고도 직접 소프트웨어에서 앱용 전화번호를 구매하고, 인증 SMS를 기다린 후 코드를 읽을 수 있어요. 각 주문은 하나의 액티베이션으로 구성돼요: 하나의 서비스, 하나의 국가, 하나의 번호, 그리고 20분의 코드 대기 시간이에요. 코드가 도착하지 않은 주문은 대기 시간이 끝나면 전액 환불돼요.
요청은 읽기 작업에는 GET을, 작업 실행에는 POST를 사용해요. POST 본문은 폼 필드나 JSON 형식이 될 수 있어요. 성공 응답은 JSON 객체로 오며, 오류도 항상 같은 구조로 반환돼요: {"error":{"code":"...","message":"..."}}.
인증
콘솔에서 API 키를 생성하세요. API 키는 한 번만 표시되며, 우리는 암호화된 복사본만 보관해요. Authorization 헤더에 베어러 토큰으로 전송하세요. 헤더를 설정할 수 없는 도구의 경우 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 | 1분에 300회 이상의 요청 (rate_limited). |
빠른 시작
curl로 UK WhatsApp 번호를 주문한 후, 코드가 도착할 때까지 몇 초마다 주문을 폴링하세요.
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);요청 제한
API 키당 분당 300회 요청이 가능하고, 계정당 최대 20개의 주문을 동시에 진행할 수 있어요. 주문 상태는 3~5초마다 확인하는 게 적당해요. 대부분의 인증 코드는 1분 이내에 도착하니까요.
주문 상태
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"}}