WhatsApp APIドキュメント

WhatsApp REST APIの完全リファレンス。認証、エンドポイント、Webhook、エラーコード、コード例。

認証

すべてのAPIリクエストには、AuthorizationヘッダーにAPIキーを含める必要があります。APIキーはインスタンス作成時に生成され、ダッシュボードで確認できます。

Authorization: Bearer YOUR_API_KEY

有効なAPIキーがないリクエストには401 Unauthorizedエラーが返ります。APIキーはインスタンス単位でスコープが設定されており、各インスタンスには独自のキーがあります。

ベースURL

https://api2whats.com

すべてのエンドポイントはこのベースURLからの相対パスです。HTTPSのみ使用してください — HTTPリクエストは拒否されます。

テキストメッセージを送信

WhatsAppの番号にテキストメッセージを送信します。

POST /send-text

リクエスト本文:

{
  "to": "971501234567",
  "message": "Hello from the API!"
}

パラメータ:

  • to(string、必須) — 国番号付きの受信者電話番号。+やスペースは不要
  • message(string、必須) — テキスト内容。Unicodeと絵文字に対応

レスポンス:

{
  "success": true,
  "data": {
    "id": "3EB0A1B2C3D4E5F6",
    "status": "sent"
  }
}

画像を送信

URLまたはBase64で画像を送信します。

POST /send-image

{
  "to": "971501234567",
  "image": "https://example.com/photo.jpg",
  "caption": "Check out this product!"
}

パラメータ:

  • to(string、必須) — 受信者の電話番号
  • image(string、必須) — 画像のURLまたはBase64エンコード文字列
  • caption(string、任意) — 画像の下に表示するテキストキャプション

動画を送信

動画ファイルを送信します。

POST /send-video

{
  "to": "971501234567",
  "video": "https://example.com/demo.mp4",
  "caption": "Product demo video"
}

音声を送信

音声ファイル(ボイスメモまたは音声クリップ)を送信します。

POST /send-audio

{
  "to": "971501234567",
  "audio": "https://example.com/voice.mp3"
}

スタンプを送信

スタンプ画像(WebPまたはPNG形式)を送信します。

POST /send-sticker

{
  "to": "971501234567",
  "sticker": "https://example.com/sticker.webp"
}

ドキュメントを送信

ファイル添付(PDF、DOCX、XLSXなど)を送信します。

POST /send-document

{
  "to": "971501234567",
  "document": "https://example.com/invoice.pdf",
  "filename": "invoice-march-2026.pdf"
}

パラメータ:

  • to(string、必須) — 受信者の電話番号
  • document(string、必須) — ドキュメントのURLまたはBase64エンコード文字列
  • filename(string、任意) — 表示ファイル名(デフォルトはURLのファイル名)

位置情報を送信

地理的な位置情報ピンを送信します。

POST /send-location

{
  "to": "971501234567",
  "latitude": 25.2048,
  "longitude": 55.2708,
  "name": "Dubai Office"
}

Webhookの設定

Webhookを使うと、サーバーで受信メッセージをリアルタイムに受け取れます。API経由でWebhook URLを設定します:

POST /set-webhook

{
  "url": "https://yourserver.com/webhook"
}

誰かが接続済みの番号にメッセージを送信すると、APIはあなたのURLにPOSTリクエストを送信します:

{
  "event": "message",
  "instance": "instance_abc123",
  "data": {
    "id": "3EB0A1B2C3D4E5F6",
    "from": "971501234567",
    "message": "Hi, I need help",
    "timestamp": 1691234567,
    "type": "text"
  }
}

すべてのリクエストに含まれるX-Signatureヘッダーを使って、受信Webhookを検証してください。

インスタンス管理

WhatsAppインスタンスの接続ステータスを確認します:

GET /instance/status

レスポンス:
{
  "connected": true,
  "phone": "971501234567",
  "name": "Business Account"
}

エラーコード

HTTPコードエラーコード説明
400INVALID_PHONE電話番号の形式が無効です
400MISSING_FIELDリクエストに必須フィールドがありません
401INVALID_API_KEYAPIキーが無効または不足しています
404INSTANCE_NOT_FOUNDインスタンスが存在しないか、接続されていません
429RATE_LIMIT_EXCEEDEDリクエストが多すぎます。Retry-Afterヘッダーを確認してください
500INTERNAL_ERRORサーバーエラー。指数バックオフで再試行してください

レート制限

レート制限はプランによって異なります:

  • Basic — 100リクエスト/分
  • Professional — 300リクエスト/分
  • Enterprise — 1000リクエスト/分

レート制限に達すると、APIは429 Too Many Requestsと、再試行可能なタイミングを示すRetry-Afterヘッダーを返します。

コードサンプル

PHP、Python、JavaScript、cURLの動作する例をコードサンプルセクションでご覧いただけます。各サンプルは完全に実行可能なスクリプトです。

ページネーションと制限

リソース(インスタンス、メッセージ履歴)を一覧表示する際、APIはクエリパラメータによるページネーションをサポートしています:

GET /messages?page=1&limit=50

レスポンス:
{
  "success": true,
  "data": [...],
  "pagination": {
    "page": 1,
    "limit": 50,
    "total": 342,
    "pages": 7
  }
}

デフォルトのページサイズは50、最大は100です。pagelimitのクエリパラメータを使って結果を移動してください。

一括送信

1回のAPI呼び出しで複数の受信者にメッセージを送信できます。受信者ごとに個別のリクエストを行うよりも効率的です。

POST /send-batch

{
  "messages": [
    { "to": "971501234567", "message": "Hello Ahmed!" },
    { "to": "971509876543", "message": "Hello Sara!" },
    { "to": "971501112222", "message": "Hello Omar!" }
  ]
}

一括送信にはレート制限が自動的に適用されます。レスポンスにはメッセージごとのステータスが含まれるため、どのメッセージが成功し、どのメッセージが失敗したかがわかります。

メディアアップロードのガイドライン

メディアを送信する際は、最適な配信のために以下のガイドラインに従ってください:

  • Images — JPEGまたはPNG。Base64経由は最大5MB、それ以上はURL経由。推奨サイズ: 横長は1200x630、正方形は600x600。
  • Videos — MP4形式、最大16MB。最適な互換性にはH.264エンコードを推奨。
  • Documents — PDF、DOCX、XLSX、PPTX、TXT。URL経由で最大100MB。
  • Audio — MP3またはOGG形式。最大16MB。
  • Stickers — WebPまたはPNG、512x512ピクセル、最大500KB。
  • Locations — 緯度/経度の座標。名前と住所は任意。

Base64エンコードの場合、データURIプレフィックスを含めてください: data:image/jpeg;base64,/9j/4AAQ...。URLの場合、そのURLが公開アクセス可能で、正しいContent-Typeヘッダーを返すことを確認してください。

環境変数

APIキーと設定はコード内ではなく環境変数に保存してください:

# .env file
WHATSAPP_API_KEY=your_api_key_here
WHATSAPP_API_BASE=https://api2whats.com
WEBHOOK_SECRET=your_webhook_secret_here

.envファイルをバージョン管理にコミットしないでください。.gitignoreに追加してください。本番環境ではデプロイ先プラットフォームの環境変数設定を使用してください。

バージョニング

APIはURLパスでバージョン管理されています。現在のバージョンはv1(デフォルト)です。破壊的変更を導入する際は、新しいバージョンをリリースし、古いバージョンを少なくとも12か月間維持します。

# Current version (implicit)
https://api2whats.com/send-text

# Explicit version (future-proof)
https://api2whats.com/v1/send-text

変更履歴

すべてのAPI変更について公開の変更履歴を維持しています。変更履歴のRSSフィードを購読するか、GitHubでフォローして最新情報を入手してください。大きな変更は、デプロイの少なくとも30日前にメールで全登録ユーザーに通知されます。

お困りですか?

よくある質問で一般的な質問を確認してください。特定の問題についてはサポートチームにお問い合わせください。24時間以内にご返信します。

FAQ

メッセージの最大長はどのくらいですか?

テキストメッセージは最大4,096文字まで対応しています。それより長い内容の場合は、ドキュメントとして送信するか、複数回に分けて送信することを検討してください。

グループにメッセージを送信できますか?

現在、APIは1対1のメッセージングのみをサポートしています。グループメッセージングは今後のリリースのロードマップに含まれています。

メッセージの配信速度はどのくらいですか?

ほとんどのメッセージは1〜3秒以内に配信されます。配信時間は受信者のネットワーク接続とデバイスの状態によって異なります。オフラインのデバイスへのメッセージはWhatsAppによってキューに入れられ、デバイスがオンラインになったときに配信されます。

無料枠はありますか?

アカウントを作成してダッシュボードを無料で試せます。有料プランは月額$9.99からで、APIアクセスとメッセージ送信が利用できます。トライアルアクセスについてはお問い合わせください。

APIキーが漏洩した場合はどうなりますか?

ダッシュボードから直ちに漏洩したキーを失効させ、新しいキーを生成してください。古いキーを使用しているすべてのアクティブなセッションは終了します。APIキーは定期的にローテーションし、環境変数に保存することをお勧めします。

一斉メッセージングにAPIを使用できますか?

Yes, with proper rate limiting. Send messages with 2-3 second delays between them. Do not send identical messages to large groups — personalize each message. Monitor delivery rates and slow down if they drop below 90%. docspage.faq.a6.link

ステータスページ

ステータスページでシステムの状態と過去の稼働状況を確認できます。インシデント発生時にはリアルタイムの更新を提供し、サービス障害については詳細な事後分析を公開しています。

統合する準備はできましたか?

アカウントを作成して、数分でメッセージの送信を開始しましょう。

無料ではじめる