SMS認証API

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

APIキーを取得

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

ベースURL

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

主なリクエスト

action提供するものレスポンス例
getBalance残高を確認ACCESS_BALANCE:12.50
getPrices&service=telegram&country=krサービス別の料金と在庫{"kr":{"telegram":{"cost":3.2,"count":7922}}}
getNumber&service=telegram&country=kr番号を購入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と同じです
countrygetNumberkr(韓国010番号、省略時もkr)
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://010sms.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="kr")
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回まで送れます。
SMS認証API | 010SMS