Hypereal AIHypereal AI
Video StudioVideo AgentMedia APICoding LLMsMCP
動画 APISeedance 2.0KlingVeo 3.1Gemini Omni VideoHappyHorse 1.0全モデル →
画像 APIGPT Image 2Nano BananaFLUXMidjourney Alternative全モデル →
LLM APIClaude OpusClaude SonnetClaude FableGPT-5.5GPT-5.5 ProGemini 3 ProGemini 3.5 FastGemini 3.5 ThinkingDeepSeek全モデル →
料金
API ReferenceCookbook
エンタープライズAffiliate会社概要更新履歴お問い合わせ

料金

記事一覧に戻る
APIFreeMessaging

WhatsApp Business APIを無料で利用する方法 (2026年版)

初期費用なしで、プログラムからメッセージを送信。

Hypereal AI TeamHypereal AI Team
11 min read
2026年2月6日
100以上のAIモデル、1つのAPI

Hyperealで構築を始めよう

Kling、Flux、Sora、Veoなどに単一のAPIでアクセス。無料クレジットで開始、数百万規模まで拡張可能。

無料APIキーを取得ドキュメントを見る

クレジットカード不要 • 10万人以上の開発者 • エンタープライズ対応

WhatsApp Business APIを無料で利用する方法 (2026年版)

WhatsApp Business APIを使用すると、メッセージの送受信をプログラムで制御したり、カスタマーサポートの自動化やチャットボットの構築が可能になります。以前は、このAPIにアクセスするために高価な Business Solution Provider (BSP) が必要でした。しかし2026年現在、Metaの Cloud API を利用することで無料で開始することができます。このガイドでは、動作するコード例を交えながら、セットアップの全工程を解説します。

WhatsApp Business API: 無料枠の概要

Metaは WhatsApp Business Cloud API に対して以下の制限付きの無料枠を提供しています。

機能 無料枠 有料枠
サービス会話(ユーザー起点) 毎月1,000件まで無料 1会話あたり $0.005 - 0.08
マーケティング会話 含まれません 1会話あたり $0.01 - 0.15
テスト用電話番号 1つのテスト番号が付属 無制限の認証済み番号
メッセージテンプレート 250個のテンプレート 250個のテンプレート
メディアメッセージ 対応 対応
Webhook通知 対応 対応
レート制限 80メッセージ/秒 500メッセージ/秒以上

毎月1,000件の無料サービス会話は、各月の1日にリセットされます。サービス会話とは、ユーザーから開始されたもの(ユーザーが最初にメッセージを送信したもの)を指し、各会話のウィンドウは24時間持続します。

前提条件

開始する前に、以下が必要になります。

  • Meta (Facebook) アカウント
  • Metaビジネスアカウント(作成は無料)
  • 認証用のSMSまたは音声通話を受信できる電話番号
  • REST APIに関する基礎知識

ステップバイステップ・セットアップ

ステップ1: Meta Developerアカウントの作成

1. https://developers.facebook.com にアクセスします
2. 「スタート」または「マイアプリ」をクリックします
3. Facebookアカウントでサインインします
4. 開発者規約に同意します
5. 電話番号でアカウントを認証します

ステップ2: 新しいアプリを作成する

1. 開発者ダッシュボードで「アプリを作成」をクリックします
2. アプリタイプとして「ビジネス」を選択します
3. アプリ名を入力します(例: 「My WhatsApp Bot」)
4. Metaビジネスアカウントを選択(または作成)します
5. 「アプリを作成」をクリックします

ステップ3: アプリにWhatsAppを追加する

1. アプリダッシュボードで「プロダクトを追加」を見つけます
2. WhatsAppカードの「設定」をクリックします
3. これにより、WhatsApp Businessアカウントが自動的に作成されます
4. テスト用電話番号と一時的なアクセストークンが表示されます

ステップ4: アクセストークンの取得

ダッシュボードの一時的なトークンは24時間で期限切れになります。本番環境で使用するには、恒久的なシステムユーザー(System User)トークンを生成します。

1. Metaビジネススイート > 設定 > ビジネス設定 に移動します
2. 「システムユーザー」に移動します
3. 「追加」をクリックして新しいシステムユーザーを作成します
4. ロールを「管理者(Admin)」に設定します
5. 「トークンを生成」をクリックします
6. 対象のWhatsAppアプリを選択します
7. 以下の権限を付与します:
   - whatsapp_business_management
   - whatsapp_business_messaging
8. トークンをコピーして安全に保存します

ステップ5: テスト受信者の追加

メッセージを送信する前に、受信者の電話番号をテストリストに追加する必要があります。

1. アプリダッシュボードのWhatsAppセクションに移動します
2. 「API設定」に移動します
3. 「メッセージを送信」の下にある「電話番号リストを管理」をクリックします
4. テストメッセージを送信したい電話番号を追加します
5. 各受信者は、確認メッセージに返信して認証を完了する必要があります

最初のメッセージを送信する

cURLを使用する場合

curl -X POST \
  "https://graph.facebook.com/v21.0/YOUR_PHONE_NUMBER_ID/messages" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "messaging_product": "whatsapp",
    "to": "1234567890",
    "type": "text",
    "text": {
      "body": "Hello from the WhatsApp Business API!"
    }
  }'

Node.jsを使用する場合

const axios = require("axios");

const PHONE_NUMBER_ID = "your_phone_number_id";
const ACCESS_TOKEN = "your_access_token";

async function sendWhatsAppMessage(to, message) {
  try {
    const response = await axios.post(
      `https://graph.facebook.com/v21.0/${PHONE_NUMBER_ID}/messages`,
      {
        messaging_product: "whatsapp",
        to: to,
        type: "text",
        text: { body: message }
      },
      {
        headers: {
          Authorization: `Bearer ${ACCESS_TOKEN}`,
          "Content-Type": "application/json"
        }
      }
    );

    console.log("Message sent:", response.data);
    return response.data;
  } catch (error) {
    console.error("Error:", error.response?.data || error.message);
    throw error;
  }
}

// メッセージを送信
sendWhatsAppMessage("1234567890", "Hello from Node.js!");

Pythonを使用する場合

import requests

PHONE_NUMBER_ID = "your_phone_number_id"
ACCESS_TOKEN = "your_access_token"

def send_whatsapp_message(to: str, message: str):
    url = f"https://graph.facebook.com/v21.0/{PHONE_NUMBER_ID}/messages"

    headers = {
        "Authorization": f"Bearer {ACCESS_TOKEN}",
        "Content-Type": "application/json"
    }

    payload = {
        "messaging_product": "whatsapp",
        "to": to,
        "type": "text",
        "text": {"body": message}
    }

    response = requests.post(url, json=payload, headers=headers)
    response.raise_for_status()
    print("Message sent:", response.json())
    return response.json()

# メッセージを送信
send_whatsapp_message("1234567890", "Hello from Python!")

リッチメッセージの送信

画像メッセージ

def send_image(to: str, image_url: str, caption: str = ""):
    payload = {
        "messaging_product": "whatsapp",
        "to": to,
        "type": "image",
        "image": {
            "link": image_url,
            "caption": caption
        }
    }

    response = requests.post(
        f"https://graph.facebook.com/v21.0/{PHONE_NUMBER_ID}/messages",
        json=payload,
        headers={"Authorization": f"Bearer {ACCESS_TOKEN}"}
    )
    return response.json()

インタラクティブボタンメッセージ

def send_buttons(to: str, body_text: str, buttons: list):
    payload = {
        "messaging_product": "whatsapp",
        "to": to,
        "type": "interactive",
        "interactive": {
            "type": "button",
            "body": {"text": body_text},
            "action": {
                "buttons": [
                    {
                        "type": "reply",
                        "reply": {"id": btn["id"], "title": btn["title"]}
                    }
                    for btn in buttons
                ]
            }
        }
    }

    response = requests.post(
        f"https://graph.facebook.com/v21.0/{PHONE_NUMBER_ID}/messages",
        json=payload,
        headers={"Authorization": f"Bearer {ACCESS_TOKEN}"}
    )
    return response.json()

# ボタン付きメッセージを送信
send_buttons(
    "1234567890",
    "本日はどのようなご用件でしょうか?",
    [
        {"id": "support", "title": "サポートを受ける"},
        {"id": "pricing", "title": "価格を見る"},
        {"id": "demo", "title": "デモを予約する"}
    ]
)

テンプレートメッセージ(アウトバウンド通知用)

ユーザーに自分から最初にメッセージを送る場合(24時間のウィンドウ外)、承認されたテンプレートを使用する必要があります。

def send_template(to: str, template_name: str, language: str = "en_US"):
    payload = {
        "messaging_product": "whatsapp",
        "to": to,
        "type": "template",
        "template": {
            "name": template_name,
            "language": {"code": language},
            "components": [
                {
                    "type": "body",
                    "parameters": [
                        {"type": "text", "text": "John"},
                        {"type": "text", "text": "注文番号 #12345"}
                    ]
                }
            ]
        }
    }

    response = requests.post(
        f"https://graph.facebook.com/v21.0/{PHONE_NUMBER_ID}/messages",
        json=payload,
        headers={"Authorization": f"Bearer {ACCESS_TOKEN}"}
    )
    return response.json()

Webhookのセットアップ

受信メッセージを受け取るには、Webhookエンドポイントを設定する必要があります。

Express.js Webhookサーバー

const express = require("express");
const app = express();
app.use(express.json());

const VERIFY_TOKEN = "your_custom_verify_token";

// Webhookの検証 (GET)
app.get("/webhook", (req, res) => {
  const mode = req.query["hub.mode"];
  const token = req.query["hub.verify_token"];
  const challenge = req.query["hub.challenge"];

  if (mode === "subscribe" && token === VERIFY_TOKEN) {
    console.log("Webhook verified");
    res.status(200).send(challenge);
  } else {
    res.sendStatus(403);
  }
});

// メッセージの受信 (POST)
app.post("/webhook", (req, res) => {
  const body = req.body;

  if (body.object === "whatsapp_business_account") {
    body.entry?.forEach((entry) => {
      entry.changes?.forEach((change) => {
        const messages = change.value?.messages;
        if (messages) {
          messages.forEach((message) => {
            console.log("From:", message.from);
            console.log("Type:", message.type);
            if (message.type === "text") {
              console.log("Text:", message.text.body);
            }
          });
        }
      });
    });

    res.sendStatus(200);
  } else {
    res.sendStatus(404);
  }
});

app.listen(3000, () => {
  console.log("Webhook server running on port 3000");
});

ローカルサーバーの公開

開発時には、トンネリングサービスを使用してローカルのWebhookを公開します。

# ngrokを使用する場合
ngrok http 3000

# Cloudflare Tunnelを使用する場合
cloudflared tunnel --url http://localhost:3000

その後、公開されたURLをMetaアプリダッシュボードの WhatsApp > 設定 > Webhook URL に登録します。

無料の代替案と補完サービス

無料枠の制限が厳しすぎる場合は、以下のオプションを検討してください。

オプション 無料メッセージ 備考
Meta Cloud API (公式) 毎月1,000件のサービス会話 小規模プロジェクトに最適
Twilio WhatsApp Sandbox 開発期間中は無料 Twilioアカウントが必要。本番は有料
WhatsApp Business App (手動) 無制限 APIアクセス不可。手動送信のみ
WATI 無料トライアル 14日間 ダッシュボードとチャットボット構築機能を備えたBSP

よくあるエラーと解決策

エラーコード メッセージ 解決策
131030 "Recipient phone number not in allowed list" テスト受信者に電話番号を追加してください
131047 "Re-engagement message" 最初の接触には承認済みテンプレートを使用してください
100 "Invalid parameter" 電話番号の形式を確認してください(国番号を含み、+やスペースは不要)
190 "Access token expired" 新しいシステムユーザートークンを生成してください
368 "Temporarily blocked for policies" Metaのコマースおよびメッセージングポリシーを確認してください

結論

WhatsApp Business APIは、Metaの Cloud API を通じて無料で利用可能であり、毎月1,000件のサービス会話を無償で提供しています。これは小規模ビジネス、プロトタイプ、個人プロジェクトに十分な量です。Metaの開発者ポータルでのセットアップには約30分かかります。そこからはプログラムによってテキスト、メディア、インタラクティブメッセージを送信できるようになります。

パーソナライズされた製品デモ動画やAIアバターによる挨拶など、AI生成ビデオコンテンツでWhatsAppコミュニケーションを強化したい企業様にとって、Hypereal AI はビデオ生成やアバター作成のための手頃な価格のAPIを提供しており、WhatsAppのリッチメディアメッセージとの相性も抜群です。

関連記事

OpenAI APIキーを無料で取得する方法:3つの手法(2026年版)

12 min read

Claude Code API: Claude Code を Hypereal とともに使用します

6 min read

2026年版 ChatGPTの制限を突破する正しい方法

6 min read

On this page

  • WhatsApp Business APIを無料で利用する方法 (2026年版)
  • WhatsApp Business API: 無料枠の概要
  • 前提条件
  • ステップバイステップ・セットアップ
  • ステップ1: Meta Developerアカウントの作成
  • ステップ2: 新しいアプリを作成する
  • ステップ3: アプリにWhatsAppを追加する
  • ステップ4: アクセストークンの取得
  • ステップ5: テスト受信者の追加
  • 最初のメッセージを送信する
  • cURLを使用する場合
  • Node.jsを使用する場合
  • Pythonを使用する場合
  • リッチメッセージの送信
  • 画像メッセージ
  • インタラクティブボタンメッセージ
  • テンプレートメッセージ(アウトバウンド通知用)
  • Webhookのセットアップ
  • Express.js Webhookサーバー
  • ローカルサーバーの公開
  • 無料の代替案と補完サービス
  • よくあるエラーと解決策
  • 結論
Desktop agent

Download Hypereal Agent

Run a local AI media workspace for image generation, video prompts, model selection, credit tracking, and saved artifacts.

MacWindows
v0.1.2Requires a hypereal.cloud API keyRelease manifest
Hypereal Agent desktop app screenshot

今日から構築を開始

今すぐ構築を開始
LogoHypereal AI
全システム正常
LLM API
  • Hypereal SDK
  • MCP Server
  • Enterprise API
  • All LLM Models
  • Claude Fable 5
  • Claude Opus 4.7
  • Claude Sonnet 4.6
  • GPT-5.5
  • Claude Haiku 4.5
  • GPT-5.5 Pro
  • Gemini 3.1 Pro Preview
  • Gemini 3.5 Thinking
  • Gemini 3.5 Fast
  • DeepSeek V4 Pro
  • Kimi K2.6
  • GLM 5.2
  • Claude API in China
  • OpenAI API in China
AI API
  • AI API Overview
  • Seedance 2.0 API
  • Kling 3.0 API
  • Veo 3.1 API
  • FLUX API
  • GPT Image 2 API
  • vs WaveSpeed
  • vs fal.ai
  • vs Replicate
  • vs KIE.ai
  • vs OpenRouter
  • vs Together AI
  • vs SiliconFlow
  • Midjourney Alternative
  • Higgsfield Alternative
  • OpenRouter Alternative
動画モデル
  • Google Veo 3.1 API
  • Kling 3.0 API
  • Kling O3 Pro API
  • Seedance 2.0 API
  • HappyHorse 1.0 API
  • WAN 2.7 API
  • WAN Video API
  • Grok Video API
  • Hunyuan Video API
  • PixVerse V6 API
  • Pika Video API
  • Luma Dream Machine API
  • MiniMax Video API
  • Vidu Video API
  • Gemini Omni Video API
画像モデル
  • NanoBanana 2 API
  • FLUX 2 API
  • GPT Image 1 API
  • Grok Image API
  • SeeDream V5 API
  • Imagen 4 API
  • Ideogram API
  • Recraft API
  • DALL-E 3 API
  • Stable Diffusion API
  • Gemini Image API
ツール
  • Face Swap API
  • Video Face Swap API
  • Virtual Try-On API
  • AI Talking Avatar API
  • Lip Sync API
  • OmniHuman Avatar API
  • Tripo3D H3.1 API
  • ElevenLabs TTS API
  • Fish Audio TTS API
  • Whisper STT API
  • Lyria Music API
ジェネレーター
  • Video Agent
  • AI画像ジェネレーター
  • AI動画ジェネレーター
コレクション
  • ベスト動画モデル
  • ベスト画像モデル
  • Seedance 2.0
  • WAN 2.7
  • Qwen Image 2
  • Grok AI
  • Seedance 1.5
  • モーションコントロール
  • コンテンツ検出
  • オブジェクト検出
会社情報
  • 会社概要
  • ドキュメント
  • Hypereal SDK
  • Cookbook
  • 更新履歴
  • ブログ
  • お問い合わせ
  • よくある質問
  • ロードマップ
  • エンタープライズ
  • アフィリエイトプログラム
  • Be a Creator
  • 開発者プログラム
法的情報
  • プライバシーポリシー
  • 利用規約
  • 返金ポリシー
  • Cookieポリシー
  • 料金
  • 全モデル
  • サイトマップ
  • Status
© 著作権 2026。全著作権所有。
TwitterGitHubLinkedInYouTubeEmail