SMS認証 API — SimNoKYC
OTP 認証を大規模に自動化できます。190以上の国で仮想電話番号を購入し、数秒で SMS コードを受信。専用の長期番号をレンタルし、すべての注文を単一の REST エンドポイントで管理 — API キー不要、KYCなし、暗号通貨での請求。
デベロッパーが 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はCookieベースのセッション認証を使用しています。プログラムから認証するには:
- シードフレーズを含むPOSTリクエストを
/auth-api.phpに送信 - レスポンスからセッションCookieを保存
- 以降のすべてのAPIリクエストにCookieを含める
シードフレーズで認証し、セッションを確立してください。
| パラメーター | タイプ | 必須 | 説明 |
|---|---|---|---|
| action | string | 必須 | "login"である必要があります |
| seed | string | 必須 | 16文字のアクセスシード(例:AbC3-dEf4-gHj5-kLm6) |
ベースURL
すべてのAPIエンドポイントは以下を基準とします:
すべてのレスポンスはJSON形式です。POSTエンドポイントはapplication/jsonとapplication/x-www-form-urlencodedの両方のリクエストボディに対応しています。
レート制限
APIには以下のレート制限が適用されます:
| エンドポイント | 制限 | ウィンドウ |
|---|---|---|
| 認証 | 5回の試行 | 15分 |
| その他すべてのエンドポイント | 上限なし | — |
レート制限:認証は15分あたり5回までに制限されています。その他のエンドポイントは現時点ではレート制限されていませんが、過度な利用は制限される場合があります。適切なリクエスト間隔を設けてください。
エラー処理
すべてのエラーは<code>error</code>フィールドを含むJSONオブジェクトを返します:
| HTTPコード | 意味 |
|---|---|
| 200 | 成功(アプリケーションレベルのエラーはレスポンスボディを確認してください) |
| 403 | 無効なCSRFトークン |
| 405 | HTTPメソッドが正しくありません(例:POSTのみ対応しているエンドポイントへのGETリクエスト) |
| 429 | レート制限を超過しました |
よくあるアプリケーションレベルのエラー:
| エラー | 原因 |
|---|---|
"Login required" | セッションが期限切れか、認証されていません |
"Insufficient balance" | 残高不足 — need(必要額)とhave(現在残高)フィールドを含みます |
"Service not available for this country" | 選択した国ではご利用可能な在庫またはサービスがありません |
"Missing country or service" | 必須パラメーターが指定されていません |
国一覧を取得する
仮想電話番号が利用可能なすべてのアクティブな国を返します。認証不要。
サービス一覧を取得する
指定した国で利用可能なサービスを価格・在庫情報とともに返します。国コードを省略した場合、価格なしですべてのサービスを返します。
| パラメーター | タイプ | 必須 | 説明 |
|---|---|---|---|
| country | string | 任意 | ISO 3166-1 alpha-2国コード(例:us、gb、de) |
オペレーター一覧を取得する
指定した国で利用可能なオペレーター(キャリア)を返します。各オペレーターにはタイプと基本サービス価格に適用される価格倍率があります。
| パラメーター | タイプ | 必須 | 説明 |
|---|---|---|---|
| country | string | 必須 | ISO 3166-1 alpha-2国コード |
オペレータータイプ: virtual — VoIP番号、最安値、一部サービスでブロックされる場合があります。physical — 実際のSIMカード、成功率が高い。premium — 最速配信(~10秒)、最高の成功率。
番号を購入する(SMSアクティベーション)
ワンタイムSMS認証用の仮想電話番号を購入します。番号は20分間有効です。SMSが届かない場合、残高は自動的に返金されます。
| パラメーター | タイプ | 必須 | 説明 |
|---|---|---|---|
| country | string | 必須 | 国コード(例:us) |
| service_id | integer | 必須 | サービス一覧から取得したサービスID |
| operator_id | integer | 任意 | オペレーター一覧から取得したオペレーターID。省略するとデフォルトオペレーターが使用されます。 |
注文一覧を取得する
電話番号とSMSコードを含む最新50件の注文を返します。アクティブな注文のSMSコード受信確認にこのエンドポイントをポーリングしてください。
注文ステータス: active — SMS待ち。completed — SMS受信済み。cancelled — ユーザーによるキャンセル。refunded — 自動返金済み(タイムアウト前にSMS未着)。expired — タイムアウト。
レンタル価格を取得する
特定のオペレーターから指定した期間で専用番号をレンタルする際の価格を取得します。
| パラメーター | タイプ | 必須 | 説明 |
|---|---|---|---|
| country | string | 必須 | 国コード |
| operator_id | integer | 必須 | オペレーターID |
| duration | integer | 必須 | レンタル期間(日数):7、14、30、または90 |
番号をレンタル
専用電話番号を1つ以上レンタルできます。番号はレンタル期間中あなた専用で、SMS受信は無制限です。
| パラメーター | タイプ | 必須 | 説明 |
|---|---|---|---|
| country | string | 必須 | 国コード |
| operator_id | integer | 必須 | オペレーターID |
| duration | integer | 必須 | 7、14、30、または90日間 |
| qty | integer | 任意 | レンタルする番号の数(1〜10、デフォルト:1) |
ユーザー情報を取得する
現在のユーザーのアカウント情報と残高を返します。認証状態と利用可能残高の確認に使用してください。
完全なワークフロー例
認証、サービス検索、番号購入、SMSコードのポーリングを行うPythonの完全なサンプルコードです: