言語を選択

開発者API クイックスタート

自分のソフトウェアから番号を購入し、コードを読み取ります。キーの作成、価格の確認、番号の購入、SMS の待機、完了までを順に説明します。

このページの内容
  1. 利用できる人
  2. 1. API キーを作成する
  3. 2. 認証
  4. 3. 残高と価格を確認する
  5. 4. 番号を購入する
  6. 5. SMS を待つ
  7. 6. 完了またはキャンセル
  8. ステータスの値
  9. エラー

SmsGrab の開発者API は、アプリと同じ番号を JSON ベースの REST API であなたのソフトウェアに提供します。独自の 開発者価格 を持つ有料サービスで、通常の SmsGrab 残高から支払われ、同じ自動返金で守られています。

利用できる人

  • 確認済み のアドレスを持つメールアカウント。ゲストアカウントではキーを作成できません。
  • 制限されていないアカウント。

1. API キーを作成する

ウェブサイトの アカウント > 開発者、またはアプリの 設定 > 開発者API を開き、キーを作成します。セキュリティのため、パスワードと、2 段階認証がオンの場合はその認証コードで確認します。読み取りだけのツールにはスコープ read を、番号を購入するには read と purchase を選びます。

キーは sgk_ で始まり、表示されるのは 1 回だけ です。サーバーのシークレット保管場所に保存してください。API キーとセキュリティ をご覧ください。

2. 認証

ベース URL は https://smsgrab.com/api/dev/v1 です。キーは Bearer トークンとして、または X-Api-Key ヘッダーで送信します。

HTTP
GET /api/dev/v1/balance HTTP/1.1
Host: smsgrab.com
Authorization: Bearer sgk_your_key_here

キーはサーバーに置くものです。ウェブサイト、ブラウザ拡張機能、ほかの人に配布するアプリには絶対に含めないでください。

3. 残高と価格を確認する

Bash
export SMSGRAB_KEY="sgk_your_key_here"

curl -s https://smsgrab.com/api/dev/v1/balance \
  -H "Authorization: Bearer $SMSGRAB_KEY"
Bash
curl -s "https://smsgrab.com/api/dev/v1/prices?service=whatsapp&country=indonesia" \
  -H "Authorization: Bearer $SMSGRAB_KEY"

金額は常に USD の 最小単位 で表されるため、18 は 0.18 USD を意味します。price_minor はあなたの開発者価格、retail_price_minor はアプリでの価格です。

JSON
{ "currency": "USD", "markup_percent": 80,
  "items": [ { "service_id": "whatsapp", "country_id": "indonesia", "price_minor": 18,
               "retail_price_minor": 25, "available_numbers": 30412 } ] }

4. 番号を購入する

Bash
curl -s -X POST https://smsgrab.com/api/dev/v1/activations \
  -H "Authorization: Bearer $SMSGRAB_KEY" \
  -H "Idempotency-Key: order-7f3c2a" \
  -H "Content-Type: application/json" \
  -d '{"service":"whatsapp","country":"indonesia","max_price_minor":20}'
  • service と country には whatsapp や indonesia のような SmsGrab の ID を指定します。国には ID のような ISO コードも使えます。
  • max_price_minor があなたを守ります。価格が上がった場合は何も差し引かれず、409 PRICE_CHANGED が返ります。
  • Idempotency-Key で再試行が安全になります。同じキーでリクエストを繰り返すと、二重に購入されず最初の結果が返ります。

応答は 201 Created とアクティベーションです。

JSON
{ "id": "5c1d0c2e-8a41-4f7e-9d7a-2f1d9f1b8c11", "compat_id": 100000123, "status": "WAITING_SMS",
  "service_id": "whatsapp", "country_id": "indonesia", "phone_number": "+6281234567890",
  "price_minor": 18, "currency": "USD",
  "created_at": "2026-09-27T10:05:00.000Z", "expires_at": "2026-09-27T10:25:00.000Z",
  "refunded": false, "refund_minor": 0, "sms": [] }

5. SMS を待つ

短い間隔のループで問い合わせ続ける代わりに、変化があるまで最大 30 秒間 API にリクエストを保留させます。

Bash
curl -s "https://smsgrab.com/api/dev/v1/activations/100000123?wait=25" \
  -H "Authorization: Bearer $SMSGRAB_KEY"

メッセージが届くと、status が CODE_RECEIVED になり、sms にそれまでのすべてのメッセージが入ります。

JSON
{ "status": "CODE_RECEIVED",
  "sms": [ { "code": "482913", "text": "Your WhatsApp code is 482-913", "sender": "WhatsApp",
             "received_at": "2026-09-27T10:06:12.004Z" } ] }

ポーリングよりプッシュがよい場合は、Webhook を設定してください。

6. 完了またはキャンセル

Bash
curl -s -X POST https://smsgrab.com/api/dev/v1/activations/100000123/finish \
  -H "Authorization: Bearer $SMSGRAB_KEY"

curl -s -X POST https://smsgrab.com/api/dev/v1/activations/100000123/cancel \
  -H "Authorization: Bearer $SMSGRAB_KEY"
  • finish はコードを使ったあとに。コードが届いてからでないと受け付けられません。
  • cancel は最初のコードを待っている間に。全額が返金されます。
  • 何もしなければ、コードのない番号は 20 分後に期限切れとなり、自動的に返金されます。

ステータスの値

ステータス 意味
WAITING_SMS 購入済み、最初のメッセージを待機中
CODE_RECEIVED 1 通以上のメッセージを受信済み
COMPLETED あなたが完了した、またはコード受信後に時間切れになった
CANCELLED コードの前にキャンセル、返金済み
EXPIRED 20 分以内にコードなし、返金済み

エラー

エラーはすべて同じ形式です。code と reason に応じて処理し、まだ知らない理由は無視してください。

JSON
{ "code": "NO_NUMBERS_AVAILABLE", "message": "No numbers available for this service and country", "reason": "OUT_OF_STOCK" }

よくあるのは 402 INSUFFICIENT_BALANCE、409 NO_NUMBERS_AVAILABLE、409 PRICE_CHANGED、ACTIVATION_LIMIT_REACHED を伴う 422(1 アカウントで同時に待機できる番号は最大 100 個)、Retry-After ヘッダー付きの 429 RATE_LIMITED です。

詳しいリファレンスは 開発者向けドキュメント にあります。

この記事は役に立ちましたか?

解決しませんでしたか?

お気軽にご連絡ください。すべてのメッセージに、通常は数時間以内に返信します。

メールでのお問い合わせ support@smsgrab.com