言語を選択

開発者API

SMS認証を あなたのコードから直接

1回のHTTPS呼び出しで、ボットやプラットフォームがWhatsApp、Telegramなど多数のサービス用の実在する番号を取得できます。コードはWebhookまたはロングポーリングで受け取り、コードを受信した番号だけにお支払いいただきます。

  • 1,321サービス
  • 145か国
  • $0.101番号あたりの最低価格
  • 自動コードが届かなければ返金

curl

curl -s -X POST https://smsgrab.com/api/dev/v1/activations \
  -H "Authorization: Bearer $SMSGRAB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"service":"whatsapp","country":"indonesia"}'

Python

activation = requests.post(
    "https://smsgrab.com/api/dev/v1/activations",
    headers={"Authorization": f"Bearer {key}"},
    json={"service": "whatsapp", "country": "indonesia"},
).json()

Node.js

const activation = await fetch('https://smsgrab.com/api/dev/v1/activations', {
  method: 'POST',
  headers: { Authorization: `Bearer ${key}`, 'Content-Type': 'application/json' },
  body: JSON.stringify({ service: 'whatsapp', country: 'indonesia' }),
}).then((response) => response.json());

PHP

$activation = json_decode((string) $client->post('activations', [
    'json' => ['service' => 'whatsapp', 'country' => 'indonesia'],
])->getBody(), true);

Go

order := map[string]any{"service": "whatsapp", "country": "indonesia"}
err := call("POST", "/activations", order, idempotencyKey(), &activation)
201 Created
{
  "id": "5c1d0c2e-9f3a-4b7e-8a61-2f0c9d4e7b10",
  "compat_id": 100000123,
  "status": "WAITING_SMS",
  "service_id": "whatsapp",
  "country_id": "indonesia",
  "phone_number": "+6281234567890",
  "price_minor": 18,
  "currency": "USD",
  "expires_at": "2026-09-27T10:25:00.000Z",
  "sms": []
}

自動化のために設計

アプリと同じ番号在庫、会計、返金で、連携に必要なものがすべて揃っています。

  • シンプルなREST API

    予測しやすいJSON、冪等な購入、対処しやすい明確なエラー理由。

  • 署名付きWebhook

    コードの受信やステータス変化ごとにHMAC署名付きイベントを送信し、24時間まで再試行します。

  • ロングポーリング

    リクエストを最大30秒保持し、コードが届いた瞬間に受け取れます。

  • sms-activate互換

    既存ツールの接続先を当社のエンドポイントに変えるだけ。アクションとレスポンスはそのままです。

  • 細かく制御できるキー

    読み取り専用か購入可能か、IP許可リスト、1日の上限、有効期限、無停止のローテーション。

  • 自動返金

    番号の期限までにコードが届かなければ、すぐに残高へ返金されます。

  • 利用状況とリクエストログ

    キーごとの日別リクエスト、利用額、エラーに加え、過去7日間の絞り込み可能なログ。

  • ボリューム価格

    月間ボリュームが増えるほど自動的に下がる卸売ベースの価格。

4ステップで開始

最初の番号まで、数回の呼び出しだけです。

  1. アカウントを作成

    メールアドレスで登録して確認します。アプリとウェブサイトは同じアカウントを使います。

  2. APIキーを作成

    権限を選び、キーをサーバーに制限し、シークレットを一度だけコピーします。

  3. 番号を購入

    サービスと国をPOSTすると、番号と価格がすぐに返ります。

  4. コードを受信

    ロングポーリングかWebhookで待ち、アクティベーションを完了します。

成長するほど下がる価格

開発者価格は各番号の卸売コストを基準に、30日間のボリュームに応じて小さくなるマークアップを加えたものです。

  • アプリの同じ番号より高くなることはありません
  • 1番号あたり最低$0.10
  • コードが届かない番号は自動で返金
  • 段階は到達から数分で更新
  • アプリと同じ残高からUSDで請求

30日間の開発者利用額別マークアップ

30日間の利用額別の開発者マークアップ
30日間の開発者利用額 卸売価格へのマークアップ 価格例
$100.00まで +80% $0.18 アプリより28%お得
$100.00から +70% $0.17 アプリより32%お得
$500.00から +60% $0.16 アプリより36%お得
$2,000.00から +50% $0.15 アプリより40%お得

例: 卸売コスト$0.10で、アプリでは$0.25の商品。

APIキーを取得

移行

sms-activateから1行の変更で移行

互換エンドポイントは同じプロトコルに対応しているため、sms-activate向けのボットや管理画面はベースURLとキーを変えるだけで動作します。

https://smsgrab.com/api/stubs/handler_api.php
  • getNumber、getStatus、setStatus、getPricesなどの標準アクション
  • すでに使っている数値のアクティベーションID、サービスコード、国ID
  • REST APIと同じキー、制限、価格、返金、Webhook
互換性リファレンス

curl

BASE="https://smsgrab.com/api/stubs/handler_api.php?api_key=$SMSGRAB_API_KEY"

curl -s "$BASE&action=getBalance"
curl -s "$BASE&action=getNumber&service=tg&country=6"
curl -s "$BASE&action=getStatus&id=100000123"
curl -s "$BASE&action=setStatus&id=100000123&status=6"

Python

import os

import requests

BASE = "https://smsgrab.com/api/stubs/handler_api.php"
KEY = os.environ["SMSGRAB_API_KEY"]


def action(name: str, **params) -> str:
    response = requests.get(BASE, params={"api_key": KEY, "action": name, **params}, timeout=30)
    response.raise_for_status()
    return response.text


print(action("getBalance"))
answer = action("getNumber", service="tg", country=6)
if answer.startswith("ACCESS_NUMBER:"):
    _, activation_id, number = answer.split(":")
    print(activation_id, number)

リアルタイム

コードをサーバーへ直接

必要なイベントを購読すると、検証可能な署名付きでHTTPSエンドポイントへ配信します。

  • 番号を購入
  • コードを受信
  • アクティベーション完了
  • アクティベーションをキャンセル
  • アクティベーション期限切れ
  • 返金済み
  • 残高不足
Webhookガイド
600キーあたり毎分のリクエスト
60キーあたり毎分の購入
100同時に待機できる番号
30秒のロングポーリング
  • すべての配信にタイムスタンプ付きのHMAC-SHA256署名
  • 公開HTTPSエンドポイントのみ、配信ごとに事前チェック
  • テスト配信、30日間の履歴、ワンクリック再配信

開発者からの質問

開発者APIの料金は?

サブスクリプションはありません。各番号は卸売価格に80%のマークアップを加えた価格で、30日間の開発者利用額が100、500、2000 USDを超えると70%、60%、50%に下がります。1番号が0.10 USDを下回ることも、アプリより高くなることもありません。

コードが届かなかったら?

番号は20分間有効です。その間にコードが届かなかった場合や、待機中に番号をキャンセルした場合は、自動的に残高へ返金されます。

sms-activate向けの連携をそのまま使えますか?

はい。ベースURLを当社の互換エンドポイントに変更し、SmsGrabのキーを使ってください。標準アクション、レスポンス、数値IDはそのままです。

レート制限は?

標準では、キーごとに毎分600リクエストと60件の購入、アカウントの全キー合計で毎分3000リクエスト、同時にコードを待機できる番号は最大100件です。

キーを安全に保つには?

キーはサーバーにのみ保管し、アプリごとに専用のキーを使い、サーバーのアドレスに制限して1日の利用上限を設定してください。漏洩の可能性があれば、アカウントからローテーションまたは無効化してください。

アプリとAPIの残高は共通ですか?

はい。APIはSmsGrabアカウントの残高を使用し、すべての購入と返金はほかの取引と同じくウォレットに表示されます。

ほかの回答は ヘルプセンター

認証を自動化しませんか?

アカウントでキーを作成すれば、数分で最初の呼び出しができます。