JSON · HTTPS · Bearerキー

SMS APIで認証コードの受信とSMS送信をまとめて

TODAY SMS APIは、使い捨て番号で認証コードを受信するSMS認証APIと、227か国へSMSを送るSMS送信APIを、1つのAPIキーとひとつの残高で使える開発者向けAPIです。リクエストとレスポンスはすべてJSONで、料金と返金ルールはWebサイトと同じです。

today-sms.com/api/v1
$ curl -X POST https://today-sms.com/api/v1/numbers \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"app":"telegram","country":"indonesia"}'
{
  "id": "N-7K2M-QX4P-9D3A",
  "phone": "+6281234567890",
  "price": "0.4515",
  "status": "waiting",
  "expires_at": "2026-10-18T09:20:00.000Z"
}

$ curl https://today-sms.com/api/v1/numbers/N-7K2M-QX4P-9D3A \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "id": "N-7K2M-QX4P-9D3A",
  "status": "received",
  "sms": [
    { "code": "482913", "text": "Your code is 482913", "at": "2026-10-18T09:02:11.000Z" }
  ]
}
  • 1分あたり300回
  • 受信と送信は同じキー
  • 失敗・未受信は残高に返金
  • 12の暗号通貨方法でチャージ

SMS APIでできること

SMS認証API

アプリと国を選んで番号を購入し、状態を照会して認証コードを受け取ります。SMSが届かなければ、時間切れの時点で全額が残高に戻ります。

SMS送信API

最大1,000人の宛先と本文を一度に送り、宛先別の配信レポートを受け取れます。予約時刻を入れると、その時刻に送信します。

料金と在庫のAPI

アプリ別の国と料金、番号の数、国別のSMS 1通あたりの料金をAPIで取得し、ご自身のサービス画面にそのまま使えます。

ひとつの残高

受信と送信は同じ残高を使います。残高はUSDTでチャージし、APIでいつでも確認できます。

メソッド一覧

メソッド内容
GET/balance残高の確認
GET/appsアプリ一覧
GET/prices?app=telegramアプリ別の国と料金
POST/numbers番号の購入
GET/numbers/{id}番号の状態とSMS
POST/numbers/{id}/cancel番号のキャンセル
POST/numbers/{id}/finish番号の終了
GET/messages/prices国別SMS料金
POST/messagesSMS送信
GET/messages/{id}送信状態と配信レポート
POST/messages/{id}/cancel予約送信のキャンセル

SMS APIとは?

SMS APIは、ご自身のプログラムからHTTPリクエストでSMSを受信したり送信したりできる連携の窓口です。人がWeb画面で操作していたことをコードが代わりに行うので、登録テストの自動化、認証コードの送信、注文の通知など、繰り返しの作業を人の手を使わずに処理できます。

TODAY SMS APIは2つの機能をまとめて提供します。1つは使い捨て番号でアプリの認証コードを受信するSMS認証API(SMS activation API)、もう1つは世界中の携帯電話へSMSを送るSMS送信APIです。2つのAPIは同じURL、同じAPIキー、同じ残高を使うので、別々に登録したりチャージしたりする必要はありません。

SMS認証APIはどう使いますか?

手順は4ステップです。GET /appsでアプリコードを選び、GET /prices?app=コードで国と料金を確認します。POST /numbersで番号を購入すると番号とidが返り、GET /numbers/{id}を数秒ごとに呼び出して認証コードが届いたかを確認します。コードを受け取ったら、POST /numbers/{id}/finishで閉じます。

番号は20分間SMSを待ち、その間に同じ番号へ届くSMSに追加費用はかかりません。SMSが届かなければ時間切れの時点で全額が残高に戻り、何も届いていなければ購入から120秒後以降にPOST /numbers/{id}/cancelでご自身でキャンセルできます。アプリ認証の自動化や大量の仮想電話番号APIが必要なときは、この流れをそのまま繰り返せば大丈夫です。

SMS送信APIはどう使いますか?

POST /messagesに宛先の一覧(to)と本文(text)を送ると、メッセージid、宛先の数、通数、合計費用が返ります。宛先は+と国番号が付いた国際形式で入れ、1回のリクエストで最大1,000人まで入れられます。予約する場合は、atにUTCの時刻を入れます。

送信後は、GET /messages/{id}で宛先別の配信レポートを確認します。状態はpending、sent、delivered、failedの4つで、failedで終わった通数分の金額はrefundedに加算されて残高に戻ります。まだ送っていない予約送信は、POST /messages/{id}/cancelでキャンセルします。

認証コード(OTP)を送るときも同じメソッドを使います。コード1件が1通として計算され、別途の認証料金はかかりません。国別の1通あたりの料金はGET /messages/pricesで取得して、ご自身の費用計算に使えます。

安いSMS APIを選ぶには何を見ればいいですか?

料金表の1通あたりの料金とあわせて、実際に支払う合計額をご確認ください。TODAY SMSは月額料金なしで送った通数分だけ差し引かれ、失敗した通数分と受信できなかった認証コードは残高にお返しします。

次に、キー管理と制限について見ていきます。アカウントごとに1つのAPIキーを取得でき、いつでも新しいキーを作成できます。新しいキーを作成すると、古いキーはすぐにブロックされます。リクエストは1分あたり300まで許可されており、ほとんどの自動化に十分です。最後に、支払いについて見ていきます。カードなしでUSDT、USDC、BTCを含む12の暗号通貨でトップアップできるため、どの国からでもすぐに始められます。

APIキーはどうやって取得しますか?

アカウントを作って初回チャージが反映されると、APIキーページでキーを作成できます。キーは作成時に一度だけ表示されるので、安全な場所に保存してください。リクエストごとにAuthorization: Bearer キーのヘッダーで送れば大丈夫です。

キーが漏れたと思われる場合は、APIキーページで新しいキーを作成してください。以前のキーはすぐに使えなくなります。キーを持つ人はご自身の残高で番号を購入したりSMSを送ったりできるため、ブラウザのコードや公開リポジトリには入れないでください。

今すぐSMS APIを連携してみましょう

登録はトークン1つで完了します。初回チャージが反映されたらAPIキーを作成し、ドキュメントのサンプルをそのまま貼り付けて、最初のリクエストを送ってみてください。