SIMUB

SIMUB activation API

Integrate SIMUB SMS and temporary mail activations with documented authentication, lifecycle, error handling and safe server-side examples.

Authentication and endpoint choice

Protected requests use the API key associated with your verified SIMUB account. Send it only over HTTPS and keep it in a server-side secret store or environment variable; never embed it in client code, a public repository or a screenshot. The SMSHub-compatible handler receives action as a parameter, while SIMUB SMS routes put it in the path. Choose one interface and parse its documented response format.

  • Use /stubs/handler_api.php for an existing SMSHub-style client that sends action, api_key and action-specific parameters.
  • Use /api/sms/{action} when a direct SIMUB SMS route better fits your server application.
  • Use the dedicated /api/mail endpoints for temporary mail; SMS activation identifiers and mail identifiers are separate.

Discover services, countries, prices and balance first

Call getBalance for available funds, getServices or getServicesList for current service codes, and getCountries for supported country codes. Choose getPrices, getPricesV2 or getPricesV3 for the response shape your integration expects. Catalogs, counts and prices are provider snapshots: cache them briefly, display the returned price when relevant and revalidate before purchase. Never invent a code from a visible label.

Core SMS activation lifecycle

A purchase and a status check are different operations. Persist the activation identifier immediately so an application timeout does not lose a reserved number.

  • Select a documented service and country, inspect current price and stock, then call getNumber, getNumberV2 or getNumberV3 once.
  • Parse ACCESS_NUMBER:ID:NUMBER or the documented JSON equivalent and store the activation ID with your internal request reference.
  • Poll getStatus with that ID. STATUS_WAIT_CODE means the request is still waiting; STATUS_OK:CODE contains a received code.
  • Use setStatus only for a transition allowed by the reference: 1 ready, 3 request another SMS, 6 complete or 8 cancel. Do not reuse the number for another service.

Statuses, errors and uncertain requests

SMSHub-compatible actions can return text tokens, while newer routes may return JSON. Correct or rotate a BAD_KEY credential instead of retrying. BAD_SERVICE means an action or service is unsupported. NO_BALANCE requires funding; NO_NUMBERS means no matching offer is currently available; BAD_STATUS marks an invalid transition. After a timeout, reset or server error on getNumber, reconcile through the stored activation or status before purchasing again. A blind retry can create a duplicate reservation.

一時メール認証の流れ

メール認証は専用ルートとJSONレスポンスを使用します。getPriceRests、getPrices、getRestsでサービス、ドメイン、価格、在庫を確認し、getActivationが返すmailIdを保存してください。状態にはgetStatus、受信コードにはgetCodeを使用します。setStatusとrequestRefundは現在の状態と公開ポリシーに従う必要があります。一時メールは恒久的な受信箱や安全な復旧手段ではありません。

安全なリクエスト例

以下の値は意図的に無効なプレースホルダーです。保護されたサーバー環境内でのみ置き換えてください。curl例はパラメーターを個別にエンコードし、URLを手作業で連結しません。

  • 残高: curl --get 'https://api.simub.com/stubs/handler_api.php' --data-urlencode 'api_key=YOUR_API_KEY' --data-urlencode 'action=getBalance'
  • 予約: curl --get 'https://api.simub.com/stubs/handler_api.php' --data-urlencode 'api_key=YOUR_API_KEY' --data-urlencode 'action=getNumber' --data-urlencode 'service=tg' --data-urlencode 'country=0'
  • SMS状態を確認: curl --get 'https://api.simub.com/stubs/handler_api.php' --data-urlencode 'api_key=YOUR_API_KEY' --data-urlencode 'action=getStatus' --data-urlencode 'id=ACTIVATION_ID'
  • メール状態を確認: curl --get 'https://simub.com/api/mail/getStatus' --data-urlencode 'api_key=YOUR_API_KEY' --data-urlencode 'id=MAIL_ACTIVATION_ID'

信頼性、セキュリティ、責任ある利用

有限のタイムアウトを設定し、状態確認には上限付き指数バックオフを使い、最終状態で停止してください。ログからapi_key、電話番号、住所、受信コードを削除し、レスポンスを検証して同時購入を制限します。在庫、ネットワーク、フィルターは変化するため、利用可能性やコード配信は保証されません。

よくある質問

SIMUB APIキーはどこに保存すべきですか?

サーバー側のシークレット管理または保護された環境変数に保存し、アクセスを制限してログやクライアントコードに含めないでください。

getStatusはどのくらいの頻度で呼び出すべきですか?

適度な間隔と上限付きバックオフで確認し、最終レスポンスで停止してください。

番号の予約成功はSMSコード受信を保証しますか?

いいえ。番号の割り当てのみを確認するもので、配信は外部ネットワークとプラットフォーム規則に依存します。

タイムアウト後にgetNumberを再試行できますか?

保存済みID、履歴、状態から既存の認証がないことを確認し、二重課金を避けてください。