본문으로 건너뛰기
100+
국가
1,000개 이상의 서비스. 암호화폐로 결제, KYC 없음.
번호 구매

SMS 인증 API — SimNoKYC

대규모 OTP 인증을 자동화하세요. 190개 이상 국가의 가상 전화번호를 구매하고, 수초 내에 SMS 코드를 수신하며, 전용 장기 번호를 대여하고, 모든 주문을 단일 REST 엔드포인트로 관리하세요 — API 키 없음, KYC 없음, 암호화폐 청구.

읽기 시간: 5분 REST · JSON · OpenAPI 3.0 OpenAPI 명세 →

인증이 필요합니다. 모든 API 요청은 쿠키 기반 세션 인증을 사용합니다. API를 이용하려면 SimNoKYC 계정에 로그인해야 합니다. 웹 인터페이스를 통해 로그인하거나 인증 엔드포인트를 사용하여 세션을 시작하세요.

개발자들이 SimNoKYC API를 선택하는 이유

SimNoKYC는 익명성, 글로벌 커버리지, 예측 가능한 요금이 필요한 개발자를 위한 가장 유연한 SMS 인증 API입니다. 기업 계약, 월 최소 이용량, KYC 설문으로 접근을 제한하는 레거시 SMS-OTP 제공업체와 달리, SimNoKYC는 모든 HTTPS 클라이언트와 호환되고, 번호당 엄격히 청구되며, Bitcoin, Monero, Ethereum, USDT, USDC, Solana, Litecoin, XRP, TRON, Toncoin 등 20종 이상의 암호화폐를 지원합니다.

대표적인 사용 사례로는 대규모 QA를 위한 계정 가입 자동화, 헤드리스 에이전트 및 CI 봇을 위한 일회용 비밀번호 수신, 지속적 통합에서 전화번호 필수 플로우 검증, 끊김 없는 SMS 수신이 필요한 Telegram 또는 WhatsApp 계정을 위한 전용 장기 번호 대여, 그리고 가상·실물·프리미엄 운영자 등급을 명시적으로 제어하며 190개 이상 국가에 걸쳐 지리적으로 분산된 인증 운영 등이 있습니다.

인증

API는 쿠키 기반 세션 인증을 사용합니다. 프로그래밍 방식으로 인증하려면:

  1. 시드 구문과 함께 /auth-api.php로 POST 요청을 전송하세요
  2. 응답에서 세션 쿠키를 저장하세요
  3. 이후 모든 API 요청에 쿠키 포함
POST /auth-api.php

시드 구문으로 인증하여 세션을 시작하세요.

파라미터유형필수설명
actionstring필수"login"이어야 합니다
seedstring필수16자리 액세스 시드 (예: AbC3-dEf4-gHj5-kLm6)
cURL
Python
JavaScript
# Login and save session cookie curl -X POST https://simnokyc.com/auth-api.php \ -d "action=login&seed=AbC3-dEf4-gHj5-kLm6" \ -c cookies.txt
import requests session = requests.Session() resp = session.post("https://simnokyc.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
const resp = await fetch("https://simnokyc.com/auth-api.php", { method: "POST", credentials: "include", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: "action=login&seed=AbC3-dEf4-gHj5-kLm6" }); const data = await resp.json(); console.log(data); // {success: true, user: {...}}
성공 응답
{ "success": true, "user": { "id": 42, "prefix": "AbC3", "balance": "74.50" } }
오류 응답
{ "success": false, "error": "Invalid seed." }

기본 URL

모든 API 엔드포인트의 기준 URL:

https://simnokyc.com/api.php?action={action}

모든 응답은 JSON입니다. POST 엔드포인트는 application/jsonapplication/x-www-form-urlencoded 요청 본문을 모두 허용합니다.

요청 속도 제한

API에는 다음과 같은 요청 속도 제한이 적용됩니다.

엔드포인트제한
인증5회 시도15분
기타 모든 엔드포인트제한 없음

요청 제한: 인증은 15분당 5회로 제한됩니다. 다른 엔드포인트는 현재 제한이 없지만, 과도한 사용은 제한될 수 있습니다. 적절한 요청 간격을 사용해 주세요.

오류 처리

모든 오류는 <code>error</code> 필드가 포함된 JSON 객체를 반환합니다:

{ "error": "Description of what went wrong" }
HTTP 코드의미
200성공 (애플리케이션 수준 오류는 응답 본문을 확인하세요)
403유효하지 않은 CSRF 토큰
405잘못된 HTTP 메서드입니다 (예: POST 전용 엔드포인트에 GET 사용)
429요청 속도 제한 초과

일반적인 애플리케이션 오류:

오류원인
"Login required"세션이 만료되었거나 인증되지 않았습니다
"Insufficient balance"잔액 부족 — needhave 필드를 포함합니다.
"Service not available for this country"선택한 국가에서 재고가 없거나 서비스를 이용할 수 없습니다.
"Missing country or service"필수 파라미터가 제공되지 않았습니다.

국가 목록

GET /api.php?action=countries

가상 번호가 있는 모든 활성 국가를 반환합니다. 인증이 필요하지 않습니다.

cURL
Python
JavaScript
curl https://simnokyc.com/api.php?action=countries
resp = session.get("https://simnokyc.com/api.php", params={"action": "countries"}) countries = resp.json() for c in countries: print(c["code"], c["name"])
const resp = await fetch("https://simnokyc.com/api.php?action=countries"); const countries = await resp.json();
응답
[ { "id": 1, "code": "us", "name": "USA" }, { "id": 2, "code": "gb", "name": "UK" }, { "id": 3, "code": "de", "name": "Germany" } ]

서비스 목록

GET /api.php?action=services&country={code}

특정 국가에서 이용 가능한 서비스와 가격 및 재고를 반환합니다. 국가 코드 없이 요청하면 가격 정보 없이 모든 서비스를 반환합니다.

파라미터유형필수설명
countrystring선택 사항ISO 3166-1 alpha-2 국가 코드 (예: us, gb, de)
응답 (국가 포함)
[ { "id": 12, "name": "WhatsApp", "slug": "whatsapp", "icon_code": "WA", "icon_color": "#25d366", "category": "social", "price": "0.35", "stock": 847 } ]

운영자 목록

GET /api.php?action=operators&country={code}

특정 국가에서 이용 가능한 운영사(통신사)를 반환합니다. 각 운영사에는 유형과 기본 서비스 가격에 적용되는 가격 배율이 있습니다.

파라미터유형필수설명
countrystring필수ISO 3166-1 alpha-2 국가 코드
응답
[ { "id": 5, "name": "T-Mobile", "type": "physical", "price_multiplier": "1.50", "icon_slug": "tmobile", "icon_domain": "t-mobile.com" } ]

운영자 유형: virtual — VoIP 번호, 가장 저렴하지만 일부 서비스에서 차단될 수 있습니다. physical — 실제 SIM 카드, 더 높은 성공률. premium — 가장 빠른 배송 (~10초), 최고의 성공률.

번호 구매 (SMS 인증)

POST /api.php?action=buy

일회용 SMS 인증을 위한 가상 번호를 구매하세요. 번호는 20분 동안 유효합니다. SMS가 수신되지 않으면 잔액이 자동으로 환불됩니다.

파라미터유형필수설명
countrystring필수국가 코드 (예: us)
service_idinteger필수서비스 목록에서 서비스 ID를 확인하세요
operator_idinteger선택 사항운영사 목록에서 운영사 ID를 확인하세요. 기본 운영사 사용 시 생략 가능합니다.
cURL
Python
JavaScript
curl -X POST https://simnokyc.com/api.php?action=buy \ -b cookies.txt \ -H "Content-Type: application/json" \ -d '{"country":"us","service_id":12,"operator_id":5}'
resp = session.post("https://simnokyc.com/api.php?action=buy", json={ "country": "us", "service_id": 12, "operator_id": 5 }) order = resp.json() print(f"Order #{order['order_id']} — ${order['price']}")
const resp = await fetch("https://simnokyc.com/api.php?action=buy", { method: "POST", credentials: "include", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ country: "us", service_id: 12, operator_id: 5 }) }); const order = await resp.json();
성공 응답
{ "success": true, "order_id": 1847, "price": 0.53, "balance": "73.97" }
오류: 잔액 부족
{ "error": "Insufficient balance", "need": 0.53, "have": "0.10" }

주문 목록

GET /api.php?action=orders

전화번호 및 SMS 코드를 포함한 최근 주문 50건을 반환합니다. 활성 주문의 수신 SMS 코드를 확인하려면 이 엔드포인트를 폴링하세요.

응답
[ { "id": 1847, "price": "0.53", "status": "completed", "phone_number": "+12025551234", "sms_code": "847293", "created_at": "2026-04-09 14:32:00", "country_code": "us", "country_name": "USA", "service_name": "WhatsApp", "operator_name": "T-Mobile" } ]

주문 상태: active — SMS 대기 중. completed — SMS 수신됨. cancelled — 사용자가 취소함. refunded — 자동 환불 (시간 초과 전 SMS 미수신). expired — 시간 초과.

대여 가격 조회

GET /api.php?action=rental_price&country={code}&operator_id={id}&duration={days}

특정 운영자로부터 지정된 기간 동안 전용 번호를 대여하는 가격을 조회합니다.

파라미터유형필수설명
countrystring필수국가 코드
operator_idinteger필수운영사 ID
durationinteger필수렌탈 기간(일): 7, 14, 30, 또는 90
응답
{ "price": "12.50", "duration": 30, "operator": "T-Mobile", "type": "physical", "country": "USA" }

번호 렌탈

POST /api.php?action=rental_buy

하나 이상의 전용 전화번호를 렌탈하세요. 렌탈 기간 동안 번호는 귀하만 사용할 수 있으며 무제한으로 수신 SMS를 받을 수 있습니다.

파라미터유형필수설명
countrystring필수국가 코드
operator_idinteger필수운영사 ID
durationinteger필수7일, 14일, 30일 또는 90
qtyinteger선택 사항렌탈할 번호 수 (1–10, 기본값: 1)
성공 응답
{ "success": true, "order_ids": [1848, 1849], "total": 25.00, "qty": 2, "unit_price": 12.50, "duration": 30, "balance": "49.50" }

사용자 정보 조회

GET /api.php?action=user

현재 사용자의 계정 정보와 잔액을 반환합니다. 인증 상태 및 사용 가능한 잔액을 확인하는 데 사용하세요.

인증됨
{ "logged_in": true, "id": 42, "prefix": "AbC3", "balance": "74.50" }
인증되지 않음
{ "logged_in": false }

전체 워크플로 예시

인증, 서비스 검색, 번호 구매 및 SMS 코드 폴링을 수행하는 전체 Python 예시입니다:

Python
import requests, time BASE = "https://simnokyc.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 code for _ 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']}") break print("Waiting for SMS...") time.sleep(5) else: print("Timeout — balance will be refunded automatically")

자주 묻는 질문

SimNoKYC SMS 인증 API로 무엇을 할 수 있나요?

SimNoKYC API는 개발자에게 190개 이상 국가의 가상 전화번호에 대한 프로그래밍 방식의 접근을 제공합니다. 일회용 SMS 인증(OTP 코드) 및 장기 번호 대여(7, 14, 30 또는 90일)가 가능합니다. 서비스 목록 조회, 실시간 요금 확인, 번호 할당, 수신 SMS 코드 가져오기, 실패한 활성화 환불 처리 등을 JSON REST 인터페이스를 통해 KYC 없이 암호화폐 전용으로 이용할 수 있습니다.

API를 사용하려면 API 키나 OAuth 토큰이 필요한가요?

아닙니다. SimNoKYC API는 쿠키 기반 세션 인증을 사용합니다. 16자리 접근 시드를 담아 /auth-api.php로 POST 요청을 한 번 보낸 후, 반환된 세션 쿠키를 이후의 모든 호출에서 재사용하면 됩니다. 프로비저닝, 교체 또는 폐기해야 할 API 키가 없습니다. 세션당 한 번 인증하면 쿠키 유효 기간 동안 인증 상태가 유지됩니다.

SimNoKYC API 사용 비용은 얼마인가요?

API 자체는 무료입니다 — 월정액, 구독료, 최소 요청량이 없습니다. 번호당 비용만 지불하면 됩니다. 일회용 SMS 활성화는 $0.05부터, 전용 장기 대여는 7일에 $4.79부터 시작합니다. 모든 이용 내역은 선불 잔액에서 청구되며, SMS 수신에 실패한 활성화는 자동으로 환불됩니다.

어떤 프로그래밍 언어와 프레임워크를 지원하나요?

HTTPS 요청을 보낼 수 있는 모든 언어 또는 플랫폼에서 API를 호출할 수 있습니다 — Python (requests, httpx), Node.js (fetch, axios), Go, PHP, Ruby, Java, C#, cURL이 포함된 Bash 등. 문서에는 cURL, Python, JavaScript로 바로 실행 가능한 예시가 포함되어 있으며, /openapi.json에 완전한 OpenAPI 3.0 명세가 공개되어 있어 원하는 언어로 타입이 지정된 클라이언트를 자동 생성할 수 있습니다.

SMS 인증 코드가 도착하지 않으면 어떻게 되나요?

모든 활성화에는 20분의 수신 대기 시간이 있습니다. 해당 시간이 만료되기 전에 SMS가 도착하지 않으면 주문이 자동으로 취소되고 전액이 계정 잔액으로 반환됩니다 — 지원 티켓 없음, 수동 재시도 없음. 환불된 잔액으로 즉시 다른 번호를 할당할 수 있으며, 더 높은 수신 성공률을 위해 다른 운영자 등급(가상, 실물 또는 프리미엄)을 선택할 수도 있습니다.

SimNoKYC API에 속도 제한이 있나요?

인증은 IP당 15분에 5회로 속도가 제한되며, 이는 무차별 대입 시드 열거 공격을 방지합니다. 카탈로그, 구매, 주문, 대여 등 다른 모든 엔드포인트에는 현재 엄격한 속도 제한이 없지만, 요청 간격을 합리적으로 유지해 주시기 바랍니다. SMS 수신을 위한 /api.php?action=orders 폴링은 3~5초 간격이면 충분하며, ~10 req/s를 초과하는 지속적인 버스트는 WAF 레이어에서 스로틀링될 수 있습니다.