개발자 API
SMS 인증을 코드에서 바로
HTTPS 호출 한 번으로 봇이나 플랫폼이 WhatsApp, Telegram 등 다양한 서비스용 실제 번호를 받습니다. 코드는 웹훅이나 롱 폴링으로 받고, 코드를 받은 번호에만 비용을 지불하세요.
- 1,321개 서비스
- 145개국
- US$0.10번호당 최저가
- 자동코드 미수신 시 환불
curl
curl -s -X POST https://smsgrab.com/api/dev/v1/activations \
-H "Authorization: Bearer $SMSGRAB_API_KEY" \
-H "Content-Type: application/json" \
-d '{"service":"whatsapp","country":"indonesia"}'
Python
activation = requests.post(
"https://smsgrab.com/api/dev/v1/activations",
headers={"Authorization": f"Bearer {key}"},
json={"service": "whatsapp", "country": "indonesia"},
).json()
Node.js
const activation = await fetch('https://smsgrab.com/api/dev/v1/activations', {
method: 'POST',
headers: { Authorization: `Bearer ${key}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ service: 'whatsapp', country: 'indonesia' }),
}).then((response) => response.json());
PHP
$activation = json_decode((string) $client->post('activations', [
'json' => ['service' => 'whatsapp', 'country' => 'indonesia'],
])->getBody(), true);
Go
order := map[string]any{"service": "whatsapp", "country": "indonesia"}
err := call("POST", "/activations", order, idempotencyKey(), &activation)
{
"id": "5c1d0c2e-9f3a-4b7e-8a61-2f0c9d4e7b10",
"compat_id": 100000123,
"status": "WAITING_SMS",
"service_id": "whatsapp",
"country_id": "indonesia",
"phone_number": "+6281234567890",
"price_minor": 18,
"currency": "USD",
"expires_at": "2026-09-27T10:25:00.000Z",
"sms": []
}
자동화를 위해 설계
앱과 같은 번호 재고, 정산, 환불로 연동에 필요한 모든 것을 제공합니다.
-
간결한 REST API
예측 가능한 JSON, 멱등 구매, 바로 대응할 수 있는 명확한 오류 사유.
-
서명된 웹훅
코드와 상태 변경마다 HMAC 서명 이벤트를 보내고 24시간 동안 재시도합니다.
-
롱 폴링
요청을 최대 30초간 유지하고 코드가 도착하는 즉시 받으세요.
-
sms-activate 호환
기존 도구의 주소만 저희 엔드포인트로 바꾸세요. 액션과 응답은 그대로입니다.
-
직접 통제하는 키
읽기 전용 또는 구매 키, IP 허용 목록, 일일 한도, 만료, 중단 없는 교체.
-
자동 환불
번호가 만료될 때까지 코드가 오지 않으면 즉시 잔액으로 환불됩니다.
-
사용량과 요청 로그
키별 일일 요청, 지출, 오류와 최근 7일간의 필터 가능한 로그.
-
사용량 기반 가격
월간 사용량이 늘수록 자동으로 내려가는 도매가 기반 가격.
성장할수록 낮아지는 가격
개발자 가격은 각 번호의 도매 원가에 30일 사용량에 따라 줄어드는 마크업을 더해 산정합니다.
- 앱의 같은 번호보다 비싸지 않습니다
- 번호당 최소 US$0.10
- 코드를 받지 못한 번호는 자동 환불
- 등급은 도달 후 몇 분 안에 갱신
- 앱과 같은 잔액에서 USD로 청구
이전
한 줄만 바꿔 sms-activate에서 이전
호환 엔드포인트는 같은 프로토콜을 사용하므로 sms-activate용 봇과 패널은 기본 URL과 키만 바꾸면 작동합니다.
https://smsgrab.com/api/stubs/handler_api.php
- getNumber, getStatus, setStatus, getPrices 등 표준 액션
- 이미 사용 중인 숫자형 활성화 ID, 서비스 코드, 국가 ID
- REST API와 같은 키, 한도, 가격, 환불, 웹훅
curl
BASE="https://smsgrab.com/api/stubs/handler_api.php?api_key=$SMSGRAB_API_KEY"
curl -s "$BASE&action=getBalance"
curl -s "$BASE&action=getNumber&service=tg&country=6"
curl -s "$BASE&action=getStatus&id=100000123"
curl -s "$BASE&action=setStatus&id=100000123&status=6"
Python
import os
import requests
BASE = "https://smsgrab.com/api/stubs/handler_api.php"
KEY = os.environ["SMSGRAB_API_KEY"]
def action(name: str, **params) -> str:
response = requests.get(BASE, params={"api_key": KEY, "action": name, **params}, timeout=30)
response.raise_for_status()
return response.text
print(action("getBalance"))
answer = action("getNumber", service="tg", country=6)
if answer.startswith("ACCESS_NUMBER:"):
_, activation_id, number = answer.split(":")
print(activation_id, number)
개발자 질문
개발자 API 요금은 얼마인가요?
구독료는 없습니다. 각 번호는 도매가에 80% 마크업을 더한 가격이며, 30일 개발자 지출이 100, 500, 2000 USD를 넘으면 70%, 60%, 50%로 낮아집니다. 번호당 0.10 USD 미만이거나 앱보다 비싼 경우는 없습니다.
코드가 오지 않으면 어떻게 되나요?
번호는 20분간 유효합니다. 그 사이 코드가 오지 않거나 대기 중에 번호를 취소하면 자동으로 잔액에 환불됩니다.
기존 sms-activate 연동을 쓸 수 있나요?
네. 기본 URL을 호환 엔드포인트로 바꾸고 SmsGrab 키를 사용하세요. 표준 액션, 응답, 숫자형 ID는 그대로입니다.
속도 제한은 어떻게 되나요?
기본적으로 키마다 분당 600건의 요청과 60건의 구매, 계정의 모든 키를 합쳐 분당 3000건의 요청이 가능하며, 최대 100개의 번호가 동시에 코드를 기다릴 수 있습니다.
키를 어떻게 보호하나요?
키는 서버에만 보관하고, 앱마다 별도의 키를 쓰고, 서버 주소로 제한하고, 일일 지출 한도를 설정하세요. 유출이 의심되면 계정에서 교체하거나 폐기하세요.
앱과 API가 잔액을 공유하나요?
네. API는 SmsGrab 계정 잔액을 사용하며, 모든 구매와 환불은 다른 거래처럼 지갑에 표시됩니다.
더 많은 답변은 고객센터