ログイン

SMS認証API

番号の購入、コードの確認、キャンセルをHTTPリクエスト1つで処理します。仮想番号業界で広く使われているhandler_api方式なので、登録プログラムやボットにURLとキーを入れるだけですぐに連携できます。

APIキーを取得

ログイン後、アカウント画面のAPIメニューでキーを作成します。キーは作成時に一度だけ表示されるので、すぐに保存してください。APIはウェブ画面と同じ残高、同じ料金を使います。

ベースURL

https://nuviosms.com/stubs/handler_api.php?api_key=API_KEY&action=...

主なリクエスト

action役割レスポンス例
getBalance残高を確認ACCESS_BALANCE:12.50
getPrices&service=telegram&country=gbサービス・国別の料金と在庫番号数{"gb":{"telegram":{"cost":0.207,"count":8877728}}}
getNumber&service=telegram&country=gb番号購入ACCESS_NUMBER:ID:PHONE
getStatus&id=IDコードを確認STATUS_WAIT_CODE / STATUS_OK:CODE
setStatus&id=ID&status=8番号のキャンセル(コード受信前、全額返金)ACCESS_CANCEL
setStatus&id=ID&status=3同じ番号でコードをもう一度受け取るACCESS_RETRY_GET
setStatus&id=ID&status=6利用を終了ACCESS_ACTIVATION

リクエストパラメータ

名前必須説明
api_keyすべてアカウント画面で作成したAPIキー
actionすべてgetBalance, getPrices, getNumber, getStatus, setStatus
servicegetNumberサービスコード(例: telegram、whatsapp、google)。サービス一覧ページのURLと同じです
countrygetNumber2文字の国コード(例: gb、us、id)
idgetStatus, setStatusgetNumber が返した番号ID(N-で始まる)
statussetStatus8 キャンセル、3 コードをもう一度、6 完了、1 準備完了

レスポンスの文字列と意味

レスポンス意味料金
ACCESS_NUMBER:ID:PHONE番号を取得しました番号の料金が引かれます
STATUS_WAIT_CODEコードを待っていますそのまま
STATUS_OK:CODEコードが届きました支払い完了
STATUS_WAIT_RETRY:CODE次のコードを待っています(前のコードも表示)追加料金なし
STATUS_CANCELキャンセルされたか、時間が終了しましたコードがなければ返金済み
ACCESS_CANCELキャンセルしました全額返金
ACCESS_RETRY_GET同じ番号でもう一度コードを待っています追加料金なし
ACCESS_ACTIVATION番号の利用を終了しましたそのまま
NO_BALANCE残高をチャージすればすぐに受信できます課金されません
NO_NUMBERS現在その国の番号は提供できません課金されません
NO_ACTIVATIONS利用中の番号が20件あります課金されません
EARLY_CANCEL_DENIEDコードを受信した番号はキャンセルではなく完了(6)そのまま
BAD_KEYAPIキーが正しくありません課金されません
BAD_SERVICE / BAD_COUNTRYサービスまたは国コードが正しくありません課金されません
NO_ACTIVATION番号IDが見つかりませんそのまま
TOO_MANY_REQUESTS1分あたり300回を超えました課金されません

言語別のサンプル

import time, requests

BASE = "https://nuviosms.com/stubs/handler_api.php"
KEY = "API_KEY"

def call(**p):
    return requests.get(BASE, params={"api_key": KEY, **p}, timeout=30).text

r = call(action="getNumber", service="telegram", country="gb")
if not r.startswith("ACCESS_NUMBER"):
    raise SystemExit(r)
_, num_id, phone = r.split(":")
print("Number:", phone)

for _ in range(240):                      # 20 minutes
    s = call(action="getStatus", id=num_id)
    if s.startswith("STATUS_OK"):
        print("Code:", s.split(":")[1])
        call(action="setStatus", id=num_id, status=6)
        break
    time.sleep(5)

使い方

  • getNumberで番号を取得し、登録画面に番号を入力したあと、getStatusを5秒間隔で呼び出します。
  • STATUS_OK:コード が届いたら、そのコードを入力して setStatus 6 で完了します。
  • 20分以内にコードが届かない場合、番号の料金は残高に自動返金されます。
  • リクエストは1分あたり300回まで送れます。