WhatsApp Business Platform (Cloud API) — Meta's official WhatsApp API (BYOK: your Meta app + System User token). Free-form sends within the 24h customer-service window, template sends outside it, media up/download, business profile, and webhook receive primitives. Personal WhatsApp accounts have no API — for human-in-the-loop links use the 'whatsapp' connector.
| Action | Description | Parameters | Returns |
|---|---|---|---|
block_users ⚠ | Block users from messaging this number | numbers | WhatsAppBlockResult |
create_flow | Create a Flow (in-chat form); returns it in DRAFT | name, categories [flow_json, endpoint_uri, clone_flow_id, publish] | WhatsAppFlowMutationResult |
create_qr_code | Create a managed QR code / short link | prefilled_message [image_format] | WhatsAppQRCode |
create_template | Create a message template (goes to Meta review) | name, language, category, components [parameter_format] | WhatsAppTemplateCreateResult |
debug_token | Inspect a token: validity, scopes, and the WABA ids it can reach | [input_token, app_id] | WhatsAppTokenInfo |
delete_flow ⚠ | Delete a draft Flow | flow_id | WhatsAppSuccessResult |
delete_media ⚠ | Delete an uploaded media item | media_id | WhatsAppSuccessResult |
delete_qr_code ⚠ | Delete a managed QR code | code | WhatsAppSuccessResult |
delete_template ⚠ | Delete a template by name (all languages) | name [template_id] | WhatsAppSuccessResult |
deprecate_flow ⚠ | Deprecate a published Flow | flow_id | WhatsAppSuccessResult |
deregister_phone ⚠ | Deregister the number from Cloud API | — | WhatsAppSuccessResult |
download_media | Download media content (handles the 5-minute URL dance) | media_id | WhatsAppMediaContent |
edit_template ⚠ | Edit a template's components or category | template_id [components, category] | WhatsAppSuccessResult |
enable_template_analytics ⚠ | Enable template analytics on the WABA | — | WhatsAppSuccessResult |
exchange_code | Exchange an Embedded Signup code for a customer access token | code [app_id] | WhatsAppTokenExchange |
get_business_profile | Get the business profile shown in the chat header | — | WhatsAppBusinessProfile |
get_flow | Get a Flow's status, categories, and validation errors | flow_id [include_preview] | WhatsAppFlow |
get_marketing_eligibility | Check whether the WABA can use the Marketing Messages API | — | WhatsAppMarketingEligibility |
get_media_info | Get a media item's short-lived download URL | media_id | WhatsAppMediaInfo |
get_messaging_analytics | Get message-volume analytics | start, end [granularity, phone_numbers] | dict |
get_phone_number | Get this number's quality, limits, and name status | — | WhatsAppPhoneNumber |
get_pricing_analytics | Get per-message pricing/cost analytics | start, end [granularity, metric_types, dimensions] | dict |
get_template | Get one template by id | template_id | WhatsAppTemplate |
get_template_analytics | Get per-template analytics (opt-in required) | template_ids, start, end [metric_types] | dict |
get_waba | Get the WhatsApp Business Account node | — | WhatsAppWABA |
list_blocked_users | List blocked users | [limit, after] | dict |
list_flow_assets | List a Flow's assets (its Flow JSON download URL) | flow_id | list |
list_flows | List Flows on the WhatsApp Business Account | [limit, after] | PaginatedList[WhatsAppFlow] |
list_phone_numbers | List all phone numbers on the WhatsApp Business Account | [limit, after] | PaginatedList[WhatsAppPhoneNumber] |
list_qr_codes | List managed QR codes | [code] | list |
list_subscribed_apps | List apps subscribed to the WABA's webhooks | — | dict |
list_templates | List message templates with status and quality | [status, category, language, limit, after] | PaginatedList[WhatsAppTemplate] |
mark_as_read | Mark a received message as read (blue ticks) | message_id | WhatsAppSuccessResult |
publish_flow ⚠ | Publish a Flow so it can be sent | flow_id | WhatsAppSuccessResult |
register_phone ⚠ | Register the number for Cloud API messaging | pin [data_localization_region] | WhatsAppSuccessResult |
request_verification_code ⚠ | Request a phone verification code (SMS or voice) | [code_method, language] | WhatsAppSuccessResult |
send_audio | Send an audio clip or voice note (24h window) | to [audio_id, audio_url, reply_to, tracking_data] | WhatsAppSendResult |
send_contacts | Send contact cards (24h window) | to, contacts [reply_to, tracking_data] | WhatsAppSendResult |
send_cta_url | Send a call-to-action URL button (24h window) | to, body, display_text, url [header_text, footer_text, reply_to, tracking_data] | WhatsAppSendResult |
send_document | Send a document (24h window) | to [document_id, document_url, caption, filename, reply_to, tracking_data] | WhatsAppSendResult |
send_flow | Send a Flow (in-chat form) to a user | to, flow_cta, body [flow_id, flow_name, screen, data, flow_token, flow_action, mode, header_text, footer_text, tracking_data] | WhatsAppSendResult |
send_image | Send an image (24h window) | to [image_id, image_url, caption, reply_to, tracking_data] | WhatsAppSendResult |
send_interactive | Send a raw interactive payload (flows, products, address) | to, interactive [reply_to, tracking_data] | WhatsAppSendResult |
send_interactive_buttons | Send up to 3 tappable reply buttons (24h window) | to, body, buttons [header_text, footer_text, reply_to, tracking_data] | WhatsAppSendResult |
send_interactive_list | Send a selectable list menu (24h window) | to, body, button_text, sections [header_text, footer_text, reply_to, tracking_data] | WhatsAppSendResult |
send_location | Send a location pin (24h window) | to, latitude, longitude [name, address, reply_to, tracking_data] | WhatsAppSendResult |
send_location_request | Ask the user to share their location (24h window) | to, body [reply_to] | WhatsAppSendResult |
send_marketing_message | Send a marketing template via the Marketing Messages API | to, template_name [language_code, components, message_activity_sharing, tracking_data] | WhatsAppSendResult |
send_reaction | React to a message with an emoji | to, message_id [emoji] | WhatsAppSendResult |
send_sticker | Send a sticker (24h window) | to [sticker_id, sticker_url, reply_to, tracking_data] | WhatsAppSendResult |
send_template | Send an approved template (works outside the 24h window) | to, template_name [language_code, components, tracking_data] | WhatsAppSendResult |
send_text | Send a WhatsApp text message (24h window) | to, body [preview_url, reply_to, tracking_data] | WhatsAppSendResult |
send_typing_indicator | Show a typing indicator in the chat | message_id | WhatsAppSuccessResult |
send_video | Send a video (24h window) | to [video_id, video_url, caption, reply_to, tracking_data] | WhatsAppSendResult |
set_app_webhook ⚠ | Configure the app-level webhook callback via API | app_id, callback_url, verify_token [fields] | WhatsAppSuccessResult |
set_two_step_pin ⚠ | Set the two-step verification PIN | pin | WhatsAppSuccessResult |
subscribe_app | Subscribe this app to the WABA's webhooks | [override_callback_uri, verify_token] | WhatsAppSuccessResult |
unblock_users ⚠ | Unblock previously blocked users | numbers | WhatsAppBlockResult |
update_business_profile ⚠ | Update the business profile | [about, address, description, email, websites, vertical] | WhatsAppSuccessResult |
update_flow ⚠ | Update a Flow's metadata | flow_id [name, categories, endpoint_uri] | WhatsAppSuccessResult |
update_qr_code ⚠ | Update a managed QR code's prefilled message | code, prefilled_message | WhatsAppQRCode |
upload_flow_json | Upload the Flow JSON that defines the form's screens | flow_id, flow_json | WhatsAppFlowMutationResult |
upload_media | Upload media, returns a reusable media id (30 days) | content_base64, mime_type [filename] | WhatsAppUploadResult |
verify_code ⚠ | Submit the phone verification code | code | WhatsAppSuccessResult |
Full schema explorer, code generation, and live API testing