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コード | エラーコード | 説明 |
|---|---|---|
| 400 | INVALID_PHONE | 電話番号の形式が無効です |
| 400 | MISSING_FIELD | リクエストに必須フィールドがありません |
| 401 | INVALID_API_KEY | APIキーが無効または不足しています |
| 404 | INSTANCE_NOT_FOUND | インスタンスが存在しないか、接続されていません |
| 429 | RATE_LIMIT_EXCEEDED | リクエストが多すぎます。Retry-Afterヘッダーを確認してください |
| 500 | INTERNAL_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です。pageとlimitのクエリパラメータを使って結果を移動してください。
一括送信
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
ステータスページ
ステータスページでシステムの状態と過去の稼働状況を確認できます。インシデント発生時にはリアルタイムの更新を提供し、サービス障害については詳細な事後分析を公開しています。