Native whatsmeow sessions and official Meta Cloud API messaging in one Go worker; no Node or browser runtime.
Install
iii trigger compose::add worker=whatsappRun in your project with the iii engine running. Exact versions are immutable and digest-pinned.
Full markdown
/registry/workers/whatsapp.md. Paste it into an LLM prompt or pipe it through curl from a worker.Install
iii trigger compose::add worker=whatsapp@0.2.0Configuration
- cloud:
access_token:
api_version: v26.0
app_secret:
business_account_id:
enabled: false
phone_number_id:
verify_token:
data_dir: data/whatsapp-go
database:
name: whatsapp
namespace:
max_events: 1000
max_inbox_messages: 10000
max_media_bytes: 16777216
max_sessions: 32
operation_timeout_secs: 30
shutdown_timeout_secs: 15Dependencies
Readme
Send and receive WhatsApp messages through iii functions using linked phones or the official Meta WhatsApp Cloud API. Pair accounts, inspect conversations and groups, send attachments and templates, and subscribe to filtered events. An ADE page helps you configure and test each transport separately. The worker runs as a Go binary without Node.js or Chromium.
Install
Install the worker into your existing iii Compose project:
iii trigger compose::add worker=whatsappCompose resolves the declared database, configuration, http, and quick-tunnel dependencies, updates worker-compose.yaml, and starts the project. Dependency installation does not create the dedicated WhatsApp database or configure a Meta account. Configure storage before the worker's first successful start, as described under Configuration.
Release binaries support Linux and macOS on x64 and arm64. Windows is not supported. Cloudflared is needed only when you start a development webhook tunnel; linked phones do not need it.
Quickstart
Choose the transport that matches your account:
| Transport | Connect with | Use it for |
|---|---|---|
| Linked phone | A QR code or phone pairing code | Named sessions, phone conversations, participating groups, and native events |
| Meta Cloud API | An existing WhatsApp Business Platform account | Official business messaging, approved templates, attachments, and webhook events |
Examples use the default namespace. Add --namespace your_namespace when the worker runs elsewhere. Replace the example recipient with a phone you control before sending.
Linked phone
Create a session named support, start it, and link your phone. In ADE, open WhatsApp → Linked phone → Connection and scan the QR code from WhatsApp's Linked devices screen. Without ADE, follow the pairing function walkthrough.
Once the session reports connected, send a text message:
iii trigger whatsapp::messages::send_text --json '{
"session_id": "support",
"chat_id": "+15551234567",
"text": "Hello from iii."
}'Example result, with an illustrative message ID:
{
"chat_id": "15551234567@s.whatsapp.net",
"message_id": "3EB0EXAMPLE",
"recipient_fanout": null
}Stopping a session preserves its credentials. Starting the worker does not automatically connect saved sessions. Native group operations require a connected session.
Meta Cloud API
Configure your business account and webhook using the Cloud setup guide. Send a message from your test phone to the business number to open the customer service window, then reply through the official transport:
iii trigger whatsapp::cloud::messages::send_text --json '{
"chat_id": "+15551234567",
"text": "Hello from iii Cloud API."
}'Example result, with an illustrative message ID:
{
"chat_id": "+15551234567",
"message_id": "wamid.example",
"status": "accepted",
"message_status": null
}accepted means Meta accepted the request. Delivery and read status arrive later through webhooks. Outside the customer service window, explicitly choose an approved template. Sends are attempted once; a timeout can leave the outcome unknown, so inspect the conversation before sending again.
Configuration
Edit WhatsApp → Configure worker in ADE, or edit the worker's entry in the configuration service. The default entry ID is whatsapp; III_CONFIG_NAME selects a different one. Persisted entries use the configuration service's storage adapter, normally data/configuration/. In normal mode, the worker does not maintain a separate live configuration file.
Configure storage first
Add a dedicated connection named whatsapp to the database worker's existing databases map. Keep unrelated entries intact:
databases:
whatsapp:
url: sqlite:./data/whatsapp.db # Path on the database worker's host
pool:
max: 1 # Required by the WhatsApp storage adapterThe adapter requires SQLite 3.41 or later; PostgreSQL and MySQL are not supported. Ensure the parent directory exists and restrict access to the database: it contains linked-device keys and message archives. Restart WhatsApp after the database becomes available. Follow the storage and migration guide for deployment permissions, backups, and existing data.
Set these fields on the WhatsApp worker:
database:
name: whatsapp # Connection in the database worker
namespace: '' # Empty uses the WhatsApp namespace
data_dir: data/whatsapp-go # Private session metadata directory
max_inbox_messages: 10000 # Retained messages per archive
max_media_bytes: 16777216 # 16 MiB worker transfer limit
operation_timeout_secs: 30 # Deadline for subsequent operations
cloud:
enabled: false # Linked phones need no Meta credentialsNative keys and both transports' archives persist through the database worker. Give each WhatsApp process a distinct data_dir and configuration identity; keep that identity and its namespace stable across upgrades. Limits and timeouts apply live; database, data_dir, and max_events require a restart. Invalid reloads keep the last valid settings; whatsapp::config-status reports the outcome and pending restart fields. Changing the database target does not migrate existing data.
Other fields and defaults are documented in the configuration schema.
Configure Meta credentials
Under Meta Cloud API, enable the integration and enter the WhatsApp Business Account (WABA) ID, Phone Number ID, access token, app secret, and a verify token you choose. The verify token must match Meta's webhook settings. Phone Number ID is a Meta identifier, not the phone's digits.
You can supply these fields through the WhatsApp process environment instead:
WHATSAPP_CLOUD_ENABLED=true
WHATSAPP_CLOUD_BUSINESS_ACCOUNT_ID=123456789012345
WHATSAPP_CLOUD_PHONE_NUMBER_ID=123456789012346
WHATSAPP_CLOUD_ACCESS_TOKEN=your_access_token_here
WHATSAPP_META_APP_SECRET=your_app_secret_here
WHATSAPP_WEBHOOK_VERIFY_TOKEN=your_webhook_verify_token_hereSet actual credentials in your deployment environment or a private, uncommitted env_file. Defined variables override saved fields at runtime, including explicit empty values; values are never written back. Restart after changing the process environment. ADE shows overridden fields without revealing their values. See environment configuration for precedence, Graph API version, and central environment references.
Official Meta Cloud API
Use Meta Cloud API in ADE to check the connection, test text or templates, send attachments, and inspect the local Cloud archive. Configure a public HTTPS callback and subscribe the Meta app to the WABA and messages field. Local readiness does not prove remote authentication or webhook reachability.
For development, Webhook setup → Start development tunnel creates a callback URL through quick-tunnel. Enable the HTTP worker's restricted webhook listener, install cloudflared on the tunnel worker's host, and point its webhooks target at that listener. Copy the URL into Meta with the matching verify token; starting a tunnel does not register it with Meta. Temporary URLs can change after a tunnel restart. See the webhook walkthrough.
Upload and send documents
Upload with whatsapp::cloud::media::upload_document, then reuse the returned media_id with whatsapp::cloud::messages::send_document. Markdown (.md or text/markdown) is rejected; explicitly choose a supported TXT or PDF file. The worker does not rename or convert it. Follow the document upload and send examples.
See Cloud API coverage and contracts for media, interactive messages, account management, Flows, and eligible group, calling, and commerce operations. Meta controls account eligibility and permissions. Cloud groups use their own IDs and functions, separate from native linked-phone groups.
Custom trigger types
Bind a registered callback function to the transport you want to monitor:
| Trigger type | Fires when | Callback context |
|---|---|---|
whatsapp::events |
Native session events, filtered by session_id and kinds |
session_id, sequence, kind, timestamp_ms, and data |
whatsapp::cloud::events |
Verified Cloud webhook events after persistence, filtered by contact, group, type, status, or account | kind, account IDs, timestamp_ms, and event-specific fields |
Native event polling can reconcile a bounded in-memory event history. Read the native event contract before registering a callback.
Filtered Cloud webhook events
Cloud subscriptions receive incoming messages by default. Delivery receipts and administrative events require explicit opt-in. Filters combine with AND; values within a list combine with OR. Read the registration walkthrough and complete filters and payloads.
Callbacks are best effort and are not retried automatically. Cloud deduplication is persistent, but notifications can still be lost; reconcile through the Cloud chats and messages archive. Callback return values do not send replies.
Limits and differences from OpenWA
Use this worker's typed functions and inspect their contracts with iii worker info whatsapp. It is not an HTTP-compatible OpenWA deployment. The native API boundaries list unsupported operations and nullable metadata.
Archives contain captured messages, not a complete remote history. Media transfers use bounded bytes; arbitrary host paths and download URLs are not accepted. The worker does not transcode files, host call audio, or settle payments. Native protocol support depends on the unofficial whatsmeow client; Cloud support depends on Meta's account permissions and feature availability.
Migration notes
Rust credentials are incompatible with whatsmeow. Use a fresh data/whatsapp-go directory and explicitly pair a new session; keep the old data for the Rust worker. Existing Go SQLite stores require an explicit migration to the database worker. Follow the storage migration guide before upgrading an existing account.
Further documentation
Find task-specific details in these guides:
- ADE setup, test results, archives, and draft behavior
- Cloud credentials, webhooks, documents, and trigger registration
- Linked-phone pairing, functions, and events
- Database storage and migration
- Build from source, offline validation, and local SDK development
License
Apache-2.0. See the repository license.
Skills
API reference (JSON)
{
"functions": [
{
"description": "",
"metadata": {
"description": "Request rejection using the call ID, peer and creator from an incoming call event"
},
"name": "whatsapp::calls::reject",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"call_creator": {
"type": "string"
},
"call_id": {
"type": "string"
},
"peer": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"call_creator",
"call_id",
"peer",
"session_id"
],
"title": "CallRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"requested": {
"description": "The signaling stanza was sent; no remote acknowledgement is provided.",
"type": "boolean"
}
},
"required": [
"requested"
],
"title": "CallResult",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Archive a chat with an optional synchronized message range."
},
"name": "whatsapp::chats::archive",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"MessageKeyInput": {
"additionalProperties": false,
"description": "Keeps an original sender's namespace, including LID, for message operations.",
"properties": {
"chat_id": {
"type": "string"
},
"from_me": {
"type": "boolean"
},
"message_id": {
"type": "string"
},
"participant_id": {
"type": [
"string",
"null"
]
}
},
"required": [
"chat_id",
"from_me",
"message_id"
],
"type": "object"
},
"MessageRange": {
"additionalProperties": false,
"properties": {
"last_message_timestamp_ms": {
"format": "int64",
"type": "integer"
},
"last_system_message_timestamp_ms": {
"format": "int64",
"type": [
"integer",
"null"
]
},
"messages": {
"items": {
"$ref": "#/definitions/RangeMessage"
},
"type": "array"
}
},
"required": [
"last_message_timestamp_ms"
],
"type": "object"
},
"RangeMessage": {
"additionalProperties": false,
"properties": {
"key": {
"$ref": "#/definitions/MessageKeyInput"
},
"timestamp_ms": {
"format": "int64",
"type": "integer"
}
},
"required": [
"key",
"timestamp_ms"
],
"type": "object"
}
},
"properties": {
"chat_id": {
"type": "string"
},
"message_range": {
"anyOf": [
{
"$ref": "#/definitions/MessageRange"
},
{
"type": "null"
}
]
},
"session_id": {
"type": "string"
}
},
"required": [
"chat_id",
"session_id"
],
"title": "RangeRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Clear messages while keeping the chat, with explicit starred/media flags."
},
"name": "whatsapp::chats::clear",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"MessageKeyInput": {
"additionalProperties": false,
"description": "Keeps an original sender's namespace, including LID, for message operations.",
"properties": {
"chat_id": {
"type": "string"
},
"from_me": {
"type": "boolean"
},
"message_id": {
"type": "string"
},
"participant_id": {
"type": [
"string",
"null"
]
}
},
"required": [
"chat_id",
"from_me",
"message_id"
],
"type": "object"
},
"MessageRange": {
"additionalProperties": false,
"properties": {
"last_message_timestamp_ms": {
"format": "int64",
"type": "integer"
},
"last_system_message_timestamp_ms": {
"format": "int64",
"type": [
"integer",
"null"
]
},
"messages": {
"items": {
"$ref": "#/definitions/RangeMessage"
},
"type": "array"
}
},
"required": [
"last_message_timestamp_ms"
],
"type": "object"
},
"RangeMessage": {
"additionalProperties": false,
"properties": {
"key": {
"$ref": "#/definitions/MessageKeyInput"
},
"timestamp_ms": {
"format": "int64",
"type": "integer"
}
},
"required": [
"key",
"timestamp_ms"
],
"type": "object"
}
},
"properties": {
"chat_id": {
"type": "string"
},
"delete_media": {
"type": "boolean"
},
"delete_starred": {
"type": "boolean"
},
"message_range": {
"anyOf": [
{
"$ref": "#/definitions/MessageRange"
},
{
"type": "null"
}
]
},
"session_id": {
"type": "string"
}
},
"required": [
"chat_id",
"delete_media",
"delete_starred",
"session_id"
],
"title": "ClearChatRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Delete a chat on this account's linked devices."
},
"name": "whatsapp::chats::delete",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"MessageKeyInput": {
"additionalProperties": false,
"description": "Keeps an original sender's namespace, including LID, for message operations.",
"properties": {
"chat_id": {
"type": "string"
},
"from_me": {
"type": "boolean"
},
"message_id": {
"type": "string"
},
"participant_id": {
"type": [
"string",
"null"
]
}
},
"required": [
"chat_id",
"from_me",
"message_id"
],
"type": "object"
},
"MessageRange": {
"additionalProperties": false,
"properties": {
"last_message_timestamp_ms": {
"format": "int64",
"type": "integer"
},
"last_system_message_timestamp_ms": {
"format": "int64",
"type": [
"integer",
"null"
]
},
"messages": {
"items": {
"$ref": "#/definitions/RangeMessage"
},
"type": "array"
}
},
"required": [
"last_message_timestamp_ms"
],
"type": "object"
},
"RangeMessage": {
"additionalProperties": false,
"properties": {
"key": {
"$ref": "#/definitions/MessageKeyInput"
},
"timestamp_ms": {
"format": "int64",
"type": "integer"
}
},
"required": [
"key",
"timestamp_ms"
],
"type": "object"
}
},
"properties": {
"chat_id": {
"type": "string"
},
"delete_media": {
"type": "boolean"
},
"message_range": {
"anyOf": [
{
"$ref": "#/definitions/MessageRange"
},
{
"type": "null"
}
]
},
"session_id": {
"type": "string"
}
},
"required": [
"chat_id",
"delete_media",
"session_id"
],
"title": "DeleteChatRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "List locally captured conversations and received history; never marks chats read"
},
"name": "whatsapp::chats::list",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"cursor": {
"type": [
"string",
"null"
]
},
"limit": {
"default": 100,
"format": "uint",
"minimum": 0,
"type": "integer"
},
"query": {
"type": [
"string",
"null"
]
},
"session_id": {
"type": "string"
}
},
"required": [
"session_id"
],
"title": "ChatsRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"ChatView": {
"properties": {
"chat_id": {
"type": "string"
},
"is_group": {
"type": "boolean"
},
"last_message": {
"anyOf": [
{
"$ref": "#/definitions/MessageView"
},
{
"type": "null"
}
]
},
"message_count": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"chat_id",
"is_group",
"message_count",
"title"
],
"type": "object"
},
"Coverage": {
"properties": {
"capture_started_at_ms": {
"format": "int64",
"type": "integer"
},
"last_history_sync_at_ms": {
"format": "int64",
"type": [
"integer",
"null"
]
},
"last_history_sync_progress": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"message_limit": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"retention_truncated": {
"type": "boolean"
}
},
"required": [
"capture_started_at_ms",
"message_limit",
"retention_truncated"
],
"type": "object"
},
"MessageView": {
"properties": {
"chat_id": {
"type": "string"
},
"from_me": {
"type": "boolean"
},
"kind": {
"type": "string"
},
"message_id": {
"type": "string"
},
"sender_id": {
"type": "string"
},
"sender_name": {
"type": [
"string",
"null"
]
},
"source": {
"type": "string"
},
"status": {
"type": [
"string",
"null"
]
},
"text": {
"type": "string"
},
"timestamp_ms": {
"format": "int64",
"type": "integer"
}
},
"required": [
"chat_id",
"from_me",
"kind",
"message_id",
"sender_id",
"source",
"text",
"timestamp_ms"
],
"type": "object"
}
},
"properties": {
"chats": {
"items": {
"$ref": "#/definitions/ChatView"
},
"type": "array"
},
"coverage": {
"$ref": "#/definitions/Coverage"
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"chats",
"coverage"
],
"title": "ChatPage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Move a chat into the locked chats folder."
},
"name": "whatsapp::chats::lock",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"chat_id",
"session_id"
],
"title": "ChatRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Set the chat's read/unread state across linked devices."
},
"name": "whatsapp::chats::mark_read",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"MessageKeyInput": {
"additionalProperties": false,
"description": "Keeps an original sender's namespace, including LID, for message operations.",
"properties": {
"chat_id": {
"type": "string"
},
"from_me": {
"type": "boolean"
},
"message_id": {
"type": "string"
},
"participant_id": {
"type": [
"string",
"null"
]
}
},
"required": [
"chat_id",
"from_me",
"message_id"
],
"type": "object"
},
"MessageRange": {
"additionalProperties": false,
"properties": {
"last_message_timestamp_ms": {
"format": "int64",
"type": "integer"
},
"last_system_message_timestamp_ms": {
"format": "int64",
"type": [
"integer",
"null"
]
},
"messages": {
"items": {
"$ref": "#/definitions/RangeMessage"
},
"type": "array"
}
},
"required": [
"last_message_timestamp_ms"
],
"type": "object"
},
"RangeMessage": {
"additionalProperties": false,
"properties": {
"key": {
"$ref": "#/definitions/MessageKeyInput"
},
"timestamp_ms": {
"format": "int64",
"type": "integer"
}
},
"required": [
"key",
"timestamp_ms"
],
"type": "object"
}
},
"properties": {
"chat_id": {
"type": "string"
},
"message_range": {
"anyOf": [
{
"$ref": "#/definitions/MessageRange"
},
{
"type": "null"
}
]
},
"read": {
"type": "boolean"
},
"session_id": {
"type": "string"
}
},
"required": [
"chat_id",
"read",
"session_id"
],
"title": "ReadChatRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Mute a chat until a future timestamp or indefinitely when omitted."
},
"name": "whatsapp::chats::mute",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
},
"session_id": {
"type": "string"
},
"until_timestamp_ms": {
"format": "int64",
"type": [
"integer",
"null"
]
}
},
"required": [
"chat_id",
"session_id"
],
"title": "MuteRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Pin a chat across linked devices."
},
"name": "whatsapp::chats::pin",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"chat_id",
"session_id"
],
"title": "ChatRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Set this account's available or unavailable presence."
},
"name": "whatsapp::chats::presence",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"Presence": {
"enum": [
"available",
"unavailable"
],
"type": "string"
}
},
"properties": {
"presence": {
"$ref": "#/definitions/Presence"
},
"session_id": {
"type": "string"
}
},
"required": [
"presence",
"session_id"
],
"title": "PresenceRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Send a typing, recording or paused indicator."
},
"name": "whatsapp::chats::state",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"ChatState": {
"enum": [
"composing",
"recording",
"paused"
],
"type": "string"
}
},
"properties": {
"chat_id": {
"type": "string"
},
"session_id": {
"type": "string"
},
"state": {
"$ref": "#/definitions/ChatState"
}
},
"required": [
"chat_id",
"session_id",
"state"
],
"title": "ChatStateRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Subscribe to presence updates for a person."
},
"name": "whatsapp::chats::subscribe_presence",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"chat_id",
"session_id"
],
"title": "ChatRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Unarchive a chat with an optional synchronized message range."
},
"name": "whatsapp::chats::unarchive",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"MessageKeyInput": {
"additionalProperties": false,
"description": "Keeps an original sender's namespace, including LID, for message operations.",
"properties": {
"chat_id": {
"type": "string"
},
"from_me": {
"type": "boolean"
},
"message_id": {
"type": "string"
},
"participant_id": {
"type": [
"string",
"null"
]
}
},
"required": [
"chat_id",
"from_me",
"message_id"
],
"type": "object"
},
"MessageRange": {
"additionalProperties": false,
"properties": {
"last_message_timestamp_ms": {
"format": "int64",
"type": "integer"
},
"last_system_message_timestamp_ms": {
"format": "int64",
"type": [
"integer",
"null"
]
},
"messages": {
"items": {
"$ref": "#/definitions/RangeMessage"
},
"type": "array"
}
},
"required": [
"last_message_timestamp_ms"
],
"type": "object"
},
"RangeMessage": {
"additionalProperties": false,
"properties": {
"key": {
"$ref": "#/definitions/MessageKeyInput"
},
"timestamp_ms": {
"format": "int64",
"type": "integer"
}
},
"required": [
"key",
"timestamp_ms"
],
"type": "object"
}
},
"properties": {
"chat_id": {
"type": "string"
},
"message_range": {
"anyOf": [
{
"$ref": "#/definitions/MessageRange"
},
{
"type": "null"
}
]
},
"session_id": {
"type": "string"
}
},
"required": [
"chat_id",
"session_id"
],
"title": "RangeRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Remove a chat from the locked chats folder."
},
"name": "whatsapp::chats::unlock",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"chat_id",
"session_id"
],
"title": "ChatRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Unmute a chat across linked devices."
},
"name": "whatsapp::chats::unmute",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"chat_id",
"session_id"
],
"title": "ChatRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Unpin a chat across linked devices."
},
"name": "whatsapp::chats::unpin",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"chat_id",
"session_id"
],
"title": "ChatRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Read aggregate WABA analytics with validated field/time/granularity. UTC Unix seconds; messaging uses DAY/MONTH, other datasets DAILY/MONTHLY. Template/group datasets require IDs and DAILY. Dataset eligibility and lookback rules apply; see docs/cloud-management.md. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::analytics::get",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"end": {
"maximum": 253402300799,
"minimum": 1,
"type": "integer"
},
"field": {
"enum": [
"analytics",
"conversation_analytics",
"pricing_analytics",
"template_analytics",
"template_group_analytics",
"call_analytics",
"group_analytics"
],
"type": "string"
},
"granularity": {
"enum": [
"HALF_HOUR",
"DAY",
"MONTH",
"DAILY",
"MONTHLY"
],
"type": "string"
},
"group_ids": {
"items": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[A-Za-z0-9_-]+$",
"type": "string"
},
"maxItems": 1,
"minItems": 1,
"type": "array",
"uniqueItems": true
},
"metric_types": {
"items": {
"maxLength": 40,
"minLength": 1,
"type": "string"
},
"maxItems": 10,
"minItems": 1,
"type": "array",
"uniqueItems": true
},
"start": {
"maximum": 253402300799,
"minimum": 1,
"type": "integer"
},
"template_group_ids": {
"items": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[0-9]+$",
"type": "string"
},
"maxItems": 10,
"minItems": 1,
"type": "array",
"uniqueItems": true
},
"template_ids": {
"items": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[0-9]+$",
"type": "string"
},
"maxItems": 10,
"minItems": 1,
"type": "array",
"uniqueItems": true
}
},
"required": [
"field",
"start",
"end",
"granularity"
],
"title": "CloudManagement_analytics_get_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"data": {
"$ref": "#/definitions/CloudManagementJSON"
},
"field": {
"maxLength": 64,
"minLength": 1,
"type": "string"
}
},
"required": [
"field",
"data"
],
"title": "CloudManagement_analytics_get_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Block up to 1000 phone-number users who contacted the business in the last 24h. Business accounts cannot be blocked. A bulk error may include partial success; reconcile with blocking::list before retrying. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::blocking::block",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"users": {
"items": {
"maxLength": 16,
"minLength": 6,
"pattern": "^\\+?[1-9][0-9]{5,14}$",
"type": "string"
},
"maxItems": 1000,
"minItems": 1,
"type": "array",
"uniqueItems": true
}
},
"required": [
"users"
],
"title": "CloudManagement_blocking_block_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"block_users": {
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 128,
"type": "object"
}
},
"required": [
"block_users"
],
"title": "CloudManagement_blocking_block_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "List blocked Cloud users. This is separate from native linked-device blocklists. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::blocking::list",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"after": {
"maxLength": 2048,
"minLength": 0,
"type": "string"
},
"limit": {
"maximum": 100,
"minimum": 1,
"type": "integer"
}
},
"required": [],
"title": "CloudManagement_blocking_list_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"items": {
"items": {
"additionalProperties": false,
"properties": {
"input": {
"maxLength": 8192,
"type": "string"
},
"user_id": {
"maxLength": 8192,
"type": "string"
},
"wa_id": {
"maxLength": 8192,
"type": "string"
}
},
"required": [],
"type": "object"
},
"maxItems": 1000,
"type": "array"
},
"next_cursor": {
"maxLength": 2048,
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
],
"title": "CloudManagement_blocking_list_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Unblock up to 1000 phone-number users. A bulk error may include partial success; reconcile with blocking::list before retrying. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::blocking::unblock",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"users": {
"items": {
"maxLength": 16,
"minLength": 6,
"pattern": "^\\+?[1-9][0-9]{5,14}$",
"type": "string"
},
"maxItems": 1000,
"minItems": 1,
"type": "array",
"uniqueItems": true
}
},
"required": [
"users"
],
"title": "CloudManagement_blocking_unblock_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"block_users": {
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 128,
"type": "object"
}
},
"required": [
"block_users"
],
"title": "CloudManagement_blocking_unblock_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Accept an incoming Cloud call; supply the externally generated SDP answer. Accept may omit session after pre-accept."
},
"name": "whatsapp::cloud::calls::accept",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"biz_opaque_callback_data": {
"maxLength": 512,
"type": "string"
},
"call_id": {
"maxLength": 1024,
"pattern": "^wacid\\.[A-Za-z0-9_+/=-]+$",
"type": "string"
},
"session": {
"additionalProperties": false,
"properties": {
"sdp": {
"maxLength": 65536,
"minLength": 5,
"type": "string"
},
"sdp_type": {
"enum": [
"answer"
],
"type": "string"
}
},
"required": [
"sdp_type",
"sdp"
],
"type": "object"
}
},
"required": [
"call_id"
],
"title": "CloudCallAcceptRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"action": {
"type": "string"
},
"call_id": {
"maxLength": 1024,
"pattern": "^wacid\\.[A-Za-z0-9_+/=-]+$",
"type": "string"
},
"status": {
"enum": [
"accepted"
],
"type": "string"
}
},
"required": [
"call_id",
"action",
"status"
],
"title": "CloudCallResult",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Initiate an official Cloud call with an externally generated SDP offer. User calling permission and Meta eligibility are required. No automatic retry."
},
"name": "whatsapp::cloud::calls::connect",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"biz_opaque_callback_data": {
"maxLength": 512,
"type": "string"
},
"chat_id": {
"type": "string"
},
"session": {
"additionalProperties": false,
"properties": {
"sdp": {
"maxLength": 65536,
"minLength": 5,
"type": "string"
},
"sdp_type": {
"enum": [
"offer"
],
"type": "string"
}
},
"required": [
"sdp_type",
"sdp"
],
"type": "object"
}
},
"required": [
"chat_id",
"session"
],
"title": "CloudCallConnectRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"action": {
"type": "string"
},
"call_id": {
"maxLength": 1024,
"pattern": "^wacid\\.[A-Za-z0-9_+/=-]+$",
"type": "string"
},
"status": {
"enum": [
"accepted"
],
"type": "string"
}
},
"required": [
"call_id",
"action",
"status"
],
"title": "CloudCallResult",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Read current calling permission and applicable limits for a phone recipient or BSUID."
},
"name": "whatsapp::cloud::calls::permissions::get",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
}
},
"required": [
"chat_id"
],
"title": "CloudCallPermissionsGetRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"description": "Sanitized Meta settings or permission data; SIP credentials are excluded.",
"title": "CloudCallSettingsResult",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Send an interactive calling-permission request during an open customer-service window. The user chooses whether to grant permission."
},
"name": "whatsapp::cloud::calls::permissions::request",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
},
"recipient_identity_key_hash": {
"maxLength": 512,
"type": "string"
},
"reply_to_message_id": {
"maxLength": 512,
"type": "string"
},
"text": {
"maxLength": 1024,
"type": "string"
}
},
"required": [
"chat_id"
],
"title": "CloudCallPermissionsRequestRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Pre Accept an incoming Cloud call; supply the externally generated SDP answer. Accept may omit session after pre-accept."
},
"name": "whatsapp::cloud::calls::pre_accept",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"biz_opaque_callback_data": {
"maxLength": 512,
"type": "string"
},
"call_id": {
"maxLength": 1024,
"pattern": "^wacid\\.[A-Za-z0-9_+/=-]+$",
"type": "string"
},
"session": {
"additionalProperties": false,
"properties": {
"sdp": {
"maxLength": 65536,
"minLength": 5,
"type": "string"
},
"sdp_type": {
"enum": [
"answer"
],
"type": "string"
}
},
"required": [
"sdp_type",
"sdp"
],
"type": "object"
}
},
"required": [
"call_id",
"session"
],
"title": "CloudCallPre_AcceptRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"action": {
"type": "string"
},
"call_id": {
"maxLength": 1024,
"pattern": "^wacid\\.[A-Za-z0-9_+/=-]+$",
"type": "string"
},
"status": {
"enum": [
"accepted"
],
"type": "string"
}
},
"required": [
"call_id",
"action",
"status"
],
"title": "CloudCallResult",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Reject an official Cloud call. API acceptance does not confirm remote completion; observe call webhooks."
},
"name": "whatsapp::cloud::calls::reject",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"call_id": {
"maxLength": 1024,
"pattern": "^wacid\\.[A-Za-z0-9_+/=-]+$",
"type": "string"
}
},
"required": [
"call_id"
],
"title": "CloudCallRejectRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"action": {
"type": "string"
},
"call_id": {
"maxLength": 1024,
"pattern": "^wacid\\.[A-Za-z0-9_+/=-]+$",
"type": "string"
},
"status": {
"enum": [
"accepted"
],
"type": "string"
}
},
"required": [
"call_id",
"action",
"status"
],
"title": "CloudCallResult",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Read Calling API settings for the configured Cloud phone without retrieving SIP passwords."
},
"name": "whatsapp::cloud::calls::settings::get",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {},
"required": [],
"title": "CloudCallSettingsGetRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"description": "Sanitized Meta settings or permission data; SIP credentials are excluded.",
"title": "CloudCallSettingsResult",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Update Calling API settings for the configured phone, including hours, SIP routing, codecs and voicemail. Does not create a SIP/WebRTC media server."
},
"name": "whatsapp::cloud::calls::settings::update",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"calling": {
"additionalProperties": false,
"minProperties": 1,
"properties": {
"audio": {
"additionalProperties": false,
"properties": {
"additional_codecs": {
"items": {
"enum": [
"PCMA",
"PCMU"
],
"type": "string"
},
"maxItems": 2,
"type": "array"
}
},
"required": [
"additional_codecs"
],
"type": "object"
},
"call_hours": {
"additionalProperties": false,
"properties": {
"holiday_schedule": {
"items": {
"additionalProperties": false,
"properties": {
"date": {
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
"type": "string"
},
"end_time": {
"pattern": "^(?:[01][0-9]|2[0-3])[0-5][0-9]$",
"type": "string"
},
"start_time": {
"pattern": "^(?:[01][0-9]|2[0-3])[0-5][0-9]$",
"type": "string"
}
},
"required": [
"date",
"start_time",
"end_time"
],
"type": "object"
},
"maxItems": 20,
"type": "array"
},
"status": {
"enum": [
"ENABLED",
"DISABLED"
],
"type": "string"
},
"timezone_id": {
"type": "string"
},
"weekly_operating_hours": {
"items": {
"additionalProperties": false,
"properties": {
"close_time": {
"pattern": "^(?:[01][0-9]|2[0-3])[0-5][0-9]$",
"type": "string"
},
"day_of_week": {
"enum": [
"MONDAY",
"TUESDAY",
"WEDNESDAY",
"THURSDAY",
"FRIDAY",
"SATURDAY",
"SUNDAY"
],
"type": "string"
},
"open_time": {
"pattern": "^(?:[01][0-9]|2[0-3])[0-5][0-9]$",
"type": "string"
}
},
"required": [
"day_of_week",
"open_time",
"close_time"
],
"type": "object"
},
"maxItems": 14,
"type": "array"
}
},
"required": [
"status"
],
"type": "object"
},
"call_icon_visibility": {
"enum": [
"DEFAULT",
"DISABLE_ALL"
],
"type": "string"
},
"call_icons": {
"additionalProperties": false,
"properties": {
"restrict_to_user_countries": {
"items": {
"pattern": "^[A-Z]{2}$",
"type": "string"
},
"maxItems": 250,
"type": "array"
}
},
"required": [
"restrict_to_user_countries"
],
"type": "object"
},
"callback_permission_status": {
"enum": [
"ENABLED",
"DISABLED"
],
"type": "string"
},
"sip": {
"additionalProperties": false,
"properties": {
"servers": {
"items": {
"additionalProperties": false,
"properties": {
"hostname": {
"maxLength": 253,
"type": "string"
},
"port": {
"maximum": 65535,
"minimum": 1,
"type": "integer"
},
"request_uri_user_params": {
"additionalProperties": {
"maxLength": 128,
"type": "string"
},
"maxProperties": 32,
"type": "object"
}
},
"required": [
"hostname"
],
"type": "object"
},
"maxItems": 1,
"type": "array"
},
"status": {
"enum": [
"ENABLED",
"DISABLED"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"status": {
"enum": [
"ENABLED",
"DISABLED"
],
"type": "string"
},
"voicemail": {
"additionalProperties": false,
"properties": {
"audio": {
"additionalProperties": false,
"properties": {
"default": {
"additionalProperties": false,
"properties": {
"announcement_media_id": {
"description": "Numeric Meta media ID as a string to preserve precision; encoded as an integer in the Meta request.",
"pattern": "^[0-9]{1,128}$",
"type": "string"
},
"timeout_seconds": {
"maximum": 30,
"minimum": 0,
"type": "integer"
}
},
"required": [
"announcement_media_id"
],
"type": "object"
}
},
"required": [
"default"
],
"type": "object"
},
"status": {
"enum": [
"ENABLED",
"DISABLED"
],
"type": "string"
},
"triggers": {
"items": {
"enum": [
"REJECT",
"TIMEOUT"
],
"type": "string"
},
"maxItems": 2,
"type": "array"
}
},
"required": [
"status"
],
"type": "object"
}
},
"required": [],
"type": "object"
}
},
"required": [
"calling"
],
"title": "CloudCallSettingsUpdateRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"description": "Sanitized Meta settings or permission data; SIP credentials are excluded.",
"title": "CloudCallSettingsResult",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Terminate an official Cloud call. API acceptance does not confirm remote completion; observe call webhooks."
},
"name": "whatsapp::cloud::calls::terminate",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"call_id": {
"maxLength": 1024,
"pattern": "^wacid\\.[A-Za-z0-9_+/=-]+$",
"type": "string"
}
},
"required": [
"call_id"
],
"title": "CloudCallTerminateRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"action": {
"type": "string"
},
"call_id": {
"maxLength": 1024,
"pattern": "^wacid\\.[A-Za-z0-9_+/=-]+$",
"type": "string"
},
"status": {
"enum": [
"accepted"
],
"type": "string"
}
},
"required": [
"call_id",
"action",
"status"
],
"title": "CloudCallResult",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "List retained Cloud API conversations without reading native sessions or sending read receipts"
},
"name": "whatsapp::cloud::chats::list",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"cursor": {
"type": [
"string",
"null"
]
},
"limit": {
"default": 100,
"format": "uint",
"maximum": 200,
"minimum": 1,
"type": "integer"
},
"query": {
"type": [
"string",
"null"
]
}
},
"title": "ChatsRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"ChatView": {
"properties": {
"chat_id": {
"type": "string"
},
"is_group": {
"type": "boolean"
},
"last_message": {
"anyOf": [
{
"$ref": "#/definitions/MessageView"
},
{
"type": "null"
}
]
},
"message_count": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"chat_id",
"is_group",
"message_count",
"title"
],
"type": "object"
},
"Coverage": {
"properties": {
"capture_started_at_ms": {
"format": "int64",
"type": "integer"
},
"last_history_sync_at_ms": {
"format": "int64",
"type": [
"integer",
"null"
]
},
"last_history_sync_progress": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"message_limit": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"retention_truncated": {
"type": "boolean"
}
},
"required": [
"capture_started_at_ms",
"message_limit",
"retention_truncated"
],
"type": "object"
},
"MessageView": {
"properties": {
"chat_id": {
"type": "string"
},
"from_me": {
"type": "boolean"
},
"kind": {
"type": "string"
},
"message_id": {
"type": "string"
},
"sender_id": {
"type": "string"
},
"sender_name": {
"type": [
"string",
"null"
]
},
"source": {
"type": "string"
},
"status": {
"type": [
"string",
"null"
]
},
"text": {
"type": "string"
},
"timestamp_ms": {
"format": "int64",
"type": "integer"
}
},
"required": [
"chat_id",
"from_me",
"kind",
"message_id",
"sender_id",
"source",
"text",
"timestamp_ms"
],
"type": "object"
}
},
"properties": {
"chats": {
"items": {
"$ref": "#/definitions/ChatView"
},
"type": "array"
},
"coverage": {
"$ref": "#/definitions/Coverage"
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"chats",
"coverage"
],
"title": "ChatPage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Check configured phone, business account membership and webhook subscriptions using read-only Meta requests"
},
"name": "whatsapp::cloud::check_connection",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"title": "Empty",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Phone": {
"properties": {
"code_verification_status": {
"default": null,
"type": [
"string",
"null"
]
},
"display_phone_number": {
"type": "string"
},
"id": {
"type": "string"
},
"quality_rating": {
"default": null,
"type": [
"string",
"null"
]
},
"verified_name": {
"type": "string"
}
},
"required": [
"display_phone_number",
"id",
"verified_name"
],
"type": "object"
},
"SubscribedApp": {
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"id",
"name"
],
"type": "object"
}
},
"properties": {
"phone": {
"$ref": "#/definitions/Phone"
},
"phone_in_business_account": {
"type": "boolean"
},
"subscribed_apps": {
"items": {
"$ref": "#/definitions/SubscribedApp"
},
"type": "array"
}
},
"required": [
"phone",
"phone_in_business_account",
"subscribed_apps"
],
"title": "ConnectionCheck",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Read cart/catalog visibility on the configured phone. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::commerce::get",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {},
"required": [],
"title": "CloudManagement_commerce_get_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"settings": {
"additionalProperties": false,
"properties": {
"id": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[0-9]+$",
"type": "string"
},
"is_cart_enabled": {
"type": "boolean"
},
"is_catalog_visible": {
"type": "boolean"
}
},
"required": [],
"type": "object"
}
},
"required": [
"settings"
],
"title": "CloudManagement_commerce_get_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Enable/disable cart or catalog visibility on the configured phone. Supply at least one field. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::commerce::update",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"minProperties": 1,
"properties": {
"is_cart_enabled": {
"type": "boolean"
},
"is_catalog_visible": {
"type": "boolean"
}
},
"required": [],
"title": "CloudManagement_commerce_update_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"success": {
"type": "boolean"
}
},
"required": [
"success"
],
"title": "CloudManagement_commerce_update_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Read configured icebreakers and commands on the business phone. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::conversational_components::get",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {},
"required": [],
"title": "CloudManagement_conversational_components_get_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"settings": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"commands": {
"items": {
"additionalProperties": false,
"properties": {
"command_description": {
"maxLength": 8192,
"type": "string"
},
"command_name": {
"maxLength": 8192,
"type": "string"
}
},
"required": [],
"type": "object"
},
"maxItems": 1000,
"type": "array"
},
"prompts": {
"items": {
"maxLength": 8192,
"type": "string"
},
"maxItems": 1000,
"type": "array"
}
},
"required": [],
"type": "object"
},
{
"type": "null"
}
]
}
},
"required": [
"settings"
],
"title": "CloudManagement_conversational_components_get_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Update supplied icebreakers/commands. Empty arrays clear that component. Up to four prompts (80 chars) and 30 commands (32-char name, 256-char hint); emojis are not supported. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::conversational_components::update",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"minProperties": 1,
"properties": {
"commands": {
"items": {
"additionalProperties": false,
"properties": {
"command_description": {
"maxLength": 256,
"minLength": 1,
"type": "string"
},
"command_name": {
"maxLength": 32,
"minLength": 1,
"pattern": "^[A-Za-z0-9_]+$",
"type": "string"
}
},
"required": [
"command_name",
"command_description"
],
"type": "object"
},
"maxItems": 30,
"minItems": 0,
"type": "array",
"uniqueItems": true
},
"prompts": {
"items": {
"maxLength": 80,
"minLength": 1,
"type": "string"
},
"maxItems": 4,
"minItems": 0,
"type": "array",
"uniqueItems": true
}
},
"required": [],
"title": "CloudManagement_conversational_components_update_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"success": {
"type": "boolean"
}
},
"required": [
"success"
],
"title": "CloudManagement_conversational_components_update_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Download the configured-account Flow JSON through a checked Meta origin; no redirects or retries."
},
"name": "whatsapp::cloud::flows::assets::download",
"request_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"flow_id": {
"pattern": "^[0-9]{1,128}$",
"type": "string"
}
},
"required": [
"flow_id"
],
"type": "object"
},
"response_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"asset_type": {
"const": "FLOW_JSON"
},
"data_base64": {
"type": "string"
},
"file_length": {
"maximum": 10000000,
"minimum": 1,
"type": "integer"
},
"mimetype": {
"const": "application/json"
},
"name": {
"const": "flow.json"
}
},
"required": [
"name",
"asset_type",
"mimetype",
"file_length",
"data_base64"
],
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "List Flow asset names/types. Use assets::download to retrieve JSON bytes."
},
"name": "whatsapp::cloud::flows::assets::list",
"request_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"flow_id": {
"pattern": "^[0-9]{1,128}$",
"type": "string"
}
},
"required": [
"flow_id"
],
"type": "object"
},
"response_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"data": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
"next_cursor": {
"maxLength": 2048,
"type": [
"string",
"null"
]
}
},
"required": [
"data",
"next_cursor"
],
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Upload flow.json as application/json multipart. Bytes only; no host paths or caller URLs. Maximum min(max_media_bytes, 10000000) bytes."
},
"name": "whatsapp::cloud::flows::assets::upload",
"request_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"data_base64": {
"maxLength": 13333336,
"minLength": 1,
"type": "string"
},
"flow_id": {
"pattern": "^[0-9]{1,128}$",
"type": "string"
}
},
"required": [
"flow_id",
"data_base64"
],
"type": "object"
},
"response_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"success": {
"description": "Meta operation result. False with validation_errors requires correcting the Flow JSON before publishing.",
"type": "boolean"
},
"validation_errors": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
}
},
"required": [
"success"
],
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Create or clone a Flow in the configured WABA. Publishing requires an explicit publish=true. Flow JSON is bounded by max_media_bytes and 10 MB."
},
"name": "whatsapp::cloud::flows::create",
"request_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"categories": {
"items": {
"enum": [
"SIGN_UP",
"SIGN_IN",
"APPOINTMENT_BOOKING",
"LEAD_GENERATION",
"CONTACT_US",
"CUSTOMER_SUPPORT",
"SURVEY",
"OTHER"
]
},
"maxItems": 8,
"minItems": 1,
"type": "array",
"uniqueItems": true
},
"clone_flow_id": {
"pattern": "^[0-9]{1,128}$",
"type": "string"
},
"endpoint_uri": {
"maxLength": 2048,
"type": "string"
},
"flow_json": {
"additionalProperties": true,
"type": "object"
},
"name": {
"maxLength": 256,
"minLength": 1,
"type": "string"
},
"publish": {
"default": false,
"type": "boolean"
}
},
"required": [
"name",
"categories"
],
"type": "object"
},
"response_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": true,
"properties": {
"categories": {
"items": {
"description": "Category",
"maxLength": 128,
"type": "string"
},
"type": "array"
},
"data_api_version": {
"description": "Flow data API version",
"maxLength": 128,
"type": "string"
},
"endpoint_uri": {
"description": "Data exchange endpoint URL",
"maxLength": 2048,
"type": "string"
},
"id": {
"pattern": "^[0-9]{1,128}$",
"type": "string"
},
"json_version": {
"description": "Flow JSON version",
"maxLength": 128,
"type": "string"
},
"name": {
"description": "Flow name",
"maxLength": 256,
"type": "string"
},
"preview": {
"additionalProperties": true,
"type": "object"
},
"status": {
"description": "Meta Flow lifecycle status",
"maxLength": 128,
"type": "string"
},
"success": {
"description": "Meta operation result. False with validation_errors requires correcting the Flow JSON before publishing.",
"type": "boolean"
},
"validation_errors": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
"whatsapp_business_account": {
"additionalProperties": true,
"type": "object"
}
},
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Delete a draft Flow; published Flows must be deprecated."
},
"name": "whatsapp::cloud::flows::delete",
"request_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"flow_id": {
"pattern": "^[0-9]{1,128}$",
"type": "string"
}
},
"required": [
"flow_id"
],
"type": "object"
},
"response_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"success": {
"description": "Meta operation result. False with validation_errors requires correcting the Flow JSON before publishing.",
"type": "boolean"
},
"validation_errors": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
}
},
"required": [
"success"
],
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Deprecate a published Flow. This cannot be undone."
},
"name": "whatsapp::cloud::flows::deprecate",
"request_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"flow_id": {
"pattern": "^[0-9]{1,128}$",
"type": "string"
}
},
"required": [
"flow_id"
],
"type": "object"
},
"response_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"success": {
"description": "Meta operation result. False with validation_errors requires correcting the Flow JSON before publishing.",
"type": "boolean"
},
"validation_errors": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
}
},
"required": [
"success"
],
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Get the configured phone public encryption key and Meta signature status."
},
"name": "whatsapp::cloud::flows::encryption::get",
"request_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {},
"type": "object"
},
"response_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"business_public_key": {
"type": "string"
},
"business_public_key_signature_status": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Set the configured phone RSA-2048 public key. Omit public_key to derive it from the configured private key. Private key is never returned."
},
"name": "whatsapp::cloud::flows::encryption::set",
"request_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"public_key": {
"maxLength": 16384,
"type": "string"
}
},
"type": "object"
},
"response_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"success": {
"description": "Meta operation result. False with validation_errors requires correcting the Flow JSON before publishing.",
"type": "boolean"
},
"validation_errors": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
}
},
"required": [
"success"
],
"type": "object"
}
},
{
"description": "",
"metadata": {
"internal": true,
"trace_hidden": true
},
"name": "whatsapp::cloud::flows::endpoint",
"request_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"anyOf": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"headers": {
"anyOf": [
{
"additionalProperties": {
"type": "string"
},
"type": "object"
},
{
"type": "null"
}
]
},
"request_body": {
"anyOf": [
{
"properties": {
"access_key": {
"type": "string"
},
"channel_id": {
"type": "string"
},
"direction": {
"type": "string"
}
},
"type": "object"
},
{
"type": "null"
}
]
}
},
"type": "object"
},
{
"type": "null"
}
]
},
"response_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"body": {
"type": "string"
},
"headers": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"status_code": {
"type": "integer"
}
},
"required": [
"status_code",
"headers",
"body"
],
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Read local encrypted Flow endpoint readiness and callback path. Does not contact Meta."
},
"name": "whatsapp::cloud::flows::endpoint::status",
"request_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {},
"type": "object"
},
"response_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"configured": {
"type": "boolean"
},
"handler_function": {
"type": "string"
},
"handler_namespace": {
"type": "string"
},
"path": {
"type": "string"
},
"private_key_set": {
"type": "boolean"
}
},
"required": [
"path",
"configured",
"private_key_set",
"handler_function",
"handler_namespace"
],
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Read Flow details after verifying configured WABA ownership."
},
"name": "whatsapp::cloud::flows::get",
"request_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"flow_id": {
"pattern": "^[0-9]{1,128}$",
"type": "string"
}
},
"required": [
"flow_id"
],
"type": "object"
},
"response_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": true,
"properties": {
"categories": {
"items": {
"description": "Category",
"maxLength": 128,
"type": "string"
},
"type": "array"
},
"data_api_version": {
"description": "Flow data API version",
"maxLength": 128,
"type": "string"
},
"endpoint_uri": {
"description": "Data exchange endpoint URL",
"maxLength": 2048,
"type": "string"
},
"id": {
"pattern": "^[0-9]{1,128}$",
"type": "string"
},
"json_version": {
"description": "Flow JSON version",
"maxLength": 128,
"type": "string"
},
"name": {
"description": "Flow name",
"maxLength": 256,
"type": "string"
},
"preview": {
"additionalProperties": true,
"type": "object"
},
"status": {
"description": "Meta Flow lifecycle status",
"maxLength": 128,
"type": "string"
},
"success": {
"description": "Meta operation result. False with validation_errors requires correcting the Flow JSON before publishing.",
"type": "boolean"
},
"validation_errors": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
"whatsapp_business_account": {
"additionalProperties": true,
"type": "object"
}
},
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "List Flows in the configured WABA with safe cursor pagination."
},
"name": "whatsapp::cloud::flows::list",
"request_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"after": {
"maxLength": 2048,
"type": "string"
},
"limit": {
"default": 50,
"maximum": 100,
"minimum": 1,
"type": "integer"
}
},
"type": "object"
},
"response_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"data": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
"next_cursor": {
"maxLength": 2048,
"type": [
"string",
"null"
]
}
},
"required": [
"data",
"next_cursor"
],
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Get the Flow preview URL without invalidating existing previews."
},
"name": "whatsapp::cloud::flows::preview",
"request_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"flow_id": {
"pattern": "^[0-9]{1,128}$",
"type": "string"
}
},
"required": [
"flow_id"
],
"type": "object"
},
"response_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"preview": {
"additionalProperties": true,
"type": "object"
}
},
"required": [
"preview"
],
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Publish a valid Flow. Publishing is irreversible; verify the draft before invoking."
},
"name": "whatsapp::cloud::flows::publish",
"request_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"flow_id": {
"pattern": "^[0-9]{1,128}$",
"type": "string"
}
},
"required": [
"flow_id"
],
"type": "object"
},
"response_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"success": {
"description": "Meta operation result. False with validation_errors requires correcting the Flow JSON before publishing.",
"type": "boolean"
},
"validation_errors": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
}
},
"required": [
"success"
],
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Update draft Flow metadata. Published Flows cannot be edited."
},
"name": "whatsapp::cloud::flows::update",
"request_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"categories": {
"items": {
"enum": [
"SIGN_UP",
"SIGN_IN",
"APPOINTMENT_BOOKING",
"LEAD_GENERATION",
"CONTACT_US",
"CUSTOMER_SUPPORT",
"SURVEY",
"OTHER"
]
},
"maxItems": 8,
"minItems": 1,
"type": "array",
"uniqueItems": true
},
"endpoint_uri": {
"maxLength": 2048,
"type": "string"
},
"flow_id": {
"pattern": "^[0-9]{1,128}$",
"type": "string"
},
"name": {
"maxLength": 256,
"minLength": 1,
"type": "string"
}
},
"required": [
"flow_id",
"name"
],
"type": "object"
},
"response_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"success": {
"description": "Meta operation result. False with validation_errors requires correcting the Flow JSON before publishing.",
"type": "boolean"
},
"validation_errors": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
}
},
"required": [
"success"
],
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Create an invite-only Cloud group; completion and invite link arrive in group_lifecycle_update. Requires an Official Business Account."
},
"name": "whatsapp::cloud::groups::create",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"description": {
"maxLength": 2048,
"type": "string"
},
"join_approval_mode": {
"enum": [
"auto_approve",
"approval_required"
],
"type": "string"
},
"subject": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
"required": [
"subject"
],
"title": "CloudGroupCreateRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"description": "Sanitized Meta acknowledgement or data. Group creation/deletion/settings completion is confirmed asynchronously via group webhooks. Paging exposes cursors without authenticated URLs.",
"title": "CloudGroupResult",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Delete an owned Cloud group and remove all participants; asynchronous completion is reported by webhook. No automatic retry."
},
"name": "whatsapp::cloud::groups::delete",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"group_id": {
"description": "Opaque official Cloud group ID, without group: prefix or native JID.",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_+/=-]{0,255}$",
"type": "string"
}
},
"required": [
"group_id"
],
"title": "CloudGroupDeleteRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"description": "Sanitized Meta acknowledgement or data. Group creation/deletion/settings completion is confirmed asynchronously via group webhooks. Paging exposes cursors without authenticated URLs.",
"title": "CloudGroupResult",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Read group metadata after confirming ownership under the configured phone."
},
"name": "whatsapp::cloud::groups::get",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"fields": {
"items": {
"enum": [
"join_approval_mode",
"subject",
"description",
"suspended",
"creation_timestamp",
"participants",
"total_participant_count"
],
"type": "string"
},
"maxItems": 7,
"type": "array"
},
"group_id": {
"description": "Opaque official Cloud group ID, without group: prefix or native JID.",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_+/=-]{0,255}$",
"type": "string"
}
},
"required": [
"group_id"
],
"title": "CloudGroupGetRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"description": "Sanitized Meta acknowledgement or data. Group creation/deletion/settings completion is confirmed asynchronously via group webhooks. Paging exposes cursors without authenticated URLs.",
"title": "CloudGroupResult",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Get the current invite link for an owned Cloud group."
},
"name": "whatsapp::cloud::groups::invite_link::get",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"group_id": {
"description": "Opaque official Cloud group ID, without group: prefix or native JID.",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_+/=-]{0,255}$",
"type": "string"
}
},
"required": [
"group_id"
],
"title": "CloudGroupInvite_LinkGetRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"description": "Sanitized Meta acknowledgement or data. Group creation/deletion/settings completion is confirmed asynchronously via group webhooks. Paging exposes cursors without authenticated URLs.",
"title": "CloudGroupResult",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Reset an owned Cloud group invite link; previous invite links become invalid."
},
"name": "whatsapp::cloud::groups::invite_link::reset",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"group_id": {
"description": "Opaque official Cloud group ID, without group: prefix or native JID.",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_+/=-]{0,255}$",
"type": "string"
}
},
"required": [
"group_id"
],
"title": "CloudGroupInvite_LinkResetRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"description": "Sanitized Meta acknowledgement or data. Group creation/deletion/settings completion is confirmed asynchronously via group webhooks. Paging exposes cursors without authenticated URLs.",
"title": "CloudGroupResult",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Approve pending join requests for an owned Cloud group. Check per-request failures in the response."
},
"name": "whatsapp::cloud::groups::join_requests::approve",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"group_id": {
"description": "Opaque official Cloud group ID, without group: prefix or native JID.",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_+/=-]{0,255}$",
"type": "string"
},
"join_request_ids": {
"items": {
"description": "Opaque official Cloud group ID, without group: prefix or native JID.",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_+/=-]{0,255}$",
"type": "string"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
}
},
"required": [
"group_id",
"join_request_ids"
],
"title": "CloudGroupJoin_RequestsApproveRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"description": "Sanitized Meta acknowledgement or data. Group creation/deletion/settings completion is confirmed asynchronously via group webhooks. Paging exposes cursors without authenticated URLs.",
"title": "CloudGroupResult",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "List pending join requests for an owned Cloud group; use the returned cursor for pagination."
},
"name": "whatsapp::cloud::groups::join_requests::list",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"after": {
"type": "string"
},
"group_id": {
"description": "Opaque official Cloud group ID, without group: prefix or native JID.",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_+/=-]{0,255}$",
"type": "string"
},
"limit": {
"maximum": 100,
"minimum": 1,
"type": "integer"
}
},
"required": [
"group_id"
],
"title": "CloudGroupJoin_RequestsListRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"description": "Sanitized Meta acknowledgement or data. Group creation/deletion/settings completion is confirmed asynchronously via group webhooks. Paging exposes cursors without authenticated URLs.",
"title": "CloudGroupResult",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Reject pending join requests for an owned Cloud group. Check per-request failures in the response."
},
"name": "whatsapp::cloud::groups::join_requests::reject",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"group_id": {
"description": "Opaque official Cloud group ID, without group: prefix or native JID.",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_+/=-]{0,255}$",
"type": "string"
},
"join_request_ids": {
"items": {
"description": "Opaque official Cloud group ID, without group: prefix or native JID.",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_+/=-]{0,255}$",
"type": "string"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
}
},
"required": [
"group_id",
"join_request_ids"
],
"title": "CloudGroupJoin_RequestsRejectRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"description": "Sanitized Meta acknowledgement or data. Group creation/deletion/settings completion is confirmed asynchronously via group webhooks. Paging exposes cursors without authenticated URLs.",
"title": "CloudGroupResult",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "List active groups owned by the configured Cloud phone. Requires Meta Groups API eligibility."
},
"name": "whatsapp::cloud::groups::list",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"after": {
"type": "string"
},
"limit": {
"maximum": 1024,
"minimum": 1,
"type": "integer"
}
},
"required": [],
"title": "CloudGroupListRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"description": "Sanitized Meta acknowledgement or data. Group creation/deletion/settings completion is confirmed asynchronously via group webhooks. Paging exposes cursors without authenticated URLs.",
"title": "CloudGroupResult",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Pin one message in an owned official Cloud group for 1..30 days. Meta permits at most 3 simultaneous pins."
},
"name": "whatsapp::cloud::groups::messages::pin",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"expiration_days": {
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"group_id": {
"description": "Opaque official Cloud group ID, without group: prefix or native JID.",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_+/=-]{0,255}$",
"type": "string"
},
"message_id": {
"maxLength": 512,
"minLength": 1,
"type": "string"
}
},
"required": [
"group_id",
"message_id",
"expiration_days"
],
"title": "CloudGroupMessagesPinRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Send an uploaded image/audio/video/sticker/document to an owned official Cloud group. Captions only for image/video/document; file_name only for document."
},
"name": "whatsapp::cloud::groups::messages::send_media",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"caption": {
"maxLength": 1024,
"type": [
"string",
"null"
]
},
"file_name": {
"maxLength": 255,
"type": "string"
},
"group_id": {
"description": "Opaque official Cloud group ID, without group: prefix or native JID.",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_+/=-]{0,255}$",
"type": "string"
},
"media_id": {
"pattern": "^[0-9]{1,128}$",
"type": "string"
},
"media_type": {
"enum": [
"image",
"audio",
"video",
"sticker",
"document"
],
"type": "string"
},
"reply_to_message_id": {
"maxLength": 512,
"type": "string"
}
},
"required": [
"group_id",
"media_type",
"media_id"
],
"title": "CloudGroupMessagesSend_MediaRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Send an approved text/media template to an owned official Cloud group. Meta rejects unsupported authentication, commerce and interactive templates."
},
"name": "whatsapp::cloud::groups::messages::send_template",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"components": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
"group_id": {
"description": "Opaque official Cloud group ID, without group: prefix or native JID.",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_+/=-]{0,255}$",
"type": "string"
},
"language": {
"pattern": "^[A-Za-z0-9_]{1,32}$",
"type": "string"
},
"name": {
"pattern": "^[a-z0-9_]{1,512}$",
"type": "string"
},
"reply_to_message_id": {
"maxLength": 512,
"type": "string"
}
},
"required": [
"group_id",
"name",
"language"
],
"title": "CloudGroupMessagesSend_TemplateRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Send official Cloud group text, with optional quoted reply. API acceptance is distinct from webhook delivery."
},
"name": "whatsapp::cloud::groups::messages::send_text",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"group_id": {
"description": "Opaque official Cloud group ID, without group: prefix or native JID.",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_+/=-]{0,255}$",
"type": "string"
},
"preview_url": {
"type": "boolean"
},
"reply_to_message_id": {
"maxLength": 512,
"type": "string"
},
"text": {
"maxLength": 4096,
"minLength": 1,
"type": "string"
}
},
"required": [
"group_id",
"text"
],
"title": "CloudGroupMessagesSend_TextRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Unpin a message in an owned official Cloud group."
},
"name": "whatsapp::cloud::groups::messages::unpin",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"group_id": {
"description": "Opaque official Cloud group ID, without group: prefix or native JID.",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_+/=-]{0,255}$",
"type": "string"
},
"message_id": {
"maxLength": 512,
"minLength": 1,
"type": "string"
}
},
"required": [
"group_id",
"message_id"
],
"title": "CloudGroupMessagesUnpinRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Remove 1..8 participants from an owned Cloud group. Removed users cannot rejoin through its invite link."
},
"name": "whatsapp::cloud::groups::participants::remove",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"group_id": {
"description": "Opaque official Cloud group ID, without group: prefix or native JID.",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_+/=-]{0,255}$",
"type": "string"
},
"participant_ids": {
"items": {
"type": "string"
},
"maxItems": 8,
"minItems": 1,
"type": "array"
}
},
"required": [
"group_id",
"participant_ids"
],
"title": "CloudGroupParticipantsRemoveRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"description": "Sanitized Meta acknowledgement or data. Group creation/deletion/settings completion is confirmed asynchronously via group webhooks. Paging exposes cursors without authenticated URLs.",
"title": "CloudGroupResult",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Upload a square JPEG group photo from base64 bytes, at least 192x192 pixels, at most min(max_media_bytes, 5 MB). No host paths or URLs."
},
"name": "whatsapp::cloud::groups::photo::set",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"data_base64": {
"minLength": 1,
"type": "string"
},
"file_name": {
"maxLength": 255,
"minLength": 1,
"type": "string"
},
"group_id": {
"description": "Opaque official Cloud group ID, without group: prefix or native JID.",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_+/=-]{0,255}$",
"type": "string"
},
"mimetype": {
"enum": [
"image/jpeg"
],
"type": "string"
}
},
"required": [
"group_id",
"data_base64",
"mimetype",
"file_name"
],
"title": "CloudGroupPhotoSetRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"description": "Sanitized Meta acknowledgement or data. Group creation/deletion/settings completion is confirmed asynchronously via group webhooks. Paging exposes cursors without authenticated URLs.",
"title": "CloudGroupResult",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Update subject or description of an owned Cloud group."
},
"name": "whatsapp::cloud::groups::update",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"description": {
"maxLength": 2048,
"type": "string"
},
"group_id": {
"description": "Opaque official Cloud group ID, without group: prefix or native JID.",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_+/=-]{0,255}$",
"type": "string"
},
"subject": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
"required": [
"group_id"
],
"title": "CloudGroupUpdateRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"description": "Sanitized Meta acknowledgement or data. Group creation/deletion/settings completion is confirmed asynchronously via group webhooks. Paging exposes cursors without authenticated URLs.",
"title": "CloudGroupResult",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Read only identity-change settings from the phone settings endpoint; null means not returned by Meta. SIP and other unrelated credentials are never returned. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::identity::get",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {},
"required": [],
"title": "CloudManagement_identity_get_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"settings": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"enable_identity_key_check": {
"type": "boolean"
},
"enabled": {
"type": "boolean"
}
},
"required": [],
"type": "object"
},
{
"type": "null"
}
]
}
},
"required": [
"settings"
],
"title": "CloudManagement_identity_get_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Enable/disable identity-key checks using user_identity_change.enable_identity_key_check. Sending with a recorded recipient_identity_key_hash is explicit; no automatic trust reset or resend. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::identity::update",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"enable_identity_key_check": {
"type": "boolean"
}
},
"required": [
"enable_identity_key_check"
],
"title": "CloudManagement_identity_update_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"success": {
"type": "boolean"
}
},
"required": [
"success"
],
"title": "CloudManagement_identity_update_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Delete a phone-scoped Cloud API media asset by ID. No automatic retry is made."
},
"name": "whatsapp::cloud::media::delete",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"media_id": {
"description": "Meta media ID. Never a URL, native media key or host file path.",
"pattern": "^[0-9]{1,128}$",
"type": "string"
}
},
"required": [
"media_id"
],
"title": "CloudMediaIDRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"deleted": {
"type": "boolean"
},
"media_id": {
"description": "Meta media ID. Never a URL, native media key or host file path.",
"pattern": "^[0-9]{1,128}$",
"type": "string"
}
},
"required": [
"media_id",
"deleted"
],
"title": "CloudDeletedMedia",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Download phone-scoped Cloud API media by ID, validating trusted HTTPS Meta hosts, MIME, SHA-256 and max_media_bytes; returns base64 bytes and never follows redirects."
},
"name": "whatsapp::cloud::media::download",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"media_id": {
"description": "Meta media ID. Never a URL, native media key or host file path.",
"pattern": "^[0-9]{1,128}$",
"type": "string"
}
},
"required": [
"media_id"
],
"title": "CloudMediaIDRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"data_base64": {
"type": "string"
},
"file_length": {
"minimum": 1,
"type": "integer"
},
"media_id": {
"description": "Meta media ID. Never a URL, native media key or host file path.",
"pattern": "^[0-9]{1,128}$",
"type": "string"
},
"mimetype": {
"type": "string"
},
"sha256": {
"description": "SHA-256 digest as lowercase hexadecimal.",
"pattern": "^[0-9a-f]{64}$",
"type": "string"
}
},
"required": [
"media_id",
"mimetype",
"file_length",
"sha256",
"data_base64"
],
"title": "CloudDownloadedMedia",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Read phone-scoped Cloud API media metadata without exposing the authenticated download URL."
},
"name": "whatsapp::cloud::media::get",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"media_id": {
"description": "Meta media ID. Never a URL, native media key or host file path.",
"pattern": "^[0-9]{1,128}$",
"type": "string"
}
},
"required": [
"media_id"
],
"title": "CloudMediaIDRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"file_length": {
"minimum": 1,
"type": "integer"
},
"media_id": {
"description": "Meta media ID. Never a URL, native media key or host file path.",
"pattern": "^[0-9]{1,128}$",
"type": "string"
},
"mimetype": {
"type": "string"
},
"sha256": {
"description": "SHA-256 digest as lowercase hexadecimal.",
"pattern": "^[0-9a-f]{64}$",
"type": "string"
}
},
"required": [
"media_id",
"mimetype",
"file_length",
"sha256"
],
"title": "CloudMediaInfo",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Upload supported Cloud API media from base64 bytes and return a reusable media ID; validates MIME, content and byte limits without reading host paths or URLs."
},
"name": "whatsapp::cloud::media::upload",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"data_base64": {
"minLength": 1,
"type": "string"
},
"file_name": {
"description": "A matching file extension, without paths or controls. Markdown is not supported.",
"maxLength": 255,
"minLength": 1,
"type": "string"
},
"media_type": {
"enum": [
"image",
"audio",
"video",
"sticker",
"document"
],
"type": "string"
},
"mimetype": {
"description": "Exact supported MIME; audio/ogg or audio/ogg; codecs=opus requires mono Opus.",
"type": "string"
}
},
"required": [
"media_type",
"data_base64",
"mimetype",
"file_name"
],
"title": "CloudMediaUploadRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"file_length": {
"minimum": 1,
"type": "integer"
},
"file_name": {
"type": "string"
},
"media_id": {
"description": "Meta media ID. Never a URL, native media key or host file path.",
"pattern": "^[0-9]{1,128}$",
"type": "string"
},
"media_type": {
"type": "string"
},
"mimetype": {
"type": "string"
}
},
"required": [
"media_id",
"media_type",
"mimetype",
"file_name",
"file_length"
],
"title": "CloudUploadedMedia",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Upload one officially supported document to Meta Cloud API from bounded base64; returns a reusable media_id. No linked session, host paths, URL fetches, conversion or automatic retries. Markdown is unsupported; explicitly choose TXT or PDF."
},
"name": "whatsapp::cloud::media::upload_document",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"data_base64": {
"description": "Standard padded base64, no data URL. Decoded bytes must fit max_media_bytes (default 16 MiB; configurable to 64 MiB) and the conservative 100,000,000-byte Cloud ceiling. No automatic conversion.",
"maxLength": 89478488,
"minLength": 4,
"type": "string"
},
"file_name": {
"description": "Display filename with supported extension; maximum 255 UTF-8 bytes (worker policy), without paths or control characters. Markdown is not supported; choose TXT or PDF explicitly.",
"maxLength": 255,
"minLength": 1,
"type": "string"
},
"mimetype": {
"description": "Official document MIME type: text/plain, application/pdf, application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, or the corresponding Office Open XML MIME. Must match filename extension and content. text/markdown is rejected with an explicit alternative.",
"examples": [
"text/plain",
"application/pdf",
"application/vnd.ms-excel",
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"application/msword",
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"application/vnd.ms-powerpoint",
"application/vnd.openxmlformats-officedocument.presentationml.presentation"
],
"maxLength": 200,
"minLength": 1,
"type": "string"
}
},
"required": [
"data_base64",
"mimetype",
"file_name"
],
"title": "CloudDocumentUploadRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"file_length": {
"description": "Number of decoded file bytes uploaded.",
"maximum": 100000000,
"minimum": 1,
"type": "integer"
},
"file_name": {
"description": "Display filename with supported extension; maximum 255 UTF-8 bytes (worker policy), without paths or control characters. Markdown is not supported; choose TXT or PDF explicitly.",
"maxLength": 255,
"minLength": 1,
"type": "string"
},
"media_id": {
"description": "Meta media ID from upload_document, valid for 30 days unless deleted. Reuse without uploading bytes again. Numeric IDs are strings; 128-character bound is worker policy.",
"maxLength": 128,
"minLength": 1,
"pattern": "^[0-9]+$",
"type": "string"
},
"mimetype": {
"type": "string"
}
},
"required": [
"media_id",
"mimetype",
"file_name",
"file_length"
],
"title": "CloudUploadedDocument",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Upload a mono Opus voicemail announcement shorter than 60 seconds with the required Meta use_case. This media is exempt from standard messaging TTL and cannot be sent as an ordinary message."
},
"name": "whatsapp::cloud::media::upload_voicemail_announcement",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"data_base64": {
"minLength": 1,
"type": "string"
},
"description": {
"maxLength": 1024,
"type": "string"
},
"file_name": {
"description": "A matching file extension, without paths or controls. Markdown is not supported.",
"maxLength": 255,
"minLength": 1,
"type": "string"
},
"mimetype": {
"enum": [
"audio/ogg",
"audio/ogg; codecs=opus"
],
"type": "string"
}
},
"required": [
"data_base64",
"mimetype",
"file_name"
],
"title": "CloudVoicemailUploadRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"file_length": {
"minimum": 1,
"type": "integer"
},
"file_name": {
"type": "string"
},
"media_id": {
"description": "Meta media ID. Never a URL, native media key or host file path.",
"pattern": "^[0-9]{1,128}$",
"type": "string"
},
"media_type": {
"type": "string"
},
"mimetype": {
"type": "string"
},
"use_case": {
"enum": [
"call_voicemail_announcement"
],
"type": "string"
}
},
"required": [
"media_id",
"media_type",
"mimetype",
"file_name",
"file_length",
"use_case"
],
"title": "CloudUploadedVoicemail",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Read retained Cloud API messages; no historical Meta webhook fetch or automatic read receipt"
},
"name": "whatsapp::cloud::messages::list",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
},
"cursor": {
"type": [
"string",
"null"
]
},
"limit": {
"default": 50,
"format": "uint",
"maximum": 200,
"minimum": 1,
"type": "integer"
}
},
"required": [
"chat_id"
],
"title": "MessagesRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Coverage": {
"properties": {
"capture_started_at_ms": {
"format": "int64",
"type": "integer"
},
"last_history_sync_at_ms": {
"format": "int64",
"type": [
"integer",
"null"
]
},
"last_history_sync_progress": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"message_limit": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"retention_truncated": {
"type": "boolean"
}
},
"required": [
"capture_started_at_ms",
"message_limit",
"retention_truncated"
],
"type": "object"
},
"MessageView": {
"properties": {
"chat_id": {
"type": "string"
},
"from_me": {
"type": "boolean"
},
"kind": {
"type": "string"
},
"message_id": {
"type": "string"
},
"sender_id": {
"type": "string"
},
"sender_name": {
"type": [
"string",
"null"
]
},
"source": {
"type": "string"
},
"status": {
"type": [
"string",
"null"
]
},
"text": {
"type": "string"
},
"timestamp_ms": {
"format": "int64",
"type": "integer"
}
},
"required": [
"chat_id",
"from_me",
"kind",
"message_id",
"sender_id",
"source",
"text",
"timestamp_ms"
],
"type": "object"
}
},
"properties": {
"coverage": {
"$ref": "#/definitions/Coverage"
},
"messages": {
"description": "Newest first. A cursor loads older locally retained messages.",
"items": {
"$ref": "#/definitions/MessageView"
},
"type": "array"
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"coverage",
"messages"
],
"title": "MessagePage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Mark a received Cloud API message as read. Uses the original message_id from the messages webhook. No automatic retry."
},
"name": "whatsapp::cloud::messages::mark_read",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"message_id": {
"description": "Original incoming Meta message ID, without whitespace or control characters.",
"maxLength": 512,
"minLength": 1,
"type": "string"
}
},
"required": [
"message_id"
],
"title": "CloudActionRequest",
"type": "object"
},
"response_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"success": {
"type": "boolean"
}
},
"required": [
"success"
],
"title": "CloudActionResult",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Request an address from an Indian phone recipient. Available only to businesses based in India. country must be IN. Address data capped at 8192 JSON bytes per object; at most 10 saved addresses (worker bounds). Replies arrive via messages webhook. API acceptance only; no automatic retry."
},
"name": "whatsapp::cloud::messages::request_address",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"maxLength": 136,
"minLength": 1,
"type": "string"
},
"country": {
"enum": [
"IN"
],
"type": "string"
},
"footer": {
"maxLength": 60,
"type": "string"
},
"recipient_identity_key_hash": {
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"reply_to_message_id": {
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"saved_addresses": {
"items": {
"additionalProperties": false,
"properties": {
"id": {
"maxLength": 256,
"minLength": 1,
"type": "string"
},
"value": {
"additionalProperties": false,
"properties": {
"address": {
"type": "string"
},
"building_name": {
"type": "string"
},
"city": {
"type": "string"
},
"floor_number": {
"type": "string"
},
"house_number": {
"type": "string"
},
"in_pin_code": {
"type": "string"
},
"landmark_area": {
"type": "string"
},
"name": {
"type": "string"
},
"phone_number": {
"type": "string"
},
"state": {
"type": "string"
},
"tower_number": {
"type": "string"
}
},
"title": "CloudAddressValues",
"type": "object"
}
},
"required": [
"id",
"value"
],
"title": "CloudSavedAddress",
"type": "object"
},
"maxItems": 10,
"minItems": 0,
"type": "array"
},
"text": {
"maxLength": 1024,
"type": "string"
},
"validation_errors": {
"additionalProperties": false,
"properties": {
"address": {
"type": "string"
},
"building_name": {
"type": "string"
},
"city": {
"type": "string"
},
"floor_number": {
"type": "string"
},
"house_number": {
"type": "string"
},
"in_pin_code": {
"type": "string"
},
"landmark_area": {
"type": "string"
},
"name": {
"type": "string"
},
"phone_number": {
"type": "string"
},
"state": {
"type": "string"
},
"tower_number": {
"type": "string"
}
},
"title": "CloudAddressValues",
"type": "object"
},
"values": {
"additionalProperties": false,
"properties": {
"address": {
"type": "string"
},
"building_name": {
"type": "string"
},
"city": {
"type": "string"
},
"floor_number": {
"type": "string"
},
"house_number": {
"type": "string"
},
"in_pin_code": {
"type": "string"
},
"landmark_area": {
"type": "string"
},
"name": {
"type": "string"
},
"phone_number": {
"type": "string"
},
"state": {
"type": "string"
},
"tower_number": {
"type": "string"
}
},
"title": "CloudAddressValues",
"type": "object"
}
},
"required": [
"chat_id",
"text",
"country"
],
"title": "CloudAddressRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Ask the recipient to share their location within the customer service window. The response arrives in the existing message.received webhook trigger. Returns acceptance only; no automatic retry."
},
"name": "whatsapp::cloud::messages::request_location",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"description": "International phone number or supported business-scoped user ID; native JIDs are not accepted.",
"maxLength": 136,
"minLength": 1,
"type": "string"
},
"recipient_identity_key_hash": {
"description": "Optional recipient identity key hash for identity-change protection.",
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"reply_to_message_id": {
"description": "Optional original Meta message ID to quote; no automatic retries.",
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"text": {
"maxLength": 1024,
"minLength": 1,
"type": "string"
}
},
"required": [
"chat_id",
"text"
],
"title": "CloudLocationRequestMessage",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Send a Cloud API audio by reusable media ID, with an optional quoted reply. Returns API acceptance; delivery is confirmed separately by webhook. No automatic retry."
},
"name": "whatsapp::cloud::messages::send_audio",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"description": "International phone number or business-scoped user ID; native JIDs are rejected.",
"type": "string"
},
"media_id": {
"description": "Meta media ID. Never a URL, native media key or host file path.",
"pattern": "^[0-9]{1,128}$",
"type": "string"
},
"recipient_identity_key_hash": {
"description": "Optional expected recipient identity key hash.",
"maxLength": 512,
"type": "string"
},
"reply_to_message_id": {
"maxLength": 512,
"type": "string"
}
},
"required": [
"chat_id",
"media_id"
],
"title": "CloudAudioMessageRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Send 1..3 interactive reply buttons with unique IDs and labels within the customer service window. Optional header supports text or an uploaded media ID. Returns acceptance only; no automatic retry."
},
"name": "whatsapp::cloud::messages::send_buttons",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"buttons": {
"items": {
"additionalProperties": false,
"properties": {
"id": {
"maxLength": 256,
"minLength": 1,
"type": "string"
},
"title": {
"maxLength": 20,
"minLength": 1,
"type": "string"
}
},
"required": [
"id",
"title"
],
"title": "CloudReplyButton",
"type": "object"
},
"maxItems": 3,
"minItems": 1,
"type": "array"
},
"chat_id": {
"description": "International phone number or supported business-scoped user ID; native JIDs are not accepted.",
"maxLength": 136,
"minLength": 1,
"type": "string"
},
"footer": {
"maxLength": 60,
"type": "string"
},
"header": {
"additionalProperties": false,
"properties": {
"media_id": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[0-9]+$",
"type": "string"
},
"text": {
"maxLength": 60,
"minLength": 1,
"type": "string"
},
"type": {
"enum": [
"text",
"image",
"video",
"document"
],
"type": "string"
}
},
"required": [
"type"
],
"title": "CloudInteractiveHeader",
"type": "object"
},
"recipient_identity_key_hash": {
"description": "Optional recipient identity key hash for identity-change protection.",
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"reply_to_message_id": {
"description": "Optional original Meta message ID to quote; no automatic retries.",
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"text": {
"maxLength": 1024,
"minLength": 1,
"type": "string"
}
},
"required": [
"chat_id",
"text",
"buttons"
],
"title": "CloudButtonsRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Send 2..10 media carousel cards within the service window. Each has an uploaded image/video header and either one URL button or 1..3 quick replies. Button kind/count must match across cards. Returns acceptance only; no automatic retry."
},
"name": "whatsapp::cloud::messages::send_carousel",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"cards": {
"items": {
"additionalProperties": false,
"properties": {
"buttons": {
"items": {
"additionalProperties": false,
"properties": {
"id": {
"maxLength": 256,
"minLength": 1,
"type": "string"
},
"title": {
"maxLength": 20,
"minLength": 1,
"type": "string"
}
},
"required": [
"id",
"title"
],
"title": "CloudReplyButton",
"type": "object"
},
"maxItems": 3,
"minItems": 1,
"type": "array"
},
"display_text": {
"maxLength": 20,
"minLength": 1,
"type": "string"
},
"header": {
"additionalProperties": false,
"properties": {
"media_id": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[0-9]+$",
"type": "string"
},
"type": {
"enum": [
"image",
"video"
],
"type": "string"
}
},
"required": [
"type",
"media_id"
],
"title": "CloudInteractiveHeader",
"type": "object"
},
"text": {
"description": "Optional card text; at most two line breaks.",
"maxLength": 160,
"type": "string"
},
"url": {
"maxLength": 2048,
"minLength": 1,
"type": "string"
}
},
"required": [
"header"
],
"title": "CloudCarouselCard",
"type": "object"
},
"maxItems": 10,
"minItems": 2,
"type": "array"
},
"chat_id": {
"description": "International phone number or supported business-scoped user ID; native JIDs are not accepted.",
"maxLength": 136,
"minLength": 1,
"type": "string"
},
"recipient_identity_key_hash": {
"description": "Optional recipient identity key hash for identity-change protection.",
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"reply_to_message_id": {
"description": "Optional original Meta message ID to quote; no automatic retries.",
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"text": {
"maxLength": 1024,
"minLength": 1,
"type": "string"
}
},
"required": [
"chat_id",
"text",
"cards"
],
"title": "CloudCarouselRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Send the WABA connected catalog in the customer service window. Optional thumbnail SKU selects a product image. Requires existing connected inventory. API acceptance only; no automatic retry."
},
"name": "whatsapp::cloud::messages::send_catalog",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"maxLength": 136,
"minLength": 1,
"type": "string"
},
"footer": {
"maxLength": 60,
"type": "string"
},
"recipient_identity_key_hash": {
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"reply_to_message_id": {
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"text": {
"maxLength": 1024,
"type": "string"
},
"thumbnail_product_retailer_id": {
"description": "Catalog SKU/content ID; 256-character worker limit.",
"maxLength": 256,
"minLength": 1,
"type": "string"
}
},
"required": [
"chat_id",
"text"
],
"title": "CloudCatalogRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Send 1..257 structured contacts within the customer service window. Contact JSON is capped at 65536 bytes by the worker. Metadata display depends on the recipient device. Returns acceptance only; no automatic retry."
},
"name": "whatsapp::cloud::messages::send_contacts",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"description": "International phone number or supported business-scoped user ID; native JIDs are not accepted.",
"maxLength": 136,
"minLength": 1,
"type": "string"
},
"contacts": {
"items": {
"additionalProperties": false,
"properties": {
"addresses": {
"items": {
"additionalProperties": false,
"properties": {
"city": {
"type": "string"
},
"country": {
"type": "string"
},
"country_code": {
"maxLength": 2,
"minLength": 2,
"pattern": "^[A-Z]{2}$",
"type": "string"
},
"state": {
"type": "string"
},
"street": {
"type": "string"
},
"type": {
"type": "string"
},
"zip": {
"type": "string"
}
},
"title": "CloudContactAddress",
"type": "object"
},
"type": "array"
},
"birthday": {
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
"type": "string"
},
"emails": {
"items": {
"additionalProperties": false,
"properties": {
"email": {
"format": "email",
"type": "string"
},
"type": {
"type": "string"
}
},
"required": [
"email"
],
"title": "CloudContactEmail",
"type": "object"
},
"type": "array"
},
"name": {
"additionalProperties": false,
"properties": {
"first_name": {
"maxLength": 1024,
"type": "string"
},
"formatted_name": {
"maxLength": 1024,
"minLength": 1,
"type": "string"
},
"last_name": {
"maxLength": 1024,
"type": "string"
},
"middle_name": {
"maxLength": 1024,
"type": "string"
},
"prefix": {
"maxLength": 1024,
"type": "string"
},
"suffix": {
"maxLength": 1024,
"type": "string"
}
},
"required": [
"formatted_name"
],
"title": "CloudContactName",
"type": "object"
},
"org": {
"additionalProperties": false,
"properties": {
"company": {
"type": "string"
},
"department": {
"type": "string"
},
"title": {
"type": "string"
}
},
"title": "CloudContactOrg",
"type": "object"
},
"phones": {
"items": {
"additionalProperties": false,
"properties": {
"phone": {
"type": "string"
},
"type": {
"type": "string"
},
"wa_id": {
"type": "string"
}
},
"title": "CloudContactPhone",
"type": "object"
},
"type": "array"
},
"urls": {
"items": {
"additionalProperties": false,
"properties": {
"type": {
"type": "string"
},
"url": {
"description": "HTTP(S) display URL; never fetched by the worker.",
"maxLength": 2048,
"minLength": 1,
"type": "string"
}
},
"required": [
"url"
],
"title": "CloudContactURL",
"type": "object"
},
"type": "array"
}
},
"required": [
"name"
],
"title": "CloudContact",
"type": "object"
},
"maxItems": 257,
"minItems": 1,
"type": "array"
},
"recipient_identity_key_hash": {
"description": "Optional recipient identity key hash for identity-change protection.",
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"reply_to_message_id": {
"description": "Optional original Meta message ID to quote; no automatic retries.",
"maxLength": 512,
"minLength": 1,
"type": "string"
}
},
"required": [
"chat_id",
"contacts"
],
"title": "CloudContactsRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Send an interactive URL button within the customer service window. URLs are display destinations, not media sources. Returns acceptance only; no automatic retry."
},
"name": "whatsapp::cloud::messages::send_cta_url",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"description": "International phone number or supported business-scoped user ID; native JIDs are not accepted.",
"maxLength": 136,
"minLength": 1,
"type": "string"
},
"display_text": {
"maxLength": 20,
"minLength": 1,
"type": "string"
},
"footer": {
"maxLength": 60,
"type": "string"
},
"header": {
"additionalProperties": false,
"properties": {
"media_id": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[0-9]+$",
"type": "string"
},
"text": {
"maxLength": 60,
"minLength": 1,
"type": "string"
},
"type": {
"enum": [
"text",
"image",
"video",
"document"
],
"type": "string"
}
},
"required": [
"type"
],
"title": "CloudInteractiveHeader",
"type": "object"
},
"recipient_identity_key_hash": {
"description": "Optional recipient identity key hash for identity-change protection.",
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"reply_to_message_id": {
"description": "Optional original Meta message ID to quote; no automatic retries.",
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"text": {
"maxLength": 1024,
"minLength": 1,
"type": "string"
},
"url": {
"description": "HTTP(S) destination opened by the recipient; never fetched by the worker.",
"maxLength": 2048,
"minLength": 1,
"type": "string"
}
},
"required": [
"chat_id",
"text",
"display_text",
"url"
],
"title": "CloudCTARequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Direct Send beta: explicit utility/authentication/service category with text, 1..3 reply buttons or one URL button. Eligibility required; authentication cannot target BSUID. No URL previews. Worker never retries; Meta may retry its own template creation. Returns acceptance only; webhook may later reject generated templates."
},
"name": "whatsapp::cloud::messages::send_direct",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"buttons": {
"items": {
"additionalProperties": false,
"properties": {
"id": {
"maxLength": 256,
"minLength": 1,
"type": "string"
},
"title": {
"maxLength": 20,
"minLength": 1,
"type": "string"
}
},
"required": [
"id",
"title"
],
"title": "CloudReplyButton",
"type": "object"
},
"maxItems": 3,
"minItems": 1,
"type": "array"
},
"category": {
"enum": [
"utility",
"authentication",
"service"
],
"type": "string"
},
"chat_id": {
"description": "International phone number or supported business-scoped user ID; native JIDs are not accepted.",
"maxLength": 136,
"minLength": 1,
"type": "string"
},
"display_text": {
"maxLength": 20,
"minLength": 1,
"type": "string"
},
"footer": {
"maxLength": 60,
"type": "string"
},
"header": {
"additionalProperties": false,
"properties": {
"media_id": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[0-9]+$",
"type": "string"
},
"text": {
"maxLength": 60,
"minLength": 1,
"type": "string"
},
"type": {
"enum": [
"text",
"image",
"video",
"document"
],
"type": "string"
}
},
"required": [
"type"
],
"title": "CloudInteractiveHeader",
"type": "object"
},
"recipient_identity_key_hash": {
"description": "Optional recipient identity key hash for identity-change protection.",
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"reply_to_message_id": {
"description": "Optional original Meta message ID to quote; no automatic retries.",
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"template_name": {
"description": "Restricted utility-only business-named template feature.",
"maxLength": 512,
"minLength": 1,
"pattern": "^[a-z0-9_]+$",
"type": "string"
},
"text": {
"description": "Text body limit 4096; interactive body limit 1024.",
"maxLength": 4096,
"minLength": 1,
"type": "string"
},
"ttl_seconds": {
"description": "Utility30..43200; authentication30..900; forbidden for service.",
"maximum": 43200,
"minimum": 30,
"type": "integer"
},
"type": {
"enum": [
"text",
"buttons",
"cta_url"
],
"type": "string"
},
"url": {
"maxLength": 2048,
"minLength": 1,
"type": "string"
}
},
"required": [
"chat_id",
"text",
"category",
"type"
],
"title": "CloudDirectSendRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Submit one Cloud API document using an existing Meta media_id; requires an open customer service window. Returns API acceptance only; delivery comes by webhook. Never retries or switches to templates or native transport automatically."
},
"name": "whatsapp::cloud::messages::send_document",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"caption": {
"description": "Optional caption of at most 1024 Unicode characters.",
"maxLength": 1024,
"type": [
"string",
"null"
]
},
"chat_id": {
"description": "International phone number or supported business-scoped user ID; native/group JIDs are not accepted.",
"maxLength": 136,
"minLength": 1,
"type": "string"
},
"file_name": {
"description": "Display filename with supported extension; maximum 255 UTF-8 bytes (worker policy), without paths or control characters. Markdown is not supported; choose TXT or PDF explicitly.",
"maxLength": 255,
"minLength": 1,
"type": "string"
},
"media_id": {
"description": "Meta media ID from upload_document, valid for 30 days unless deleted. Reuse without uploading bytes again. Numeric IDs are strings; 128-character bound is worker policy.",
"maxLength": 128,
"minLength": 1,
"pattern": "^[0-9]+$",
"type": "string"
},
"recipient_identity_key_hash": {
"description": "Optional expected recipient identity hash for Meta identity-change checks.",
"maxLength": 512,
"type": "string"
},
"reply_to_message_id": {
"description": "Optional Meta message ID to quote as a contextual reply.",
"maxLength": 512,
"type": "string"
}
},
"required": [
"chat_id",
"media_id",
"file_name"
],
"title": "CloudDocumentRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Launch an existing Flow inside the customer service window. Exactly one flow_id or flow_name; version 3. Defaults published/navigate; navigate requires screen. data_exchange uses the existing Flow endpoint. Returns acceptance only; no automatic retry."
},
"name": "whatsapp::cloud::messages::send_flow",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"description": "International phone number or supported business-scoped user ID; native JIDs are not accepted.",
"maxLength": 136,
"minLength": 1,
"type": "string"
},
"data": {
"additionalProperties": true,
"description": "Optional non-empty input data for the first navigate screen, at most 16384 JSON bytes. Not accepted with data_exchange.",
"minProperties": 1,
"type": "object"
},
"flow_action": {
"enum": [
"navigate",
"data_exchange"
],
"type": "string"
},
"flow_cta": {
"description": "CTA label; worker follows Meta recommendation of at most 30 characters.",
"maxLength": 30,
"minLength": 1,
"type": "string"
},
"flow_id": {
"maxLength": 32,
"minLength": 1,
"pattern": "^[0-9]+$",
"type": "string"
},
"flow_name": {
"maxLength": 255,
"minLength": 1,
"type": "string"
},
"flow_token": {
"description": "Optional business correlation token; 4096-character worker limit.",
"maxLength": 4096,
"type": "string"
},
"footer": {
"maxLength": 60,
"type": "string"
},
"header": {
"additionalProperties": false,
"properties": {
"media_id": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[0-9]+$",
"type": "string"
},
"text": {
"maxLength": 60,
"minLength": 1,
"type": "string"
},
"type": {
"enum": [
"text"
],
"type": "string"
}
},
"required": [
"type"
],
"title": "CloudInteractiveHeader",
"type": "object"
},
"mode": {
"enum": [
"published",
"draft"
],
"type": "string"
},
"recipient_identity_key_hash": {
"description": "Optional recipient identity key hash for identity-change protection.",
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"reply_to_message_id": {
"description": "Optional original Meta message ID to quote; no automatic retries.",
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"screen": {
"description": "Required for navigate; forbidden for data_exchange. Worker limit 256 characters.",
"maxLength": 256,
"minLength": 1,
"type": "string"
},
"text": {
"maxLength": 1024,
"minLength": 1,
"type": "string"
}
},
"required": [
"chat_id",
"text",
"flow_cta"
],
"title": "CloudFlowRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Send a Cloud API image by reusable media ID, with an optional quoted reply. Returns API acceptance; delivery is confirmed separately by webhook. No automatic retry."
},
"name": "whatsapp::cloud::messages::send_image",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"caption": {
"maxLength": 1024,
"type": [
"string",
"null"
]
},
"chat_id": {
"description": "International phone number or business-scoped user ID; native JIDs are rejected.",
"type": "string"
},
"media_id": {
"description": "Meta media ID. Never a URL, native media key or host file path.",
"pattern": "^[0-9]{1,128}$",
"type": "string"
},
"recipient_identity_key_hash": {
"description": "Optional expected recipient identity key hash.",
"maxLength": 512,
"type": "string"
},
"reply_to_message_id": {
"maxLength": 512,
"type": "string"
}
},
"required": [
"chat_id",
"media_id"
],
"title": "CloudImageMessageRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Send an interactive list in the customer service window: 1..10 sections, 1..10 total rows, unique row IDs. Body allows 4096 characters under current Meta docs. Returns acceptance only; no automatic retry."
},
"name": "whatsapp::cloud::messages::send_list",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"button": {
"maxLength": 20,
"minLength": 1,
"type": "string"
},
"chat_id": {
"description": "International phone number or supported business-scoped user ID; native JIDs are not accepted.",
"maxLength": 136,
"minLength": 1,
"type": "string"
},
"footer": {
"maxLength": 60,
"type": "string"
},
"header": {
"additionalProperties": false,
"properties": {
"media_id": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[0-9]+$",
"type": "string"
},
"text": {
"maxLength": 60,
"minLength": 1,
"type": "string"
},
"type": {
"enum": [
"text"
],
"type": "string"
}
},
"required": [
"type"
],
"title": "CloudInteractiveHeader",
"type": "object"
},
"recipient_identity_key_hash": {
"description": "Optional recipient identity key hash for identity-change protection.",
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"reply_to_message_id": {
"description": "Optional original Meta message ID to quote; no automatic retries.",
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"sections": {
"items": {
"additionalProperties": false,
"properties": {
"rows": {
"items": {
"additionalProperties": false,
"properties": {
"description": {
"maxLength": 72,
"type": "string"
},
"id": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"title": {
"maxLength": 24,
"minLength": 1,
"type": "string"
}
},
"required": [
"id",
"title"
],
"title": "CloudListRow",
"type": "object"
},
"maxItems": 10,
"minItems": 1,
"type": "array"
},
"title": {
"maxLength": 24,
"minLength": 1,
"type": "string"
}
},
"required": [
"title",
"rows"
],
"title": "CloudListSection",
"type": "object"
},
"maxItems": 10,
"minItems": 1,
"type": "array"
},
"text": {
"maxLength": 4096,
"minLength": 1,
"type": "string"
}
},
"required": [
"chat_id",
"text",
"button",
"sections"
],
"title": "CloudListRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Send a Cloud API location within the customer service window. Coordinates are required, including zero. Returns acceptance only; delivery comes by webhook. No automatic retry."
},
"name": "whatsapp::cloud::messages::send_location",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"address": {
"description": "Optional address; 1024-character worker limit.",
"maxLength": 1024,
"type": "string"
},
"chat_id": {
"description": "International phone number or supported business-scoped user ID; native JIDs are not accepted.",
"maxLength": 136,
"minLength": 1,
"type": "string"
},
"latitude": {
"maximum": 90,
"minimum": -90,
"type": "number"
},
"longitude": {
"maximum": 180,
"minimum": -180,
"type": "number"
},
"name": {
"description": "Optional place name; 1024-character worker limit.",
"maxLength": 1024,
"type": "string"
},
"recipient_identity_key_hash": {
"description": "Optional recipient identity key hash for identity-change protection.",
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"reply_to_message_id": {
"description": "Optional original Meta message ID to quote; no automatic retries.",
"maxLength": 512,
"minLength": 1,
"type": "string"
}
},
"required": [
"chat_id",
"latitude",
"longitude"
],
"title": "CloudLocationRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Send an approved marketing template via the dedicated marketing_messages endpoint. Defaults to STRICT routing; fallback requires explicit CLOUD_API_FALLBACK. Meta enforces template category and account onboarding. No worker retries; delivery via webhook."
},
"name": "whatsapp::cloud::messages::send_marketing_template",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
},
"components": {
"default": [],
"items": true,
"type": "array"
},
"language": {
"type": "string"
},
"message_activity_sharing": {
"description": "Optional explicit per-message activity-sharing choice; omission preserves the WABA setting.",
"type": "boolean"
},
"name": {
"type": "string"
},
"product_policy": {
"description": "Defaults to STRICT. CLOUD_API_FALLBACK explicitly permits Meta routing to standard Cloud API when marketing onboarding is incomplete.",
"enum": [
"STRICT",
"CLOUD_API_FALLBACK"
],
"type": "string"
},
"recipient_identity_key_hash": {
"description": "Optional expected recipient identity hash for Meta identity-change checks.",
"maxLength": 512,
"type": "string"
},
"reply_to_message_id": {
"description": "Optional Meta message ID to quote as a contextual reply.",
"maxLength": 512,
"type": "string"
}
},
"required": [
"chat_id",
"name",
"language"
],
"title": "CloudMarketingTemplateRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Send a Brazil/BRL order-details message with Pix, payment link, boleto or offsite-card instructions. Amounts use integer cents/offset100; totals must match item sums and adjustments. Caller supplies unique reference_id and existing PSP data. This communicates a payment request; it does not settle a payment. Eligibility/window required. No retries."
},
"name": "whatsapp::cloud::messages::send_order_details",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"maxLength": 136,
"minLength": 1,
"type": "string"
},
"footer": {
"maxLength": 60,
"type": "string"
},
"goods_type": {
"enum": [
"digital-goods",
"physical-goods"
],
"type": "string"
},
"order": {
"additionalProperties": false,
"properties": {
"catalog_id": {
"description": "Meta catalog ID; 128-character worker limit.",
"maxLength": 128,
"minLength": 1,
"type": "string"
},
"discount": {
"additionalProperties": false,
"properties": {
"description": {
"maxLength": 60,
"type": "string"
},
"discount_program_name": {
"maxLength": 60,
"type": "string"
},
"offset": {
"enum": [
100
],
"type": "integer"
},
"value": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"value",
"offset"
],
"title": "CloudBRDiscount",
"type": "object"
},
"expiration": {
"additionalProperties": false,
"properties": {
"description": {
"maxLength": 120,
"minLength": 1,
"type": "string"
},
"timestamp": {
"description": "Epoch-seconds string at least 300 seconds in the future.",
"maxLength": 19,
"minLength": 1,
"pattern": "^[0-9]+$",
"type": "string"
}
},
"required": [
"timestamp",
"description"
],
"title": "CloudBRExpiration",
"type": "object"
},
"items": {
"items": {
"additionalProperties": false,
"properties": {
"amount": {
"additionalProperties": false,
"properties": {
"offset": {
"enum": [
100
],
"type": "integer"
},
"value": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"value",
"offset"
],
"title": "CloudBRAmount",
"type": "object"
},
"name": {
"maxLength": 60,
"minLength": 1,
"type": "string"
},
"quantity": {
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
},
"retailer_id": {
"description": "Catalog SKU/content ID; 256-character worker limit.",
"maxLength": 256,
"minLength": 1,
"type": "string"
},
"sale_amount": {
"additionalProperties": false,
"properties": {
"offset": {
"enum": [
100
],
"type": "integer"
},
"value": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"value",
"offset"
],
"title": "CloudBRAmount",
"type": "object"
}
},
"required": [
"retailer_id",
"name",
"amount",
"quantity"
],
"title": "CloudBRItem",
"type": "object"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
},
"shipping": {
"additionalProperties": false,
"properties": {
"description": {
"maxLength": 60,
"type": "string"
},
"offset": {
"enum": [
100
],
"type": "integer"
},
"value": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"value",
"offset"
],
"title": "CloudBRDescribedAmount",
"type": "object"
},
"status": {
"enum": [
"pending"
],
"type": "string"
},
"subtotal": {
"additionalProperties": false,
"properties": {
"offset": {
"enum": [
100
],
"type": "integer"
},
"value": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"value",
"offset"
],
"title": "CloudBRAmount",
"type": "object"
},
"tax": {
"additionalProperties": false,
"properties": {
"description": {
"maxLength": 60,
"type": "string"
},
"offset": {
"enum": [
100
],
"type": "integer"
},
"value": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"value",
"offset"
],
"title": "CloudBRDescribedAmount",
"type": "object"
}
},
"required": [
"items",
"subtotal",
"tax"
],
"title": "CloudBROrder",
"type": "object"
},
"payment_settings": {
"items": {
"additionalProperties": false,
"properties": {
"boleto": {
"additionalProperties": false,
"properties": {
"digitable_line": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
"required": [
"digitable_line"
],
"title": "CloudBRBoleto",
"type": "object"
},
"offsite_card_pay": {
"additionalProperties": false,
"properties": {
"credential_id": {
"description": "Opaque PSP credential reference, never a full card number or security code.",
"maxLength": 256,
"minLength": 1,
"type": "string"
},
"last_four_digits": {
"maxLength": 4,
"minLength": 4,
"pattern": "^[0-9]{4}$",
"type": "string"
}
},
"required": [
"last_four_digits",
"credential_id"
],
"title": "CloudBRCard",
"type": "object"
},
"payment_link": {
"additionalProperties": false,
"properties": {
"uri": {
"description": "HTTP(S) payment destination; never fetched by the worker.",
"maxLength": 2048,
"minLength": 1,
"type": "string"
}
},
"required": [
"uri"
],
"title": "CloudBRPaymentLink",
"type": "object"
},
"pix_dynamic_code": {
"additionalProperties": false,
"properties": {
"code": {
"maxLength": 4096,
"minLength": 1,
"type": "string"
},
"key": {
"maxLength": 255,
"minLength": 1,
"type": "string"
},
"key_type": {
"enum": [
"CPF",
"CNPJ",
"EMAIL",
"PHONE",
"EVP"
],
"type": "string"
},
"merchant_name": {
"maxLength": 255,
"minLength": 1,
"type": "string"
}
},
"required": [
"code",
"merchant_name",
"key",
"key_type"
],
"title": "CloudBRPix",
"type": "object"
},
"type": {
"enum": [
"pix_dynamic_code",
"payment_link",
"boleto",
"offsite_card_pay"
],
"type": "string"
}
},
"required": [
"type"
],
"title": "CloudBRPaymentSetting",
"type": "object"
},
"maxItems": 4,
"minItems": 0,
"type": "array"
},
"recipient_identity_key_hash": {
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"reference_id": {
"maxLength": 60,
"minLength": 1,
"pattern": "^[A-Za-z0-9_.-]+$",
"type": "string"
},
"reply_to_message_id": {
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"text": {
"maxLength": 1024,
"type": "string"
},
"total_amount": {
"additionalProperties": false,
"properties": {
"offset": {
"enum": [
100
],
"type": "integer"
},
"value": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"value",
"offset"
],
"title": "CloudBRAmount",
"type": "object"
}
},
"required": [
"chat_id",
"text",
"reference_id",
"goods_type",
"total_amount"
],
"title": "CloudBROrderDetailsRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Report a BR order/payment status for an existing reference_id. At least one order/payment object required. A captured status is caller-provided confirmation from its PSP, never inferred by this worker. Meta enforces status transitions. API acceptance only; no retries."
},
"name": "whatsapp::cloud::messages::send_order_status",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"maxLength": 136,
"minLength": 1,
"type": "string"
},
"footer": {
"maxLength": 60,
"type": "string"
},
"order": {
"additionalProperties": false,
"properties": {
"description": {
"maxLength": 120,
"type": "string"
},
"status": {
"enum": [
"pending",
"processing",
"partially_shipped",
"shipped",
"completed",
"canceled"
],
"type": "string"
}
},
"required": [
"status"
],
"title": "CloudBROrderStatus",
"type": "object"
},
"payment": {
"additionalProperties": false,
"properties": {
"status": {
"enum": [
"pending",
"captured",
"failed"
],
"type": "string"
},
"timestamp": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"status"
],
"title": "CloudBRPaymentStatus",
"type": "object"
},
"recipient_identity_key_hash": {
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"reference_id": {
"maxLength": 60,
"minLength": 1,
"pattern": "^[A-Za-z0-9_.-]+$",
"type": "string"
},
"reply_to_message_id": {
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"text": {
"maxLength": 1024,
"type": "string"
}
},
"required": [
"chat_id",
"text",
"reference_id"
],
"title": "CloudBROrderStatusRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Send one connected-catalog product in the customer service window, with optional body/footer. API acceptance only; no automatic retry."
},
"name": "whatsapp::cloud::messages::send_product",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"catalog_id": {
"description": "Meta catalog ID; 128-character worker limit.",
"maxLength": 128,
"minLength": 1,
"type": "string"
},
"chat_id": {
"maxLength": 136,
"minLength": 1,
"type": "string"
},
"footer": {
"maxLength": 60,
"type": "string"
},
"product_retailer_id": {
"description": "Catalog SKU/content ID; 256-character worker limit.",
"maxLength": 256,
"minLength": 1,
"type": "string"
},
"recipient_identity_key_hash": {
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"reply_to_message_id": {
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"text": {
"maxLength": 1024,
"type": "string"
}
},
"required": [
"chat_id",
"catalog_id",
"product_retailer_id"
],
"title": "CloudProductRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Send 2..10 product carousel cards from one connected catalog inside the customer service window. Card indices follow input order. API acceptance only; no automatic retry."
},
"name": "whatsapp::cloud::messages::send_product_carousel",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"catalog_id": {
"description": "Meta catalog ID; 128-character worker limit.",
"maxLength": 128,
"minLength": 1,
"type": "string"
},
"chat_id": {
"maxLength": 136,
"minLength": 1,
"type": "string"
},
"product_retailer_ids": {
"items": {
"description": "Catalog SKU/content ID; 256-character worker limit.",
"maxLength": 256,
"minLength": 1,
"type": "string"
},
"maxItems": 10,
"minItems": 2,
"type": "array"
},
"recipient_identity_key_hash": {
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"reply_to_message_id": {
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"text": {
"maxLength": 1024,
"minLength": 1,
"type": "string"
}
},
"required": [
"chat_id",
"text",
"catalog_id",
"product_retailer_ids"
],
"title": "CloudProductCarouselRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Send a multi-product message: 1..10 sections, up to 30 products total, required text header. Requires customer service window and connected catalog. API acceptance only; no automatic retry."
},
"name": "whatsapp::cloud::messages::send_products",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"catalog_id": {
"description": "Meta catalog ID; 128-character worker limit.",
"maxLength": 128,
"minLength": 1,
"type": "string"
},
"chat_id": {
"maxLength": 136,
"minLength": 1,
"type": "string"
},
"footer": {
"maxLength": 60,
"type": "string"
},
"header_text": {
"maxLength": 60,
"minLength": 1,
"type": "string"
},
"recipient_identity_key_hash": {
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"reply_to_message_id": {
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"sections": {
"items": {
"additionalProperties": false,
"properties": {
"product_retailer_ids": {
"items": {
"description": "Catalog SKU/content ID; 256-character worker limit.",
"maxLength": 256,
"minLength": 1,
"type": "string"
},
"maxItems": 30,
"minItems": 1,
"type": "array"
},
"title": {
"maxLength": 24,
"minLength": 1,
"type": "string"
}
},
"required": [
"title",
"product_retailer_ids"
],
"title": "CloudProductSection",
"type": "object"
},
"maxItems": 10,
"minItems": 1,
"type": "array"
},
"text": {
"maxLength": 1024,
"type": "string"
}
},
"required": [
"chat_id",
"text",
"header_text",
"catalog_id",
"sections"
],
"title": "CloudProductsRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Apply or remove an emoji reaction to a received Cloud message. Meta rejects targets older than 30 days, deleted targets and reaction targets. Returns acceptance only; reactions emit sent status, not delivered/read. No automatic retry."
},
"name": "whatsapp::cloud::messages::send_reaction",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"description": "International phone number or supported business-scoped user ID; native JIDs are not accepted.",
"maxLength": 136,
"minLength": 1,
"type": "string"
},
"emoji": {
"description": "One Unicode emoji sequence; empty string removes the reaction. Worker caps 128 UTF-8 bytes. Meta validates the exact emoji sequence.",
"maxLength": 128,
"type": "string"
},
"message_id": {
"description": "Original incoming Meta message ID, without whitespace or control characters.",
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"recipient_identity_key_hash": {
"description": "Optional recipient identity key hash for identity-change protection.",
"maxLength": 512,
"minLength": 1,
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"emoji"
],
"title": "CloudReactionRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Send a Cloud API sticker by reusable media ID, with an optional quoted reply. Returns API acceptance; delivery is confirmed separately by webhook. No automatic retry."
},
"name": "whatsapp::cloud::messages::send_sticker",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"description": "International phone number or business-scoped user ID; native JIDs are rejected.",
"type": "string"
},
"media_id": {
"description": "Meta media ID. Never a URL, native media key or host file path.",
"pattern": "^[0-9]{1,128}$",
"type": "string"
},
"recipient_identity_key_hash": {
"description": "Optional expected recipient identity key hash.",
"maxLength": 512,
"type": "string"
},
"reply_to_message_id": {
"maxLength": 512,
"type": "string"
}
},
"required": [
"chat_id",
"media_id"
],
"title": "CloudStickerMessageRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Submit one existing approved Cloud API template; delivery is reported by webhook and sends are never retried automatically"
},
"name": "whatsapp::cloud::messages::send_template",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
},
"components": {
"default": [],
"items": true,
"type": "array"
},
"language": {
"type": "string"
},
"name": {
"type": "string"
},
"recipient_identity_key_hash": {
"description": "Optional expected recipient identity hash for Meta identity-change checks.",
"maxLength": 512,
"type": "string"
},
"reply_to_message_id": {
"description": "Optional Meta message ID to quote as a contextual reply.",
"maxLength": 512,
"type": "string"
}
},
"required": [
"chat_id",
"language",
"name"
],
"title": "TemplateRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Submit one Cloud API text message; requires an open customer service window and never retries automatically"
},
"name": "whatsapp::cloud::messages::send_text",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
},
"preview_url": {
"default": false,
"type": "boolean"
},
"recipient_identity_key_hash": {
"description": "Optional expected recipient identity hash for Meta identity-change checks.",
"maxLength": 512,
"type": "string"
},
"reply_to_message_id": {
"description": "Optional Meta message ID to quote as a contextual reply.",
"maxLength": 512,
"type": "string"
},
"text": {
"maxLength": 4096,
"minLength": 1,
"type": "string"
}
},
"required": [
"chat_id",
"text"
],
"title": "TextRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Send a Cloud API video by reusable media ID, with an optional quoted reply. Returns API acceptance; delivery is confirmed separately by webhook. No automatic retry."
},
"name": "whatsapp::cloud::messages::send_video",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"caption": {
"maxLength": 1024,
"type": [
"string",
"null"
]
},
"chat_id": {
"description": "International phone number or business-scoped user ID; native JIDs are rejected.",
"type": "string"
},
"media_id": {
"description": "Meta media ID. Never a URL, native media key or host file path.",
"pattern": "^[0-9]{1,128}$",
"type": "string"
},
"recipient_identity_key_hash": {
"description": "Optional expected recipient identity key hash.",
"maxLength": 512,
"type": "string"
},
"reply_to_message_id": {
"maxLength": 512,
"type": "string"
}
},
"required": [
"chat_id",
"media_id"
],
"title": "CloudVideoMessageRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_status": {
"type": [
"string",
"null"
]
},
"status": {
"description": "Graph accepted the request; delivery is reported separately by webhook.",
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"status"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Mark the received message as read and display a text typing indicator. Meta dismisses it after a reply or 25 seconds. No automatic retry."
},
"name": "whatsapp::cloud::messages::typing",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"message_id": {
"description": "Original incoming Meta message ID, without whitespace or control characters.",
"maxLength": 512,
"minLength": 1,
"type": "string"
}
},
"required": [
"message_id"
],
"title": "CloudActionRequest",
"type": "object"
},
"response_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"success": {
"type": "boolean"
}
},
"required": [
"success"
],
"title": "CloudActionResult",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Deregister the configured number: stops its Cloud API use and disables local storage. Coexistence numbers are not eligible. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::phone_numbers::deregister",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {},
"required": [],
"title": "CloudManagement_phone_numbers_deregister_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"success": {
"type": "boolean"
}
},
"required": [
"success"
],
"title": "CloudManagement_phone_numbers_deregister_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Read configured phone fields. Default fields are id, display_phone_number, verified_name, quality_rating and code_verification_status; optional fields may require eligibility. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::phone_numbers::get",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"fields": {
"items": {
"enum": [
"id",
"display_phone_number",
"verified_name",
"quality_rating",
"code_verification_status",
"name_status",
"new_display_name",
"new_name_status",
"throughput",
"platform_type",
"status",
"is_official_business_account"
],
"type": "string"
},
"maxItems": 12,
"minItems": 1,
"type": "array",
"uniqueItems": true
}
},
"required": [],
"title": "CloudManagement_phone_numbers_get_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"code_verification_status": {
"maxLength": 8192,
"type": "string"
},
"display_phone_number": {
"maxLength": 8192,
"type": "string"
},
"id": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[0-9]+$",
"type": "string"
},
"is_official_business_account": {
"type": "boolean"
},
"name_status": {
"maxLength": 8192,
"type": "string"
},
"new_display_name": {
"maxLength": 8192,
"type": "string"
},
"new_name_status": {
"maxLength": 8192,
"type": "string"
},
"platform_type": {
"maxLength": 8192,
"type": "string"
},
"quality_rating": {
"maxLength": 8192,
"type": "string"
},
"status": {
"maxLength": 8192,
"type": "string"
},
"throughput": {
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 128,
"type": "object"
},
"verified_name": {
"maxLength": 8192,
"type": "string"
}
},
"required": [
"id"
],
"title": "CloudManagement_phone_numbers_get_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "List phones in the configured WABA with a bounded page and opaque next_cursor. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::phone_numbers::list",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"after": {
"maxLength": 2048,
"minLength": 0,
"type": "string"
},
"limit": {
"maximum": 100,
"minimum": 1,
"type": "integer"
}
},
"required": [],
"title": "CloudManagement_phone_numbers_list_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"items": {
"items": {
"additionalProperties": false,
"properties": {
"code_verification_status": {
"maxLength": 8192,
"type": "string"
},
"display_phone_number": {
"maxLength": 8192,
"type": "string"
},
"id": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[0-9]+$",
"type": "string"
},
"is_official_business_account": {
"type": "boolean"
},
"name_status": {
"maxLength": 8192,
"type": "string"
},
"new_display_name": {
"maxLength": 8192,
"type": "string"
},
"new_name_status": {
"maxLength": 8192,
"type": "string"
},
"platform_type": {
"maxLength": 8192,
"type": "string"
},
"quality_rating": {
"maxLength": 8192,
"type": "string"
},
"status": {
"maxLength": 8192,
"type": "string"
},
"throughput": {
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 128,
"type": "object"
},
"verified_name": {
"maxLength": 8192,
"type": "string"
}
},
"required": [],
"type": "object"
},
"maxItems": 1000,
"type": "array"
},
"next_cursor": {
"maxLength": 2048,
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
],
"title": "CloudManagement_phone_numbers_list_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Register the configured phone with a six-digit PIN. Optional region explicitly enables local storage and can require later deregistration to change. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::phone_numbers::register",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"data_localization_region": {
"enum": [
"AU",
"ID",
"IN",
"JP",
"SG",
"KR",
"DE",
"CH",
"GB",
"BR",
"BH",
"ZA",
"AE",
"CA"
],
"type": "string"
},
"pin": {
"format": "password",
"maxLength": 6,
"minLength": 6,
"pattern": "^[0-9]{6}$",
"type": "string",
"writeOnly": true
}
},
"required": [
"pin"
],
"title": "CloudManagement_phone_numbers_register_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"success": {
"type": "boolean"
}
},
"required": [
"success"
],
"title": "CloudManagement_phone_numbers_register_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Request SMS/voice OTP for the configured number. This can send an actual verification call or SMS. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::phone_numbers::request_code",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"code_method": {
"enum": [
"SMS",
"VOICE"
],
"type": "string"
},
"language": {
"maxLength": 12,
"minLength": 2,
"pattern": "^[a-z]{2,3}(_[A-Za-z0-9]{2,8})?$",
"type": "string"
}
},
"required": [
"code_method",
"language"
],
"title": "CloudManagement_phone_numbers_request_code_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"success": {
"type": "boolean"
}
},
"required": [
"success"
],
"title": "CloudManagement_phone_numbers_request_code_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Submit a new display name for review. After approval an explicit re-registration is required; never performed automatically. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::phone_numbers::set_display_name",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"new_display_name": {
"maxLength": 512,
"minLength": 1,
"type": "string"
}
},
"required": [
"new_display_name"
],
"title": "CloudManagement_phone_numbers_set_display_name_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"success": {
"type": "boolean"
}
},
"required": [
"success"
],
"title": "CloudManagement_phone_numbers_set_display_name_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Set the configured phone six-digit two-step verification PIN. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::phone_numbers::set_pin",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"pin": {
"format": "password",
"maxLength": 6,
"minLength": 6,
"pattern": "^[0-9]{6}$",
"type": "string",
"writeOnly": true
}
},
"required": [
"pin"
],
"title": "CloudManagement_phone_numbers_set_pin_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"success": {
"type": "boolean"
}
},
"required": [
"success"
],
"title": "CloudManagement_phone_numbers_set_pin_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Verify a received OTP for the configured number. The code is sent in the HTTPS body. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::phone_numbers::verify_code",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"code": {
"format": "password",
"maxLength": 16,
"minLength": 1,
"pattern": "^[0-9]+$",
"type": "string",
"writeOnly": true
}
},
"required": [
"code"
],
"title": "CloudManagement_phone_numbers_verify_code_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"success": {
"type": "boolean"
}
},
"required": [
"success"
],
"title": "CloudManagement_phone_numbers_verify_code_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Read the configured business phone profile. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::profile::get",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {},
"required": [],
"title": "CloudManagement_profile_get_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"profile": {
"additionalProperties": false,
"properties": {
"about": {
"maxLength": 8192,
"type": "string"
},
"address": {
"maxLength": 8192,
"type": "string"
},
"description": {
"maxLength": 8192,
"type": "string"
},
"email": {
"maxLength": 8192,
"type": "string"
},
"messaging_product": {
"maxLength": 8192,
"type": "string"
},
"profile_picture_url": {
"maxLength": 8192,
"type": "string"
},
"vertical": {
"maxLength": 8192,
"type": "string"
},
"websites": {
"items": {
"maxLength": 8192,
"type": "string"
},
"maxItems": 1000,
"type": "array"
}
},
"required": [],
"type": "object"
}
},
"required": [
"profile"
],
"title": "CloudManagement_profile_get_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Update only supplied business profile fields; empty strings/lists explicitly clear eligible fields. profile_picture_handle comes from Meta resumable upload, not a media ID. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::profile::update",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"minProperties": 1,
"properties": {
"about": {
"maxLength": 139,
"minLength": 0,
"type": "string"
},
"address": {
"maxLength": 256,
"minLength": 0,
"type": "string"
},
"description": {
"maxLength": 512,
"minLength": 0,
"type": "string"
},
"email": {
"maxLength": 128,
"minLength": 0,
"type": "string"
},
"profile_picture_handle": {
"maxLength": 8192,
"minLength": 0,
"type": "string"
},
"vertical": {
"enum": [
"OTHER",
"AUTO",
"BEAUTY",
"APPAREL",
"EDU",
"ENTERTAIN",
"EVENT_PLAN",
"FINANCE",
"GROCERY",
"GOVT",
"HOTEL",
"HEALTH",
"NONPROFIT",
"PROF_SERVICES",
"RETAIL",
"TRAVEL",
"RESTAURANT",
"ALCOHOL",
"ONLINE_GAMBLING",
"PHYSICAL_GAMBLING",
"OTC_DRUGS"
],
"type": "string"
},
"websites": {
"items": {
"description": "Public HTTP(S) URL without embedded credentials; the worker does not fetch it.",
"maxLength": 256,
"minLength": 1,
"type": "string"
},
"maxItems": 2,
"minItems": 0,
"type": "array",
"uniqueItems": true
}
},
"required": [],
"title": "CloudManagement_profile_update_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"success": {
"type": "boolean"
}
},
"required": [
"success"
],
"title": "CloudManagement_profile_update_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Create a public business QR/short link. prefilled_message is at most 140 characters. This is not a linked-device login QR. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::qr_codes::create",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"generate_qr_image": {
"enum": [
"PNG",
"SVG"
],
"type": "string"
},
"prefilled_message": {
"maxLength": 140,
"minLength": 0,
"type": "string"
}
},
"required": [
"prefilled_message"
],
"title": "CloudManagement_qr_codes_create_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"code": {
"maxLength": 8192,
"type": "string"
},
"deep_link_url": {
"maxLength": 8192,
"type": "string"
},
"prefilled_message": {
"maxLength": 8192,
"type": "string"
},
"qr_image_url": {
"maxLength": 8192,
"type": "string"
}
},
"required": [
"code"
],
"title": "CloudManagement_qr_codes_create_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Permanently retire the specified QR/short link on the configured phone. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::qr_codes::delete",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"code": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[A-Za-z0-9]+$",
"type": "string"
}
},
"required": [
"code"
],
"title": "CloudManagement_qr_codes_delete_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"success": {
"type": "boolean"
}
},
"required": [
"success"
],
"title": "CloudManagement_qr_codes_delete_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Read a business QR/short link by code; items is empty when not found. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::qr_codes::get",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"code": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[A-Za-z0-9]+$",
"type": "string"
}
},
"required": [
"code"
],
"title": "CloudManagement_qr_codes_get_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"items": {
"items": {
"additionalProperties": false,
"properties": {
"code": {
"maxLength": 8192,
"type": "string"
},
"deep_link_url": {
"maxLength": 8192,
"type": "string"
},
"prefilled_message": {
"maxLength": 8192,
"type": "string"
},
"qr_image_url": {
"maxLength": 8192,
"type": "string"
}
},
"required": [],
"type": "object"
},
"maxItems": 1000,
"type": "array"
},
"next_cursor": {
"maxLength": 2048,
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
],
"title": "CloudManagement_qr_codes_get_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "List business QR/short links. Meta allows at most 25 results per page. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::qr_codes::list",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"after": {
"maxLength": 2048,
"minLength": 0,
"type": "string"
},
"limit": {
"maximum": 25,
"minimum": 1,
"type": "integer"
}
},
"required": [],
"title": "CloudManagement_qr_codes_list_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"items": {
"items": {
"additionalProperties": false,
"properties": {
"code": {
"maxLength": 8192,
"type": "string"
},
"deep_link_url": {
"maxLength": 8192,
"type": "string"
},
"prefilled_message": {
"maxLength": 8192,
"type": "string"
},
"qr_image_url": {
"maxLength": 8192,
"type": "string"
}
},
"required": [],
"type": "object"
},
"maxItems": 1000,
"type": "array"
},
"next_cursor": {
"maxLength": 2048,
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
],
"title": "CloudManagement_qr_codes_list_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Update an existing QR/short link prefilled message. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::qr_codes::update",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"code": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[A-Za-z0-9]+$",
"type": "string"
},
"generate_qr_image": {
"enum": [
"PNG",
"SVG"
],
"type": "string"
},
"prefilled_message": {
"maxLength": 140,
"minLength": 0,
"type": "string"
}
},
"required": [
"code",
"prefilled_message"
],
"title": "CloudManagement_qr_codes_update_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"code": {
"maxLength": 8192,
"type": "string"
},
"deep_link_url": {
"maxLength": 8192,
"type": "string"
},
"prefilled_message": {
"maxLength": 8192,
"type": "string"
},
"qr_image_url": {
"maxLength": 8192,
"type": "string"
}
},
"required": [
"code"
],
"title": "CloudManagement_qr_codes_update_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Read local Cloud API readiness without contacting Meta or returning credentials"
},
"name": "whatsapp::cloud::status",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"title": "Empty",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"access_token_set": {
"type": "boolean"
},
"api_version": {
"type": "string"
},
"app_secret_set": {
"type": "boolean"
},
"business_account_id": {
"type": "string"
},
"configured": {
"description": "Local readiness only. Does not imply remote authentication or delivery.",
"type": "boolean"
},
"enabled": {
"type": "boolean"
},
"missing_fields": {
"items": {
"type": "string"
},
"type": "array"
},
"phone_number_id": {
"type": "string"
},
"verify_token_set": {
"type": "boolean"
},
"webhook_path": {
"type": "string"
},
"webhook_ready": {
"type": "boolean"
}
},
"required": [
"access_token_set",
"api_version",
"app_secret_set",
"business_account_id",
"configured",
"enabled",
"missing_fields",
"phone_number_id",
"verify_token_set",
"webhook_path",
"webhook_ready"
],
"title": "CloudStatus",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "List apps subscribed to this WABA; returns cursor only, never Graph paging URLs. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::subscriptions::list",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"after": {
"maxLength": 2048,
"minLength": 0,
"type": "string"
},
"limit": {
"maximum": 100,
"minimum": 1,
"type": "integer"
}
},
"required": [],
"title": "CloudManagement_subscriptions_list_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"items": {
"items": {
"additionalProperties": false,
"properties": {
"override_callback_uri": {
"maxLength": 8192,
"type": "string"
},
"whatsapp_business_api_data": {
"additionalProperties": false,
"properties": {
"id": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[0-9]+$",
"type": "string"
},
"link": {
"maxLength": 8192,
"type": "string"
},
"name": {
"maxLength": 8192,
"type": "string"
}
},
"required": [
"id",
"name"
],
"type": "object"
}
},
"required": [],
"type": "object"
},
"maxItems": 1000,
"type": "array"
},
"next_cursor": {
"maxLength": 2048,
"type": [
"string",
"null"
]
}
},
"required": [
"items",
"next_cursor"
],
"title": "CloudManagement_subscriptions_list_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Subscribe the app associated with the configured token to the WABA. Optional HTTPS callback override uses configured cloud.verify_token. Does not configure app-token webhook fields. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::subscriptions::subscribe",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"override_callback_uri": {
"description": "Public HTTPS callback override. Uses configured cloud.verify_token, never a token argument. Omit to use app default callback.",
"maxLength": 2048,
"minLength": 1,
"type": "string"
}
},
"required": [],
"title": "CloudManagement_subscriptions_subscribe_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"success": {
"type": "boolean"
}
},
"required": [
"success"
],
"title": "CloudManagement_subscriptions_subscribe_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Unsubscribe the app associated with the configured token from this WABA. Incoming webhooks for this subscription stop. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::subscriptions::unsubscribe",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {},
"required": [],
"title": "CloudManagement_subscriptions_unsubscribe_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"success": {
"type": "boolean"
}
},
"required": [
"success"
],
"title": "CloudManagement_subscriptions_unsubscribe_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Create a template for Meta review. Components are bounded documented template JSON; examples/media handles and eligibility remain Meta-validated. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::templates::create",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"allow_category_change": {
"type": "boolean"
},
"category": {
"enum": [
"UTILITY",
"MARKETING",
"AUTHENTICATION"
],
"type": "string"
},
"components": {
"items": {
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 32,
"properties": {
"type": {
"maxLength": 40,
"minLength": 1,
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
},
"cta_url_link_tracking_opted_out": {
"type": "boolean"
},
"language": {
"maxLength": 12,
"minLength": 2,
"pattern": "^[a-z]{2,3}(_[A-Za-z0-9]{2,8})?$",
"type": "string"
},
"message_send_ttl_seconds": {
"maximum": 2592000,
"minimum": 1,
"type": "integer"
},
"name": {
"maxLength": 512,
"minLength": 1,
"pattern": "^[a-z0-9_]+$",
"type": "string"
},
"parameter_format": {
"enum": [
"NAMED",
"POSITIONAL"
],
"type": "string"
}
},
"required": [
"name",
"language",
"category",
"components"
],
"title": "CloudManagement_templates_create_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"category": {
"maxLength": 8192,
"type": "string"
},
"components": {
"items": {
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 128,
"type": "object"
},
"maxItems": 1000,
"type": "array"
},
"id": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[0-9]+$",
"type": "string"
},
"language": {
"maxLength": 8192,
"type": "string"
},
"message_send_ttl_seconds": {
"minimum": 0,
"type": "integer"
},
"name": {
"maxLength": 8192,
"type": "string"
},
"parameter_format": {
"maxLength": 8192,
"type": "string"
},
"quality_score": {
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 128,
"type": "object"
},
"rejected_reason": {
"maxLength": 8192,
"type": "string"
},
"status": {
"maxLength": 8192,
"type": "string"
}
},
"required": [
"id"
],
"title": "CloudManagement_templates_create_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Delete by name; omitting template_id deletes all languages of that name. Name plus ID targets one translation. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::templates::delete",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"name": {
"maxLength": 512,
"minLength": 1,
"pattern": "^[a-z0-9_]+$",
"type": "string"
},
"template_id": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[0-9]+$",
"type": "string"
}
},
"required": [
"name"
],
"title": "CloudManagement_templates_delete_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"success": {
"type": "boolean"
}
},
"required": [
"success"
],
"title": "CloudManagement_templates_delete_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Read one template, including status and quality. Verifies its membership in the configured WABA. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::templates::get",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"template_id": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[0-9]+$",
"type": "string"
}
},
"required": [
"template_id"
],
"title": "CloudManagement_templates_get_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"category": {
"maxLength": 8192,
"type": "string"
},
"components": {
"items": {
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 128,
"type": "object"
},
"maxItems": 1000,
"type": "array"
},
"id": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[0-9]+$",
"type": "string"
},
"language": {
"maxLength": 8192,
"type": "string"
},
"message_send_ttl_seconds": {
"minimum": 0,
"type": "integer"
},
"name": {
"maxLength": 8192,
"type": "string"
},
"parameter_format": {
"maxLength": 8192,
"type": "string"
},
"quality_score": {
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 128,
"type": "object"
},
"rejected_reason": {
"maxLength": 8192,
"type": "string"
},
"status": {
"maxLength": 8192,
"type": "string"
}
},
"required": [
"id"
],
"title": "CloudManagement_templates_get_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "List existing Meta templates without creating or changing them"
},
"name": "whatsapp::cloud::templates::list",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"after": {
"type": [
"string",
"null"
]
},
"limit": {
"default": 50,
"format": "uint",
"maximum": 100,
"minimum": 1,
"type": "integer"
}
},
"title": "TemplatesRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Template": {
"properties": {
"category": {
"type": "string"
},
"components": {
"default": [],
"items": true,
"type": "array"
},
"id": {
"type": "string"
},
"language": {
"type": "string"
},
"name": {
"type": "string"
},
"parameter_format": {
"default": null,
"type": [
"string",
"null"
]
},
"status": {
"type": "string"
}
},
"required": [
"category",
"id",
"language",
"name",
"status"
],
"type": "object"
}
},
"properties": {
"next_cursor": {
"type": [
"string",
"null"
]
},
"templates": {
"items": {
"$ref": "#/definitions/Template"
},
"type": "array"
}
},
"required": [
"templates"
],
"title": "TemplatePage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Request manual unpause of an eligible paused template in the configured WABA; this does not pause templates. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::templates::unpause",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"template_id": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[0-9]+$",
"type": "string"
}
},
"required": [
"template_id"
],
"title": "CloudManagement_templates_unpause_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"success": {
"type": "boolean"
}
},
"required": [
"success"
],
"title": "CloudManagement_templates_unpause_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Edit a template belonging to the configured WABA. At least one editable field is required; editing may require reapproval. Uses configured Cloud credentials and account only. No automatic retries; mutation timeout has an unknown outcome."
},
"name": "whatsapp::cloud::templates::update",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"minProperties": 2,
"properties": {
"allow_category_change": {
"type": "boolean"
},
"category": {
"enum": [
"UTILITY",
"MARKETING",
"AUTHENTICATION"
],
"type": "string"
},
"components": {
"items": {
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 32,
"properties": {
"type": {
"maxLength": 40,
"minLength": 1,
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
},
"cta_url_link_tracking_opted_out": {
"type": "boolean"
},
"message_send_ttl_seconds": {
"maximum": 2592000,
"minimum": 1,
"type": "integer"
},
"parameter_format": {
"enum": [
"NAMED",
"POSITIONAL"
],
"type": "string"
},
"template_id": {
"maxLength": 128,
"minLength": 1,
"pattern": "^[0-9]+$",
"type": "string"
}
},
"required": [
"template_id"
],
"title": "CloudManagement_templates_update_Request",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"CloudManagementJSON": {
"anyOf": [
{
"type": "null"
},
{
"type": "boolean"
},
{
"type": "number"
},
{
"maxLength": 131072,
"minLength": 0,
"type": "string"
},
{
"items": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxItems": 10000,
"type": "array"
},
{
"additionalProperties": {
"$ref": "#/definitions/CloudManagementJSON"
},
"maxProperties": 256,
"type": "object"
}
]
}
},
"properties": {
"success": {
"type": "boolean"
}
},
"required": [
"success"
],
"title": "CloudManagement_templates_update_Response",
"type": "object"
}
},
{
"description": "",
"metadata": {
"internal": true,
"trace_hidden": true
},
"name": "whatsapp::cloud::tunnel::changed",
"request_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"items": true,
"type": "array"
},
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Payload is ignored; the callback reads authoritative state instead."
},
"response_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"accepted": {
"type": "boolean"
}
},
"required": [
"accepted"
],
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Acquire or renew this worker’s development webhook tunnel lease"
},
"name": "whatsapp::cloud::tunnel::start",
"request_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {},
"type": "object"
},
"response_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean"
},
"error": {
"type": [
"string",
"null"
]
},
"public_url": {
"type": [
"string",
"null"
]
},
"status": {
"enum": [
"stopped",
"starting",
"ready",
"reconnecting",
"failed",
"unavailable"
],
"type": "string"
},
"tunnel_id": {
"const": "webhooks",
"type": "string"
},
"webhook_path": {
"type": "string"
},
"webhook_url": {
"type": [
"string",
"null"
]
}
},
"required": [
"enabled",
"status",
"tunnel_id",
"public_url",
"webhook_url",
"webhook_path",
"error"
],
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Read the development webhook tunnel state and current verified callback URL"
},
"name": "whatsapp::cloud::tunnel::status",
"request_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {},
"type": "object"
},
"response_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean"
},
"error": {
"type": [
"string",
"null"
]
},
"public_url": {
"type": [
"string",
"null"
]
},
"status": {
"enum": [
"stopped",
"starting",
"ready",
"reconnecting",
"failed",
"unavailable"
],
"type": "string"
},
"tunnel_id": {
"const": "webhooks",
"type": "string"
},
"webhook_path": {
"type": "string"
},
"webhook_url": {
"type": [
"string",
"null"
]
}
},
"required": [
"enabled",
"status",
"tunnel_id",
"public_url",
"webhook_url",
"webhook_path",
"error"
],
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Release this worker’s development webhook tunnel lease"
},
"name": "whatsapp::cloud::tunnel::stop",
"request_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {},
"type": "object"
},
"response_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean"
},
"error": {
"type": [
"string",
"null"
]
},
"public_url": {
"type": [
"string",
"null"
]
},
"status": {
"enum": [
"stopped",
"starting",
"ready",
"reconnecting",
"failed",
"unavailable"
],
"type": "string"
},
"tunnel_id": {
"const": "webhooks",
"type": "string"
},
"webhook_path": {
"type": "string"
},
"webhook_url": {
"type": [
"string",
"null"
]
}
},
"required": [
"enabled",
"status",
"tunnel_id",
"public_url",
"webhook_url",
"webhook_path",
"error"
],
"type": "object"
}
},
{
"description": "",
"metadata": {
"internal": true,
"trace_hidden": true
},
"name": "whatsapp::cloud::webhook::receive",
"request_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"anyOf": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"headers": {
"anyOf": [
{
"additionalProperties": {
"type": "string"
},
"type": "object"
},
{
"type": "null"
}
]
},
"request_body": {
"anyOf": [
{
"properties": {
"access_key": {
"type": "string"
},
"channel_id": {
"type": "string"
},
"direction": {
"type": "string"
}
},
"type": "object"
},
{
"type": "null"
}
]
}
},
"type": "object"
},
{
"type": "null"
}
]
},
"response_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"body": {
"type": "string"
},
"headers": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"status_code": {
"type": "integer"
}
},
"required": [
"status_code",
"headers",
"body"
],
"type": "object"
}
},
{
"description": "",
"metadata": {
"internal": true,
"trace_hidden": true
},
"name": "whatsapp::cloud::webhook::verify",
"request_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"anyOf": [
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"query_params": {
"anyOf": [
{
"additionalProperties": {
"type": "string"
},
"type": "object"
},
{
"type": "null"
}
]
}
},
"type": "object"
},
{
"type": "null"
}
]
},
"response_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"body": {
"type": "string"
},
"headers": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"status_code": {
"type": "integer"
}
},
"required": [
"status_code",
"headers",
"body"
],
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Create a community with optional general chat"
},
"name": "whatsapp::communities::create",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"allow_non_admin_sub_group_creation": {
"default": false,
"type": "boolean"
},
"closed": {
"default": false,
"type": "boolean"
},
"create_general_chat": {
"default": true,
"type": "boolean"
},
"description": {
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"name",
"session_id"
],
"title": "CreateCommunityRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"ParticipantView": {
"properties": {
"jid": {
"type": "string"
},
"lid": {
"type": [
"string",
"null"
]
},
"participant_type": {
"type": "string"
},
"phone_number": {
"type": [
"string",
"null"
]
},
"username": {
"type": [
"string",
"null"
]
}
},
"required": [
"jid",
"participant_type"
],
"type": "object"
}
},
"properties": {
"allow_admin_reports": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"announcement": {
"type": "boolean"
},
"creation_time": {
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"creator": {
"type": [
"string",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"description_id": {
"type": [
"string",
"null"
]
},
"ephemeral_expiration_seconds": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"group_history_enabled": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"id": {
"type": "string"
},
"is_announcement_subgroup": {
"type": "boolean"
},
"is_community": {
"type": "boolean"
},
"is_general_chat": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"limit_sharing_enabled": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"locked": {
"type": "boolean"
},
"member_add_mode": {
"type": [
"string",
"null"
]
},
"member_link_mode": {
"type": [
"string",
"null"
]
},
"member_share_history_mode": {
"type": [
"string",
"null"
]
},
"membership_approval": {
"type": "boolean"
},
"no_frequently_forwarded": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"parent_group_id": {
"type": [
"string",
"null"
]
},
"participant_count": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"participants": {
"items": {
"$ref": "#/definitions/ParticipantView"
},
"type": "array"
},
"subject": {
"type": [
"string",
"null"
]
}
},
"required": [
"allow_admin_reports",
"announcement",
"group_history_enabled",
"id",
"is_announcement_subgroup",
"is_community",
"is_general_chat",
"limit_sharing_enabled",
"locked",
"membership_approval",
"no_frequently_forwarded",
"participants"
],
"title": "GroupView",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Create a group linked to a community"
},
"name": "whatsapp::communities::create_subgroup",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"community_id": {
"type": "string"
},
"hidden": {
"default": false,
"type": "boolean"
},
"name": {
"type": "string"
},
"participants": {
"default": [],
"items": {
"type": "string"
},
"type": "array"
},
"session_id": {
"type": "string"
}
},
"required": [
"community_id",
"name",
"session_id"
],
"title": "CreateSubgroupRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"ParticipantView": {
"properties": {
"jid": {
"type": "string"
},
"lid": {
"type": [
"string",
"null"
]
},
"participant_type": {
"type": "string"
},
"phone_number": {
"type": [
"string",
"null"
]
},
"username": {
"type": [
"string",
"null"
]
}
},
"required": [
"jid",
"participant_type"
],
"type": "object"
}
},
"properties": {
"allow_admin_reports": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"announcement": {
"type": "boolean"
},
"creation_time": {
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"creator": {
"type": [
"string",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"description_id": {
"type": [
"string",
"null"
]
},
"ephemeral_expiration_seconds": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"group_history_enabled": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"id": {
"type": "string"
},
"is_announcement_subgroup": {
"type": "boolean"
},
"is_community": {
"type": "boolean"
},
"is_general_chat": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"limit_sharing_enabled": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"locked": {
"type": "boolean"
},
"member_add_mode": {
"type": [
"string",
"null"
]
},
"member_link_mode": {
"type": [
"string",
"null"
]
},
"member_share_history_mode": {
"type": [
"string",
"null"
]
},
"membership_approval": {
"type": "boolean"
},
"no_frequently_forwarded": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"parent_group_id": {
"type": [
"string",
"null"
]
},
"participant_count": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"participants": {
"items": {
"$ref": "#/definitions/ParticipantView"
},
"type": "array"
},
"subject": {
"type": [
"string",
"null"
]
}
},
"required": [
"allow_admin_reports",
"announcement",
"group_history_enabled",
"id",
"is_announcement_subgroup",
"is_community",
"is_general_chat",
"limit_sharing_enabled",
"locked",
"membership_approval",
"no_frequently_forwarded",
"participants"
],
"title": "GroupView",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Fetch metadata for a linked group"
},
"name": "whatsapp::communities::get_subgroup",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"community_id": {
"type": "string"
},
"session_id": {
"type": "string"
},
"subgroup_id": {
"type": "string"
}
},
"required": [
"community_id",
"session_id",
"subgroup_id"
],
"title": "SubgroupRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"ParticipantView": {
"properties": {
"jid": {
"type": "string"
},
"lid": {
"type": [
"string",
"null"
]
},
"participant_type": {
"type": "string"
},
"phone_number": {
"type": [
"string",
"null"
]
},
"username": {
"type": [
"string",
"null"
]
}
},
"required": [
"jid",
"participant_type"
],
"type": "object"
}
},
"properties": {
"allow_admin_reports": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"announcement": {
"type": "boolean"
},
"creation_time": {
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"creator": {
"type": [
"string",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"description_id": {
"type": [
"string",
"null"
]
},
"ephemeral_expiration_seconds": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"group_history_enabled": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"id": {
"type": "string"
},
"is_announcement_subgroup": {
"type": "boolean"
},
"is_community": {
"type": "boolean"
},
"is_general_chat": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"limit_sharing_enabled": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"locked": {
"type": "boolean"
},
"member_add_mode": {
"type": [
"string",
"null"
]
},
"member_link_mode": {
"type": [
"string",
"null"
]
},
"member_share_history_mode": {
"type": [
"string",
"null"
]
},
"membership_approval": {
"type": "boolean"
},
"no_frequently_forwarded": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"parent_group_id": {
"type": [
"string",
"null"
]
},
"participant_count": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"participants": {
"items": {
"$ref": "#/definitions/ParticipantView"
},
"type": "array"
},
"subject": {
"type": [
"string",
"null"
]
}
},
"required": [
"allow_admin_reports",
"announcement",
"group_history_enabled",
"id",
"is_announcement_subgroup",
"is_community",
"is_general_chat",
"limit_sharing_enabled",
"locked",
"membership_approval",
"no_frequently_forwarded",
"participants"
],
"title": "GroupView",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Link existing groups with explicit visibility"
},
"name": "whatsapp::communities::link_subgroups",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"LinkTarget": {
"additionalProperties": false,
"properties": {
"group_id": {
"type": "string"
},
"hidden": {
"default": false,
"type": "boolean"
}
},
"required": [
"group_id"
],
"type": "object"
}
},
"properties": {
"community_id": {
"type": "string"
},
"session_id": {
"type": "string"
},
"subgroups": {
"items": {
"$ref": "#/definitions/LinkTarget"
},
"type": "array"
}
},
"required": [
"community_id",
"session_id",
"subgroups"
],
"title": "LinkRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"FailedGroup": {
"properties": {
"code": {
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"group_id": {
"type": "string"
}
},
"required": [
"code",
"group_id"
],
"type": "object"
}
},
"properties": {
"failed": {
"items": {
"$ref": "#/definitions/FailedGroup"
},
"type": "array"
},
"succeeded": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"failed",
"succeeded"
],
"title": "LinkView",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "List participating communities"
},
"name": "whatsapp::communities::list",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"session_id": {
"type": "string"
}
},
"required": [
"session_id"
],
"title": "SessionRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"OverviewView": {
"properties": {
"id": {
"type": "string"
},
"is_community": {
"type": "boolean"
},
"parent_group_id": {
"type": [
"string",
"null"
]
},
"participant_count": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"subject": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"is_community"
],
"type": "object"
}
},
"items": {
"$ref": "#/definitions/OverviewView"
},
"title": "Array_of_OverviewView",
"type": "array"
}
},
{
"description": "",
"metadata": {
"description": "Fetch linked group participants"
},
"name": "whatsapp::communities::participants",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"community_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"community_id",
"session_id"
],
"title": "CommunityRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"ParticipantView": {
"properties": {
"jid": {
"type": "string"
},
"lid": {
"type": [
"string",
"null"
]
},
"participant_type": {
"type": "string"
},
"phone_number": {
"type": [
"string",
"null"
]
},
"username": {
"type": [
"string",
"null"
]
}
},
"required": [
"jid",
"participant_type"
],
"type": "object"
}
},
"items": {
"$ref": "#/definitions/ParticipantView"
},
"title": "Array_of_ParticipantView",
"type": "array"
}
},
{
"description": "",
"metadata": {
"description": "Fetch linked-group participant counts"
},
"name": "whatsapp::communities::subgroup_counts",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"community_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"community_id",
"session_id"
],
"title": "CommunityRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"SubgroupCount": {
"properties": {
"group_id": {
"type": "string"
},
"participant_count": {
"description": "Null when the native client does not expose this value.",
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
}
},
"required": [
"group_id",
"participant_count"
],
"type": "object"
}
},
"items": {
"$ref": "#/definitions/SubgroupCount"
},
"title": "Array_of_SubgroupCount",
"type": "array"
}
},
{
"description": "",
"metadata": {
"description": "List a community's linked groups"
},
"name": "whatsapp::communities::subgroups",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"community_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"community_id",
"session_id"
],
"title": "CommunityRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"SubgroupView": {
"properties": {
"creation_time": {
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"hidden": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"id": {
"type": "string"
},
"is_announcement_subgroup": {
"type": "boolean"
},
"is_general_chat": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"owner": {
"type": [
"string",
"null"
]
},
"participant_count": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"subject": {
"type": "string"
}
},
"required": [
"hidden",
"id",
"is_announcement_subgroup",
"is_general_chat",
"subject"
],
"type": "object"
}
},
"items": {
"$ref": "#/definitions/SubgroupView"
},
"title": "Array_of_SubgroupView",
"type": "array"
}
},
{
"description": "",
"metadata": {
"description": "Unlink existing groups, optionally removing orphan members"
},
"name": "whatsapp::communities::unlink_subgroups",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"community_id": {
"type": "string"
},
"group_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"remove_orphan_members": {
"default": false,
"type": "boolean"
},
"session_id": {
"type": "string"
}
},
"required": [
"community_id",
"group_ids",
"session_id"
],
"title": "UnlinkRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"FailedGroup": {
"properties": {
"code": {
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"group_id": {
"type": "string"
}
},
"required": [
"code",
"group_id"
],
"type": "object"
}
},
"properties": {
"failed": {
"items": {
"$ref": "#/definitions/FailedGroup"
},
"type": "array"
},
"succeeded": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"failed",
"succeeded"
],
"title": "LinkView",
"type": "object"
}
},
{
"description": "",
"metadata": {
"internal": true,
"trace_hidden": true
},
"name": "whatsapp::config-status",
"request_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"items": true,
"type": "array"
},
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Payload is ignored; the callback reads authoritative state instead."
},
"response_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"active": {
"additionalProperties": false,
"properties": {
"cloud": {
"additionalProperties": false,
"properties": {
"access_token": {
"type": "string"
},
"api_version": {
"type": "string"
},
"app_secret": {
"type": "string"
},
"business_account_id": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"flow_handler_function": {
"type": "string"
},
"flow_handler_namespace": {
"type": "string"
},
"flow_private_key": {
"type": "string"
},
"phone_number_id": {
"type": "string"
},
"verify_token": {
"type": "string"
}
},
"required": [
"enabled",
"api_version",
"business_account_id",
"phone_number_id",
"access_token",
"app_secret",
"verify_token"
],
"type": "object"
},
"data_dir": {
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
},
"namespace": {
"type": "string"
}
},
"required": [
"name",
"namespace"
],
"type": "object"
},
"max_events": {
"type": "integer"
},
"max_inbox_messages": {
"type": "integer"
},
"max_media_bytes": {
"type": "integer"
},
"max_sessions": {
"type": "integer"
},
"operation_timeout_secs": {
"type": "integer"
},
"shutdown_timeout_secs": {
"type": "integer"
}
},
"required": [
"database",
"data_dir",
"max_sessions",
"max_media_bytes",
"max_events",
"max_inbox_messages",
"operation_timeout_secs",
"shutdown_timeout_secs",
"cloud"
],
"type": "object"
},
"environment_overrides": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"id": {
"type": "string"
},
"last_error": {
"oneOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"last_outcome": {
"type": "string"
},
"rejected_reloads": {
"type": "integer"
},
"restart_required_fields": {
"oneOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
]
},
"source": {
"type": "string"
}
},
"required": [
"id",
"source",
"last_outcome",
"last_error",
"rejected_reloads",
"restart_required_fields",
"environment_overrides",
"active"
],
"type": "object"
}
},
{
"description": "",
"metadata": {
"internal": true,
"trace_hidden": true
},
"name": "whatsapp::configuration-id",
"request_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"items": true,
"type": "array"
},
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Payload is ignored; the callback reads authoritative state instead."
},
"response_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Update a contact's block state"
},
"name": "whatsapp::contacts::block",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"jid": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"jid",
"session_id"
],
"title": "ContactRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Null",
"type": "null"
}
},
{
"description": "",
"metadata": {
"description": "List blocked contacts"
},
"name": "whatsapp::contacts::blocked",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"session_id": {
"type": "string"
}
},
"required": [
"session_id"
],
"title": "SessionRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"BlockedView": {
"properties": {
"jid": {
"type": "string"
},
"timestamp": {
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
}
},
"required": [
"jid"
],
"type": "object"
}
},
"items": {
"$ref": "#/definitions/BlockedView"
},
"title": "Array_of_BlockedView",
"type": "array"
}
},
{
"description": "",
"metadata": {
"description": "Check WhatsApp registration and PN/LID mappings"
},
"name": "whatsapp::contacts::check",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"jids": {
"items": {
"type": "string"
},
"type": "array"
},
"session_id": {
"type": "string"
}
},
"required": [
"jids",
"session_id"
],
"title": "ContactsRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"ContactCheck": {
"properties": {
"business_error": {
"anyOf": [
{
"$ref": "#/definitions/SubprotocolErrorView"
},
{
"type": "null"
}
]
},
"contact_error": {
"anyOf": [
{
"$ref": "#/definitions/SubprotocolErrorView"
},
{
"type": "null"
}
]
},
"is_business": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"jid": {
"type": "string"
},
"lid": {
"type": [
"string",
"null"
]
},
"lid_error": {
"anyOf": [
{
"$ref": "#/definitions/SubprotocolErrorView"
},
{
"type": "null"
}
]
},
"phone_number": {
"type": [
"string",
"null"
]
},
"registered": {
"type": "boolean"
},
"username": {
"type": [
"string",
"null"
]
},
"username_error": {
"anyOf": [
{
"$ref": "#/definitions/SubprotocolErrorView"
},
{
"type": "null"
}
]
}
},
"required": [
"is_business",
"jid",
"registered"
],
"type": "object"
},
"SubprotocolErrorView": {
"properties": {
"backoff": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"code": {
"format": "uint16",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"text": {
"type": [
"string",
"null"
]
}
},
"type": "object"
}
},
"items": {
"$ref": "#/definitions/ContactCheck"
},
"title": "Array_of_ContactCheck",
"type": "array"
}
},
{
"description": "",
"metadata": {
"description": "Fetch server contact metadata for supplied JIDs"
},
"name": "whatsapp::contacts::info",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"jids": {
"items": {
"type": "string"
},
"type": "array"
},
"session_id": {
"type": "string"
}
},
"required": [
"jids",
"session_id"
],
"title": "ContactsRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"ContactInfo": {
"properties": {
"about": {
"type": [
"string",
"null"
]
},
"business_error": {
"anyOf": [
{
"$ref": "#/definitions/SubprotocolErrorView"
},
{
"type": "null"
}
]
},
"devices": {
"items": {
"format": "uint16",
"minimum": 0,
"type": "integer"
},
"type": "array"
},
"devices_error": {
"anyOf": [
{
"$ref": "#/definitions/SubprotocolErrorView"
},
{
"type": "null"
}
]
},
"is_business": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"jid": {
"type": "string"
},
"lid": {
"type": [
"string",
"null"
]
},
"lid_error": {
"anyOf": [
{
"$ref": "#/definitions/SubprotocolErrorView"
},
{
"type": "null"
}
]
},
"picture_error": {
"anyOf": [
{
"$ref": "#/definitions/SubprotocolErrorView"
},
{
"type": "null"
}
]
},
"picture_id": {
"type": [
"string",
"null"
]
},
"status_error": {
"anyOf": [
{
"$ref": "#/definitions/SubprotocolErrorView"
},
{
"type": "null"
}
]
},
"username": {
"type": [
"string",
"null"
]
},
"username_error": {
"anyOf": [
{
"$ref": "#/definitions/SubprotocolErrorView"
},
{
"type": "null"
}
]
}
},
"required": [
"devices",
"is_business",
"jid"
],
"type": "object"
},
"SubprotocolErrorView": {
"properties": {
"backoff": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"code": {
"format": "uint16",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"text": {
"type": [
"string",
"null"
]
}
},
"type": "object"
}
},
"items": {
"$ref": "#/definitions/ContactInfo"
},
"title": "Array_of_ContactInfo",
"type": "array"
}
},
{
"description": "",
"metadata": {
"description": "Check whether a contact is blocked"
},
"name": "whatsapp::contacts::is_blocked",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"jid": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"jid",
"session_id"
],
"title": "ContactRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"blocked": {
"type": "boolean"
}
},
"required": [
"blocked"
],
"title": "BlockedStatus",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Look up a profile photo with explicit privacy and rate-limit outcomes"
},
"name": "whatsapp::contacts::picture",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"existing_id": {
"type": [
"string",
"null"
]
},
"jid": {
"type": "string"
},
"preview": {
"default": false,
"type": "boolean"
},
"session_id": {
"type": "string"
}
},
"required": [
"jid",
"session_id"
],
"title": "PictureRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"oneOf": [
{
"properties": {
"direct_path": {
"type": [
"string",
"null"
]
},
"hash": {
"type": [
"string",
"null"
]
},
"id": {
"type": "string"
},
"status": {
"enum": [
"found"
],
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"id",
"status",
"url"
],
"type": "object"
},
{
"properties": {
"status": {
"enum": [
"unchanged"
],
"type": "string"
}
},
"required": [
"status"
],
"type": "object"
},
{
"properties": {
"status": {
"enum": [
"not_found"
],
"type": "string"
}
},
"required": [
"status"
],
"type": "object"
},
{
"properties": {
"status": {
"enum": [
"not_authorized"
],
"type": "string"
}
},
"required": [
"status"
],
"type": "object"
},
{
"properties": {
"status": {
"enum": [
"rate_overlimit"
],
"type": "string"
}
},
"required": [
"status"
],
"type": "object"
},
{
"properties": {
"status": {
"enum": [
"unknown"
],
"type": "string"
}
},
"required": [
"status"
],
"type": "object"
}
],
"title": "PictureView"
}
},
{
"description": "",
"metadata": {
"description": "Fetch up to 50 contact photos, retaining per-contact lookup errors"
},
"name": "whatsapp::contacts::pictures",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"jids": {
"items": {
"type": "string"
},
"type": "array"
},
"session_id": {
"type": "string"
}
},
"required": [
"jids",
"session_id"
],
"title": "ContactsRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"ContactPicture": {
"properties": {
"error": {
"type": [
"string",
"null"
]
},
"jid": {
"type": "string"
},
"picture": {
"anyOf": [
{
"$ref": "#/definitions/PictureView"
},
{
"type": "null"
}
]
}
},
"required": [
"jid"
],
"type": "object"
},
"PictureView": {
"oneOf": [
{
"properties": {
"direct_path": {
"type": [
"string",
"null"
]
},
"hash": {
"type": [
"string",
"null"
]
},
"id": {
"type": "string"
},
"status": {
"enum": [
"found"
],
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"id",
"status",
"url"
],
"type": "object"
},
{
"properties": {
"status": {
"enum": [
"unchanged"
],
"type": "string"
}
},
"required": [
"status"
],
"type": "object"
},
{
"properties": {
"status": {
"enum": [
"not_found"
],
"type": "string"
}
},
"required": [
"status"
],
"type": "object"
},
{
"properties": {
"status": {
"enum": [
"not_authorized"
],
"type": "string"
}
},
"required": [
"status"
],
"type": "object"
},
{
"properties": {
"status": {
"enum": [
"rate_overlimit"
],
"type": "string"
}
},
"required": [
"status"
],
"type": "object"
},
{
"properties": {
"status": {
"enum": [
"unknown"
],
"type": "string"
}
},
"required": [
"status"
],
"type": "object"
}
]
}
},
"items": {
"$ref": "#/definitions/ContactPicture"
},
"title": "Array_of_ContactPicture",
"type": "array"
}
},
{
"description": "",
"metadata": {
"description": "Resolve a PN or LID contact to phone digits when a mapping is available"
},
"name": "whatsapp::contacts::resolve_phone",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"jid": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"jid",
"session_id"
],
"title": "ContactRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"jid": {
"type": "string"
},
"phone_number": {
"type": [
"string",
"null"
]
}
},
"required": [
"jid"
],
"title": "ResolvedPhone",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Save a contact through WhatsApp app-state sync"
},
"name": "whatsapp::contacts::save",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"first_name": {
"type": [
"string",
"null"
]
},
"full_name": {
"type": [
"string",
"null"
]
},
"jid": {
"type": "string"
},
"save_on_primary_addressbook": {
"default": false,
"type": "boolean"
},
"session_id": {
"type": "string"
}
},
"required": [
"jid",
"session_id"
],
"title": "SaveContactRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Null",
"type": "null"
}
},
{
"description": "",
"metadata": {
"description": "Update a contact's block state"
},
"name": "whatsapp::contacts::unblock",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"jid": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"jid",
"session_id"
],
"title": "ContactRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Null",
"type": "null"
}
},
{
"description": "",
"metadata": {
"description": "Poll bounded session events after a sequence cursor, with retention-gap reporting"
},
"name": "whatsapp::events::poll",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"after_sequence": {
"default": 0,
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"limit": {
"default": 100,
"format": "uint",
"minimum": 0,
"type": "integer"
},
"session_id": {
"type": "string"
}
},
"required": [
"session_id"
],
"title": "EventsRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Event": {
"properties": {
"data": true,
"kind": {
"type": "string"
},
"sequence": {
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"session_id": {
"type": "string"
},
"timestamp_ms": {
"format": "uint64",
"minimum": 0,
"type": "integer"
}
},
"required": [
"data",
"kind",
"sequence",
"session_id",
"timestamp_ms"
],
"type": "object"
}
},
"properties": {
"events": {
"items": {
"$ref": "#/definitions/Event"
},
"type": "array"
},
"next_sequence": {
"description": "Pass this value as `after_sequence` in the next poll.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"truncated": {
"description": "Earlier events have fallen outside the bounded queue or a process restarted.",
"type": "boolean"
}
},
"required": [
"events",
"next_sequence",
"truncated"
],
"title": "EventPage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Add participants; preserves individual failures"
},
"name": "whatsapp::groups::add_participants",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"group_id": {
"type": "string"
},
"participants": {
"items": {
"type": "string"
},
"type": "array"
},
"session_id": {
"type": "string"
}
},
"required": [
"group_id",
"participants",
"session_id"
],
"title": "ParticipantsRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"ParticipantChange": {
"properties": {
"error": {
"type": [
"string",
"null"
]
},
"invite_code": {
"type": [
"string",
"null"
]
},
"invite_expiration": {
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"jid": {
"type": "string"
},
"phone_number": {
"type": [
"string",
"null"
]
},
"status": {
"type": [
"string",
"null"
]
},
"username": {
"type": [
"string",
"null"
]
}
},
"required": [
"jid"
],
"type": "object"
}
},
"items": {
"$ref": "#/definitions/ParticipantChange"
},
"title": "Array_of_ParticipantChange",
"type": "array"
}
},
{
"description": "",
"metadata": {
"description": "Approve group membership requests"
},
"name": "whatsapp::groups::approve_requests",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"group_id": {
"type": "string"
},
"participants": {
"items": {
"type": "string"
},
"type": "array"
},
"session_id": {
"type": "string"
}
},
"required": [
"group_id",
"participants",
"session_id"
],
"title": "ParticipantsRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"ParticipantChange": {
"properties": {
"error": {
"type": [
"string",
"null"
]
},
"invite_code": {
"type": [
"string",
"null"
]
},
"invite_expiration": {
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"jid": {
"type": "string"
},
"phone_number": {
"type": [
"string",
"null"
]
},
"status": {
"type": [
"string",
"null"
]
},
"username": {
"type": [
"string",
"null"
]
}
},
"required": [
"jid"
],
"type": "object"
}
},
"items": {
"$ref": "#/definitions/ParticipantChange"
},
"title": "Array_of_ParticipantChange",
"type": "array"
}
},
{
"description": "",
"metadata": {
"description": "Create a WhatsApp group"
},
"name": "whatsapp::groups::create",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"participants": {
"default": [],
"items": {
"type": "string"
},
"type": "array"
},
"session_id": {
"type": "string"
},
"subject": {
"type": "string"
}
},
"required": [
"session_id",
"subject"
],
"title": "CreateRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"ParticipantView": {
"properties": {
"jid": {
"type": "string"
},
"lid": {
"type": [
"string",
"null"
]
},
"participant_type": {
"type": "string"
},
"phone_number": {
"type": [
"string",
"null"
]
},
"username": {
"type": [
"string",
"null"
]
}
},
"required": [
"jid",
"participant_type"
],
"type": "object"
}
},
"properties": {
"allow_admin_reports": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"announcement": {
"type": "boolean"
},
"creation_time": {
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"creator": {
"type": [
"string",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"description_id": {
"type": [
"string",
"null"
]
},
"ephemeral_expiration_seconds": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"group_history_enabled": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"id": {
"type": "string"
},
"is_announcement_subgroup": {
"type": "boolean"
},
"is_community": {
"type": "boolean"
},
"is_general_chat": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"limit_sharing_enabled": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"locked": {
"type": "boolean"
},
"member_add_mode": {
"type": [
"string",
"null"
]
},
"member_link_mode": {
"type": [
"string",
"null"
]
},
"member_share_history_mode": {
"type": [
"string",
"null"
]
},
"membership_approval": {
"type": "boolean"
},
"no_frequently_forwarded": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"parent_group_id": {
"type": [
"string",
"null"
]
},
"participant_count": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"participants": {
"items": {
"$ref": "#/definitions/ParticipantView"
},
"type": "array"
},
"subject": {
"type": [
"string",
"null"
]
}
},
"required": [
"allow_admin_reports",
"announcement",
"group_history_enabled",
"id",
"is_announcement_subgroup",
"is_community",
"is_general_chat",
"limit_sharing_enabled",
"locked",
"membership_approval",
"no_frequently_forwarded",
"participants"
],
"title": "GroupView",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Demote group admins"
},
"name": "whatsapp::groups::demote_participants",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"group_id": {
"type": "string"
},
"participants": {
"items": {
"type": "string"
},
"type": "array"
},
"session_id": {
"type": "string"
}
},
"required": [
"group_id",
"participants",
"session_id"
],
"title": "ParticipantsRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"ParticipantChange": {
"properties": {
"error": {
"type": [
"string",
"null"
]
},
"invite_code": {
"type": [
"string",
"null"
]
},
"invite_expiration": {
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"jid": {
"type": "string"
},
"phone_number": {
"type": [
"string",
"null"
]
},
"status": {
"type": [
"string",
"null"
]
},
"username": {
"type": [
"string",
"null"
]
}
},
"required": [
"jid"
],
"type": "object"
}
},
"items": {
"$ref": "#/definitions/ParticipantChange"
},
"title": "Array_of_ParticipantChange",
"type": "array"
}
},
{
"description": "",
"metadata": {
"description": "Fetch group metadata and settings"
},
"name": "whatsapp::groups::get",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"group_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"group_id",
"session_id"
],
"title": "GroupRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"ParticipantView": {
"properties": {
"jid": {
"type": "string"
},
"lid": {
"type": [
"string",
"null"
]
},
"participant_type": {
"type": "string"
},
"phone_number": {
"type": [
"string",
"null"
]
},
"username": {
"type": [
"string",
"null"
]
}
},
"required": [
"jid",
"participant_type"
],
"type": "object"
}
},
"properties": {
"allow_admin_reports": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"announcement": {
"type": "boolean"
},
"creation_time": {
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"creator": {
"type": [
"string",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"description_id": {
"type": [
"string",
"null"
]
},
"ephemeral_expiration_seconds": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"group_history_enabled": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"id": {
"type": "string"
},
"is_announcement_subgroup": {
"type": "boolean"
},
"is_community": {
"type": "boolean"
},
"is_general_chat": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"limit_sharing_enabled": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"locked": {
"type": "boolean"
},
"member_add_mode": {
"type": [
"string",
"null"
]
},
"member_link_mode": {
"type": [
"string",
"null"
]
},
"member_share_history_mode": {
"type": [
"string",
"null"
]
},
"membership_approval": {
"type": "boolean"
},
"no_frequently_forwarded": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"parent_group_id": {
"type": [
"string",
"null"
]
},
"participant_count": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"participants": {
"items": {
"$ref": "#/definitions/ParticipantView"
},
"type": "array"
},
"subject": {
"type": [
"string",
"null"
]
}
},
"required": [
"allow_admin_reports",
"announcement",
"group_history_enabled",
"id",
"is_announcement_subgroup",
"is_community",
"is_general_chat",
"limit_sharing_enabled",
"locked",
"membership_approval",
"no_frequently_forwarded",
"participants"
],
"title": "GroupView",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Fetch group metadata for an invite code"
},
"name": "whatsapp::groups::invite_info",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"code": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"code",
"session_id"
],
"title": "InviteRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"ParticipantView": {
"properties": {
"jid": {
"type": "string"
},
"lid": {
"type": [
"string",
"null"
]
},
"participant_type": {
"type": "string"
},
"phone_number": {
"type": [
"string",
"null"
]
},
"username": {
"type": [
"string",
"null"
]
}
},
"required": [
"jid",
"participant_type"
],
"type": "object"
}
},
"properties": {
"allow_admin_reports": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"announcement": {
"type": "boolean"
},
"creation_time": {
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"creator": {
"type": [
"string",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"description_id": {
"type": [
"string",
"null"
]
},
"ephemeral_expiration_seconds": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"group_history_enabled": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"id": {
"type": "string"
},
"is_announcement_subgroup": {
"type": "boolean"
},
"is_community": {
"type": "boolean"
},
"is_general_chat": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"limit_sharing_enabled": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"locked": {
"type": "boolean"
},
"member_add_mode": {
"type": [
"string",
"null"
]
},
"member_link_mode": {
"type": [
"string",
"null"
]
},
"member_share_history_mode": {
"type": [
"string",
"null"
]
},
"membership_approval": {
"type": "boolean"
},
"no_frequently_forwarded": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"parent_group_id": {
"type": [
"string",
"null"
]
},
"participant_count": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"participants": {
"items": {
"$ref": "#/definitions/ParticipantView"
},
"type": "array"
},
"subject": {
"type": [
"string",
"null"
]
}
},
"required": [
"allow_admin_reports",
"announcement",
"group_history_enabled",
"id",
"is_announcement_subgroup",
"is_community",
"is_general_chat",
"limit_sharing_enabled",
"locked",
"membership_approval",
"no_frequently_forwarded",
"participants"
],
"title": "GroupView",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Get or reset the group's invite link"
},
"name": "whatsapp::groups::invite_link",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"group_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"group_id",
"session_id"
],
"title": "GroupRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"url": {
"type": "string"
}
},
"required": [
"url"
],
"title": "InviteView",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Join using an invite code; may require approval"
},
"name": "whatsapp::groups::join",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"code": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"code",
"session_id"
],
"title": "InviteRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"group_id": {
"type": "string"
},
"pending_approval": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
}
},
"required": [
"group_id",
"pending_approval"
],
"title": "JoinView",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Leave a group"
},
"name": "whatsapp::groups::leave",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"group_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"group_id",
"session_id"
],
"title": "GroupRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Null",
"type": "null"
}
},
{
"description": "",
"metadata": {
"description": "List participating WhatsApp groups"
},
"name": "whatsapp::groups::list",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"session_id": {
"type": "string"
}
},
"required": [
"session_id"
],
"title": "SessionRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"OverviewView": {
"properties": {
"id": {
"type": "string"
},
"is_community": {
"type": "boolean"
},
"parent_group_id": {
"type": [
"string",
"null"
]
},
"participant_count": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"subject": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"is_community"
],
"type": "object"
}
},
"items": {
"$ref": "#/definitions/OverviewView"
},
"title": "Array_of_OverviewView",
"type": "array"
}
},
{
"description": "",
"metadata": {
"description": "List pending group membership requests"
},
"name": "whatsapp::groups::membership_requests",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"group_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"group_id",
"session_id"
],
"title": "GroupRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"MembershipView": {
"properties": {
"jid": {
"type": "string"
},
"request_time": {
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
}
},
"required": [
"jid"
],
"type": "object"
}
},
"items": {
"$ref": "#/definitions/MembershipView"
},
"title": "Array_of_MembershipView",
"type": "array"
}
},
{
"description": "",
"metadata": {
"description": "Look up a group profile picture and preserve privacy/rate-limit outcomes"
},
"name": "whatsapp::groups::picture",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"existing_id": {
"type": [
"string",
"null"
]
},
"jid": {
"type": "string"
},
"preview": {
"default": false,
"type": "boolean"
},
"session_id": {
"type": "string"
}
},
"required": [
"jid",
"session_id"
],
"title": "PictureRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"oneOf": [
{
"properties": {
"direct_path": {
"type": [
"string",
"null"
]
},
"hash": {
"type": [
"string",
"null"
]
},
"id": {
"type": "string"
},
"status": {
"enum": [
"found"
],
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"id",
"status",
"url"
],
"type": "object"
},
{
"properties": {
"status": {
"enum": [
"unchanged"
],
"type": "string"
}
},
"required": [
"status"
],
"type": "object"
},
{
"properties": {
"status": {
"enum": [
"not_found"
],
"type": "string"
}
},
"required": [
"status"
],
"type": "object"
},
{
"properties": {
"status": {
"enum": [
"not_authorized"
],
"type": "string"
}
},
"required": [
"status"
],
"type": "object"
},
{
"properties": {
"status": {
"enum": [
"rate_overlimit"
],
"type": "string"
}
},
"required": [
"status"
],
"type": "object"
},
{
"properties": {
"status": {
"enum": [
"unknown"
],
"type": "string"
}
},
"required": [
"status"
],
"type": "object"
}
],
"title": "PictureView"
}
},
{
"description": "",
"metadata": {
"description": "Promote participants to admin"
},
"name": "whatsapp::groups::promote_participants",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"group_id": {
"type": "string"
},
"participants": {
"items": {
"type": "string"
},
"type": "array"
},
"session_id": {
"type": "string"
}
},
"required": [
"group_id",
"participants",
"session_id"
],
"title": "ParticipantsRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"ParticipantChange": {
"properties": {
"error": {
"type": [
"string",
"null"
]
},
"invite_code": {
"type": [
"string",
"null"
]
},
"invite_expiration": {
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"jid": {
"type": "string"
},
"phone_number": {
"type": [
"string",
"null"
]
},
"status": {
"type": [
"string",
"null"
]
},
"username": {
"type": [
"string",
"null"
]
}
},
"required": [
"jid"
],
"type": "object"
}
},
"items": {
"$ref": "#/definitions/ParticipantChange"
},
"title": "Array_of_ParticipantChange",
"type": "array"
}
},
{
"description": "",
"metadata": {
"description": "Reject group membership requests"
},
"name": "whatsapp::groups::reject_requests",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"group_id": {
"type": "string"
},
"participants": {
"items": {
"type": "string"
},
"type": "array"
},
"session_id": {
"type": "string"
}
},
"required": [
"group_id",
"participants",
"session_id"
],
"title": "ParticipantsRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"ParticipantChange": {
"properties": {
"error": {
"type": [
"string",
"null"
]
},
"invite_code": {
"type": [
"string",
"null"
]
},
"invite_expiration": {
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"jid": {
"type": "string"
},
"phone_number": {
"type": [
"string",
"null"
]
},
"status": {
"type": [
"string",
"null"
]
},
"username": {
"type": [
"string",
"null"
]
}
},
"required": [
"jid"
],
"type": "object"
}
},
"items": {
"$ref": "#/definitions/ParticipantChange"
},
"title": "Array_of_ParticipantChange",
"type": "array"
}
},
{
"description": "",
"metadata": {
"description": "Remove group participants"
},
"name": "whatsapp::groups::remove_participants",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"group_id": {
"type": "string"
},
"participants": {
"items": {
"type": "string"
},
"type": "array"
},
"session_id": {
"type": "string"
}
},
"required": [
"group_id",
"participants",
"session_id"
],
"title": "ParticipantsRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"ParticipantChange": {
"properties": {
"error": {
"type": [
"string",
"null"
]
},
"invite_code": {
"type": [
"string",
"null"
]
},
"invite_expiration": {
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"jid": {
"type": "string"
},
"phone_number": {
"type": [
"string",
"null"
]
},
"status": {
"type": [
"string",
"null"
]
},
"username": {
"type": [
"string",
"null"
]
}
},
"required": [
"jid"
],
"type": "object"
}
},
"items": {
"$ref": "#/definitions/ParticipantChange"
},
"title": "Array_of_ParticipantChange",
"type": "array"
}
},
{
"description": "",
"metadata": {
"description": "Remove a group's picture"
},
"name": "whatsapp::groups::remove_picture",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"group_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"group_id",
"session_id"
],
"title": "GroupRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
],
"title": "PictureId",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Get or reset the group's invite link"
},
"name": "whatsapp::groups::revoke_invite",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"group_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"group_id",
"session_id"
],
"title": "GroupRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"url": {
"type": "string"
}
},
"required": [
"url"
],
"title": "InviteView",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Restrict group messages to admins"
},
"name": "whatsapp::groups::set_announcement",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean"
},
"group_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"enabled",
"group_id",
"session_id"
],
"title": "GroupBooleanRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Null",
"type": "null"
}
},
{
"description": "",
"metadata": {
"description": "Set or remove a group description with version checking"
},
"name": "whatsapp::groups::set_description",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"description": {
"type": [
"string",
"null"
]
},
"group_id": {
"type": "string"
},
"previous_description_id": {
"description": "An existing description version; omit to fetch the current version.",
"type": [
"string",
"null"
]
},
"session_id": {
"type": "string"
}
},
"required": [
"group_id",
"session_id"
],
"title": "DescriptionRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Null",
"type": "null"
}
},
{
"description": "",
"metadata": {
"description": "Set group disappearing-message duration in seconds"
},
"name": "whatsapp::groups::set_ephemeral",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"expiration_seconds": {
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"group_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"expiration_seconds",
"group_id",
"session_id"
],
"title": "GroupDurationRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Null",
"type": "null"
}
},
{
"description": "",
"metadata": {
"description": "Restrict group info editing to admins"
},
"name": "whatsapp::groups::set_locked",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean"
},
"group_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"enabled",
"group_id",
"session_id"
],
"title": "GroupBooleanRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Null",
"type": "null"
}
},
{
"description": "",
"metadata": {
"description": "Choose whether all members may add people"
},
"name": "whatsapp::groups::set_member_add_mode",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"all_members": {
"description": "False permits admins only; true permits all members.",
"type": "boolean"
},
"group_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"all_members",
"group_id",
"session_id"
],
"title": "GroupMemberModeRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Null",
"type": "null"
}
},
{
"description": "",
"metadata": {
"description": "Require approval for new members"
},
"name": "whatsapp::groups::set_membership_approval",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean"
},
"group_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"enabled",
"group_id",
"session_id"
],
"title": "GroupBooleanRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Null",
"type": "null"
}
},
{
"description": "",
"metadata": {
"description": "Set a group picture from prepared JPEG bytes"
},
"name": "whatsapp::groups::set_picture",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"group_id": {
"type": "string"
},
"jpeg_base64": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"group_id",
"jpeg_base64",
"session_id"
],
"title": "GroupPictureRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
],
"title": "PictureId",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Set a group's subject"
},
"name": "whatsapp::groups::set_subject",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"group_id": {
"type": "string"
},
"session_id": {
"type": "string"
},
"subject": {
"type": "string"
}
},
"required": [
"group_id",
"session_id",
"subject"
],
"title": "SubjectRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Null",
"type": "null"
}
},
{
"description": "",
"metadata": {
"description": "Associate a label with a chat."
},
"name": "whatsapp::labels::add_chat",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
},
"label_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"chat_id",
"label_id",
"session_id"
],
"title": "ChatLabelRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Associate a label with a message using the native legacy app-state mutation."
},
"name": "whatsapp::labels::add_message",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
},
"label_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"chat_id",
"label_id",
"message_id",
"session_id"
],
"title": "MessageLabelRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Delete a label by id."
},
"name": "whatsapp::labels::delete",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"label_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"label_id",
"session_id"
],
"title": "LabelRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Remove a label from a chat."
},
"name": "whatsapp::labels::remove_chat",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
},
"label_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"chat_id",
"label_id",
"session_id"
],
"title": "ChatLabelRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Remove a message label using the native legacy app-state mutation."
},
"name": "whatsapp::labels::remove_message",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
},
"label_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"chat_id",
"label_id",
"message_id",
"session_id"
],
"title": "MessageLabelRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Create or update a label by its stable id."
},
"name": "whatsapp::labels::set",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"color": {
"format": "int32",
"type": "integer"
},
"label_id": {
"type": "string"
},
"name": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"color",
"label_id",
"name",
"session_id"
],
"title": "SetLabelRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Download bounded media through native CDN routing and verify its supplied hashes."
},
"name": "whatsapp::media::download",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"MediaKind": {
"enum": [
"image",
"video",
"audio",
"document",
"sticker"
],
"type": "string"
}
},
"properties": {
"direct_path": {
"type": "string"
},
"file_enc_sha256_base64": {
"type": [
"string",
"null"
]
},
"file_length": {
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"file_sha256_base64": {
"type": "string"
},
"media_key_base64": {
"description": "Omit both encryption fields only for plaintext channel media.",
"type": [
"string",
"null"
]
},
"media_type": {
"$ref": "#/definitions/MediaKind"
},
"session_id": {
"type": "string"
}
},
"required": [
"direct_path",
"file_length",
"file_sha256_base64",
"media_type",
"session_id"
],
"title": "DownloadRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"data_base64": {
"type": "string"
},
"file_length": {
"format": "uint",
"minimum": 0,
"type": "integer"
}
},
"required": [
"data_base64",
"file_length"
],
"title": "DownloadedMedia",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Upload and send encoded image/video/audio/document/WebP media; no URL fetching or codec processes."
},
"name": "whatsapp::media::send",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"MediaContent": {
"additionalProperties": false,
"properties": {
"caption": {
"type": [
"string",
"null"
]
},
"data_base64": {
"type": "string"
},
"duration_seconds": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"file_name": {
"type": [
"string",
"null"
]
},
"gif_playback": {
"default": false,
"type": "boolean"
},
"media_type": {
"$ref": "#/definitions/MediaKind"
},
"mimetype": {
"type": [
"string",
"null"
]
},
"thumbnail_base64": {
"type": [
"string",
"null"
]
},
"voice_note": {
"default": false,
"description": "Audio is already encoded; the worker never invokes codecs.",
"type": "boolean"
}
},
"required": [
"data_base64",
"media_type"
],
"type": "object"
},
"MediaKind": {
"enum": [
"image",
"video",
"audio",
"document",
"sticker"
],
"type": "string"
}
},
"properties": {
"chat_id": {
"type": "string"
},
"media": {
"$ref": "#/definitions/MediaContent"
},
"session_id": {
"type": "string"
}
},
"required": [
"chat_id",
"media",
"session_id"
],
"title": "SendMediaRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Fanout": {
"properties": {
"addressed": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"encrypted": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"had_unregistered_device": {
"type": "boolean"
},
"skipped_primary": {
"type": "boolean"
}
},
"required": [
"addressed",
"encrypted",
"had_unregistered_device",
"skipped_primary"
],
"type": "object"
}
},
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"recipient_fanout": {
"anyOf": [
{
"$ref": "#/definitions/Fanout"
},
{
"type": "null"
}
]
}
},
"required": [
"chat_id",
"message_id"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Encrypt and upload bounded base64 media to WhatsApp's CDN."
},
"name": "whatsapp::media::upload",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"MediaKind": {
"enum": [
"image",
"video",
"audio",
"document",
"sticker"
],
"type": "string"
}
},
"properties": {
"data_base64": {
"type": "string"
},
"media_type": {
"$ref": "#/definitions/MediaKind"
},
"session_id": {
"type": "string"
}
},
"required": [
"data_base64",
"media_type",
"session_id"
],
"title": "UploadRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"MediaKind": {
"enum": [
"image",
"video",
"audio",
"document",
"sticker"
],
"type": "string"
}
},
"properties": {
"direct_path": {
"type": "string"
},
"file_enc_sha256_base64": {
"type": "string"
},
"file_length": {
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"file_sha256_base64": {
"type": "string"
},
"media_key_base64": {
"type": "string"
},
"media_key_timestamp": {
"format": "int64",
"type": "integer"
},
"media_type": {
"$ref": "#/definitions/MediaKind"
},
"url": {
"type": "string"
}
},
"required": [
"direct_path",
"file_enc_sha256_base64",
"file_length",
"file_sha256_base64",
"media_key_base64",
"media_key_timestamp",
"media_type",
"url"
],
"title": "UploadedMedia",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Revoke a message for everyone; group admins may specify its original sender."
},
"name": "whatsapp::messages::delete",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"original_sender_id": {
"description": "Set only when revoking another member's message as a group admin.",
"type": [
"string",
"null"
]
},
"session_id": {
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"session_id"
],
"title": "DeleteRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Fanout": {
"properties": {
"addressed": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"encrypted": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"had_unregistered_device": {
"type": "boolean"
},
"skipped_primary": {
"type": "boolean"
}
},
"required": [
"addressed",
"encrypted",
"had_unregistered_device",
"skipped_primary"
],
"type": "object"
}
},
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"recipient_fanout": {
"anyOf": [
{
"$ref": "#/definitions/Fanout"
},
{
"type": "null"
}
]
}
},
"required": [
"chat_id",
"message_id"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Delete a message only on this account's linked devices."
},
"name": "whatsapp::messages::delete_for_me",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"MessageKeyInput": {
"additionalProperties": false,
"description": "Keeps an original sender's namespace, including LID, for message operations.",
"properties": {
"chat_id": {
"type": "string"
},
"from_me": {
"type": "boolean"
},
"message_id": {
"type": "string"
},
"participant_id": {
"type": [
"string",
"null"
]
}
},
"required": [
"chat_id",
"from_me",
"message_id"
],
"type": "object"
}
},
"properties": {
"delete_media": {
"type": "boolean"
},
"message_timestamp_ms": {
"format": "int64",
"type": [
"integer",
"null"
]
},
"session_id": {
"type": "string"
},
"target": {
"$ref": "#/definitions/MessageKeyInput"
}
},
"required": [
"delete_media",
"session_id",
"target"
],
"title": "DeleteLocalRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Edit this account's text message in a direct or group chat."
},
"name": "whatsapp::messages::edit",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"session_id": {
"type": "string"
},
"text": {
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"session_id",
"text"
],
"title": "EditRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Fanout": {
"properties": {
"addressed": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"encrypted": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"had_unregistered_device": {
"type": "boolean"
},
"skipped_primary": {
"type": "boolean"
}
},
"required": [
"addressed",
"encrypted",
"had_unregistered_device",
"skipped_primary"
],
"type": "object"
}
},
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"recipient_fanout": {
"anyOf": [
{
"$ref": "#/definitions/Fanout"
},
{
"type": "null"
}
]
}
},
"required": [
"chat_id",
"message_id"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Keep or unkeep a disappearing message for all participants."
},
"name": "whatsapp::messages::keep",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"MessageKeyInput": {
"additionalProperties": false,
"description": "Keeps an original sender's namespace, including LID, for message operations.",
"properties": {
"chat_id": {
"type": "string"
},
"from_me": {
"type": "boolean"
},
"message_id": {
"type": "string"
},
"participant_id": {
"type": [
"string",
"null"
]
}
},
"required": [
"chat_id",
"from_me",
"message_id"
],
"type": "object"
}
},
"properties": {
"keep": {
"type": "boolean"
},
"session_id": {
"type": "string"
},
"target": {
"$ref": "#/definitions/MessageKeyInput"
}
},
"required": [
"keep",
"session_id",
"target"
],
"title": "KeepRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Fanout": {
"properties": {
"addressed": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"encrypted": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"had_unregistered_device": {
"type": "boolean"
},
"skipped_primary": {
"type": "boolean"
}
},
"required": [
"addressed",
"encrypted",
"had_unregistered_device",
"skipped_primary"
],
"type": "object"
}
},
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"recipient_fanout": {
"anyOf": [
{
"$ref": "#/definitions/Fanout"
},
{
"type": "null"
}
]
}
},
"required": [
"chat_id",
"message_id"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Read retained messages newest first, without sending read receipts"
},
"name": "whatsapp::messages::list",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
},
"cursor": {
"type": [
"string",
"null"
]
},
"limit": {
"default": 50,
"format": "uint",
"minimum": 0,
"type": "integer"
},
"session_id": {
"type": "string"
}
},
"required": [
"chat_id",
"session_id"
],
"title": "MessagesRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Coverage": {
"properties": {
"capture_started_at_ms": {
"format": "int64",
"type": "integer"
},
"last_history_sync_at_ms": {
"format": "int64",
"type": [
"integer",
"null"
]
},
"last_history_sync_progress": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"message_limit": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"retention_truncated": {
"type": "boolean"
}
},
"required": [
"capture_started_at_ms",
"message_limit",
"retention_truncated"
],
"type": "object"
},
"MessageView": {
"properties": {
"chat_id": {
"type": "string"
},
"from_me": {
"type": "boolean"
},
"kind": {
"type": "string"
},
"message_id": {
"type": "string"
},
"sender_id": {
"type": "string"
},
"sender_name": {
"type": [
"string",
"null"
]
},
"source": {
"type": "string"
},
"status": {
"type": [
"string",
"null"
]
},
"text": {
"type": "string"
},
"timestamp_ms": {
"format": "int64",
"type": "integer"
}
},
"required": [
"chat_id",
"from_me",
"kind",
"message_id",
"sender_id",
"source",
"text",
"timestamp_ms"
],
"type": "object"
}
},
"properties": {
"coverage": {
"$ref": "#/definitions/Coverage"
},
"messages": {
"description": "Newest first. A cursor loads older locally retained messages.",
"items": {
"$ref": "#/definitions/MessageView"
},
"type": "array"
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"coverage",
"messages"
],
"title": "MessagePage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Send played receipts for specific voice or video messages."
},
"name": "whatsapp::messages::mark_played",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
},
"message_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"sender_id": {
"type": [
"string",
"null"
]
},
"session_id": {
"type": "string"
}
},
"required": [
"chat_id",
"message_ids",
"session_id"
],
"title": "ReceiptRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Send read receipts for specific messages, respecting native privacy settings."
},
"name": "whatsapp::messages::mark_read",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
},
"message_ids": {
"items": {
"type": "string"
},
"type": "array"
},
"sender_id": {
"type": [
"string",
"null"
]
},
"session_id": {
"type": "string"
}
},
"required": [
"chat_id",
"message_ids",
"session_id"
],
"title": "ReceiptRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Pin a message for all participants for 24 hours, 7 days or 30 days."
},
"name": "whatsapp::messages::pin",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"MessageKeyInput": {
"additionalProperties": false,
"description": "Keeps an original sender's namespace, including LID, for message operations.",
"properties": {
"chat_id": {
"type": "string"
},
"from_me": {
"type": "boolean"
},
"message_id": {
"type": "string"
},
"participant_id": {
"type": [
"string",
"null"
]
}
},
"required": [
"chat_id",
"from_me",
"message_id"
],
"type": "object"
},
"PinTime": {
"enum": [
"hours24",
"days7",
"days30"
],
"type": "string"
}
},
"properties": {
"duration": {
"$ref": "#/definitions/PinTime"
},
"session_id": {
"type": "string"
},
"target": {
"$ref": "#/definitions/MessageKeyInput"
}
},
"required": [
"duration",
"session_id",
"target"
],
"title": "PinMessageRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Fanout": {
"properties": {
"addressed": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"encrypted": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"had_unregistered_device": {
"type": "boolean"
},
"skipped_primary": {
"type": "boolean"
}
},
"required": [
"addressed",
"encrypted",
"had_unregistered_device",
"skipped_primary"
],
"type": "object"
}
},
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"recipient_fanout": {
"anyOf": [
{
"$ref": "#/definitions/Fanout"
},
{
"type": "null"
}
]
}
},
"required": [
"chat_id",
"message_id"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Set or remove a reaction using the original message key."
},
"name": "whatsapp::messages::react",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"MessageKeyInput": {
"additionalProperties": false,
"description": "Keeps an original sender's namespace, including LID, for message operations.",
"properties": {
"chat_id": {
"type": "string"
},
"from_me": {
"type": "boolean"
},
"message_id": {
"type": "string"
},
"participant_id": {
"type": [
"string",
"null"
]
}
},
"required": [
"chat_id",
"from_me",
"message_id"
],
"type": "object"
}
},
"properties": {
"emoji": {
"description": "Empty removes this account's reaction.",
"type": "string"
},
"session_id": {
"type": "string"
},
"target": {
"$ref": "#/definitions/MessageKeyInput"
}
},
"required": [
"emoji",
"session_id",
"target"
],
"title": "ReactionRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Fanout": {
"properties": {
"addressed": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"encrypted": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"had_unregistered_device": {
"type": "boolean"
},
"skipped_primary": {
"type": "boolean"
}
},
"required": [
"addressed",
"encrypted",
"had_unregistered_device",
"skipped_primary"
],
"type": "object"
}
},
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"recipient_fanout": {
"anyOf": [
{
"$ref": "#/definitions/Fanout"
},
{
"type": "null"
}
]
}
},
"required": [
"chat_id",
"message_id"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Reply quoting a text message with its original sender and stanza id."
},
"name": "whatsapp::messages::reply",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"quoted_text": {
"type": "string"
},
"sender_id": {
"type": "string"
},
"session_id": {
"type": "string"
},
"text": {
"type": "string"
}
},
"required": [
"chat_id",
"message_id",
"quoted_text",
"sender_id",
"session_id",
"text"
],
"title": "ReplyRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Fanout": {
"properties": {
"addressed": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"encrypted": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"had_unregistered_device": {
"type": "boolean"
},
"skipped_primary": {
"type": "boolean"
}
},
"required": [
"addressed",
"encrypted",
"had_unregistered_device",
"skipped_primary"
],
"type": "object"
}
},
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"recipient_fanout": {
"anyOf": [
{
"$ref": "#/definitions/Fanout"
},
{
"type": "null"
}
]
}
},
"required": [
"chat_id",
"message_id"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Ask the primary phone for older messages before the oldest locally known message; response arrives asynchronously"
},
"name": "whatsapp::messages::request_history",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
},
"count": {
"default": 50,
"format": "uint",
"minimum": 0,
"type": "integer"
},
"session_id": {
"type": "string"
}
},
"required": [
"chat_id",
"session_id"
],
"title": "HistoryRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"request_id": {
"type": "string"
},
"requested_count": {
"format": "uint",
"minimum": 0,
"type": "integer"
}
},
"required": [
"request_id",
"requested_count"
],
"title": "HistoryRequested",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Send a contact as a supplied vCard."
},
"name": "whatsapp::messages::send_contact",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
},
"display_name": {
"type": "string"
},
"session_id": {
"type": "string"
},
"vcard": {
"description": "A complete vCard, supplied by the caller.",
"type": "string"
}
},
"required": [
"chat_id",
"display_name",
"session_id",
"vcard"
],
"title": "ContactRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Fanout": {
"properties": {
"addressed": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"encrypted": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"had_unregistered_device": {
"type": "boolean"
},
"skipped_primary": {
"type": "boolean"
}
},
"required": [
"addressed",
"encrypted",
"had_unregistered_device",
"skipped_primary"
],
"type": "object"
}
},
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"recipient_fanout": {
"anyOf": [
{
"$ref": "#/definitions/Fanout"
},
{
"type": "null"
}
]
}
},
"required": [
"chat_id",
"message_id"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Send a static geographic location."
},
"name": "whatsapp::messages::send_location",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"address": {
"type": [
"string",
"null"
]
},
"chat_id": {
"type": "string"
},
"latitude": {
"format": "double",
"type": "number"
},
"longitude": {
"format": "double",
"type": "number"
},
"name": {
"type": [
"string",
"null"
]
},
"session_id": {
"type": "string"
}
},
"required": [
"chat_id",
"latitude",
"longitude",
"session_id"
],
"title": "LocationRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Fanout": {
"properties": {
"addressed": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"encrypted": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"had_unregistered_device": {
"type": "boolean"
},
"skipped_primary": {
"type": "boolean"
}
},
"required": [
"addressed",
"encrypted",
"had_unregistered_device",
"skipped_primary"
],
"type": "object"
}
},
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"recipient_fanout": {
"anyOf": [
{
"$ref": "#/definitions/Fanout"
},
{
"type": "null"
}
]
}
},
"required": [
"chat_id",
"message_id"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Create a poll and return the secret needed to process votes."
},
"name": "whatsapp::messages::send_poll",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
},
"name": {
"type": "string"
},
"options": {
"items": {
"type": "string"
},
"type": "array"
},
"selectable_count": {
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"session_id": {
"type": "string"
}
},
"required": [
"chat_id",
"name",
"options",
"selectable_count",
"session_id"
],
"title": "PollRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Fanout": {
"properties": {
"addressed": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"encrypted": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"had_unregistered_device": {
"type": "boolean"
},
"skipped_primary": {
"type": "boolean"
}
},
"required": [
"addressed",
"encrypted",
"had_unregistered_device",
"skipped_primary"
],
"type": "object"
},
"SentMessage": {
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"recipient_fanout": {
"anyOf": [
{
"$ref": "#/definitions/Fanout"
},
{
"type": "null"
}
]
}
},
"required": [
"chat_id",
"message_id"
],
"type": "object"
}
},
"properties": {
"message": {
"$ref": "#/definitions/SentMessage"
},
"message_secret_base64": {
"type": "string"
}
},
"required": [
"message",
"message_secret_base64"
],
"title": "PollSent",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Send a text message; returns submission metadata, not delivery confirmation."
},
"name": "whatsapp::messages::send_text",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
},
"session_id": {
"type": "string"
},
"text": {
"type": "string"
}
},
"required": [
"chat_id",
"session_id",
"text"
],
"title": "TextRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Fanout": {
"properties": {
"addressed": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"encrypted": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"had_unregistered_device": {
"type": "boolean"
},
"skipped_primary": {
"type": "boolean"
}
},
"required": [
"addressed",
"encrypted",
"had_unregistered_device",
"skipped_primary"
],
"type": "object"
}
},
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"recipient_fanout": {
"anyOf": [
{
"$ref": "#/definitions/Fanout"
},
{
"type": "null"
}
]
}
},
"required": [
"chat_id",
"message_id"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Star a message on this account's linked devices."
},
"name": "whatsapp::messages::star",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"MessageKeyInput": {
"additionalProperties": false,
"description": "Keeps an original sender's namespace, including LID, for message operations.",
"properties": {
"chat_id": {
"type": "string"
},
"from_me": {
"type": "boolean"
},
"message_id": {
"type": "string"
},
"participant_id": {
"type": [
"string",
"null"
]
}
},
"required": [
"chat_id",
"from_me",
"message_id"
],
"type": "object"
}
},
"properties": {
"session_id": {
"type": "string"
},
"target": {
"$ref": "#/definitions/MessageKeyInput"
}
},
"required": [
"session_id",
"target"
],
"title": "MessageActionRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Unpin a message for all participants."
},
"name": "whatsapp::messages::unpin",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"MessageKeyInput": {
"additionalProperties": false,
"description": "Keeps an original sender's namespace, including LID, for message operations.",
"properties": {
"chat_id": {
"type": "string"
},
"from_me": {
"type": "boolean"
},
"message_id": {
"type": "string"
},
"participant_id": {
"type": [
"string",
"null"
]
}
},
"required": [
"chat_id",
"from_me",
"message_id"
],
"type": "object"
}
},
"properties": {
"session_id": {
"type": "string"
},
"target": {
"$ref": "#/definitions/MessageKeyInput"
}
},
"required": [
"session_id",
"target"
],
"title": "MessageActionRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Fanout": {
"properties": {
"addressed": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"encrypted": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"had_unregistered_device": {
"type": "boolean"
},
"skipped_primary": {
"type": "boolean"
}
},
"required": [
"addressed",
"encrypted",
"had_unregistered_device",
"skipped_primary"
],
"type": "object"
}
},
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"recipient_fanout": {
"anyOf": [
{
"$ref": "#/definitions/Fanout"
},
{
"type": "null"
}
]
}
},
"required": [
"chat_id",
"message_id"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Remove a message's star on linked devices."
},
"name": "whatsapp::messages::unstar",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"MessageKeyInput": {
"additionalProperties": false,
"description": "Keeps an original sender's namespace, including LID, for message operations.",
"properties": {
"chat_id": {
"type": "string"
},
"from_me": {
"type": "boolean"
},
"message_id": {
"type": "string"
},
"participant_id": {
"type": [
"string",
"null"
]
}
},
"required": [
"chat_id",
"from_me",
"message_id"
],
"type": "object"
}
},
"properties": {
"session_id": {
"type": "string"
},
"target": {
"$ref": "#/definitions/MessageKeyInput"
}
},
"required": [
"session_id",
"target"
],
"title": "MessageActionRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Submit or clear a poll selection using the poll's original secret."
},
"name": "whatsapp::messages::vote_poll",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"chat_id": {
"type": "string"
},
"creator_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"message_secret_base64": {
"type": "string"
},
"option_names": {
"items": {
"type": "string"
},
"type": "array"
},
"session_id": {
"type": "string"
}
},
"required": [
"chat_id",
"creator_id",
"message_id",
"message_secret_base64",
"option_names",
"session_id"
],
"title": "PollVoteRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Fanout": {
"properties": {
"addressed": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"encrypted": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"had_unregistered_device": {
"type": "boolean"
},
"skipped_primary": {
"type": "boolean"
}
},
"required": [
"addressed",
"encrypted",
"had_unregistered_device",
"skipped_primary"
],
"type": "object"
}
},
"properties": {
"chat_id": {
"type": "string"
},
"message_id": {
"type": "string"
},
"recipient_fanout": {
"anyOf": [
{
"$ref": "#/definitions/Fanout"
},
{
"type": "null"
}
]
}
},
"required": [
"chat_id",
"message_id"
],
"title": "SentMessage",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Create a channel with a name and optional description."
},
"name": "whatsapp::newsletters::create",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"description": {
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"name",
"session_id"
],
"title": "CreateRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"creation_time": {
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"follower_activity_muted": {
"type": [
"boolean",
"null"
]
},
"invite_code": {
"type": [
"string",
"null"
]
},
"muted": {
"type": [
"boolean",
"null"
]
},
"name": {
"type": "string"
},
"newsletter_id": {
"type": "string"
},
"picture_url": {
"type": [
"string",
"null"
]
},
"preview_url": {
"type": [
"string",
"null"
]
},
"role": {
"type": [
"string",
"null"
]
},
"state": {
"type": "string"
},
"subscriber_count": {
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"verification": {
"type": "string"
}
},
"required": [
"name",
"newsletter_id",
"state",
"subscriber_count",
"verification"
],
"title": "Metadata",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Edit a channel text message using its stanza message id, not server id."
},
"name": "whatsapp::newsletters::edit",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"message_id": {
"type": "string"
},
"newsletter_id": {
"type": "string"
},
"session_id": {
"type": "string"
},
"text": {
"type": "string"
}
},
"required": [
"message_id",
"newsletter_id",
"session_id",
"text"
],
"title": "EditRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Fetch channel metadata."
},
"name": "whatsapp::newsletters::get",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"newsletter_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"newsletter_id",
"session_id"
],
"title": "NewsletterRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"creation_time": {
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"follower_activity_muted": {
"type": [
"boolean",
"null"
]
},
"invite_code": {
"type": [
"string",
"null"
]
},
"muted": {
"type": [
"boolean",
"null"
]
},
"name": {
"type": "string"
},
"newsletter_id": {
"type": "string"
},
"picture_url": {
"type": [
"string",
"null"
]
},
"preview_url": {
"type": [
"string",
"null"
]
},
"role": {
"type": [
"string",
"null"
]
},
"state": {
"type": "string"
},
"subscriber_count": {
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"verification": {
"type": "string"
}
},
"required": [
"name",
"newsletter_id",
"state",
"subscriber_count",
"verification"
],
"title": "Metadata",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Look up channel metadata using its invite code."
},
"name": "whatsapp::newsletters::get_by_invite",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"invite_code": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"invite_code",
"session_id"
],
"title": "InviteRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"creation_time": {
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"follower_activity_muted": {
"type": [
"boolean",
"null"
]
},
"invite_code": {
"type": [
"string",
"null"
]
},
"muted": {
"type": [
"boolean",
"null"
]
},
"name": {
"type": "string"
},
"newsletter_id": {
"type": "string"
},
"picture_url": {
"type": [
"string",
"null"
]
},
"preview_url": {
"type": [
"string",
"null"
]
},
"role": {
"type": [
"string",
"null"
]
},
"state": {
"type": "string"
},
"subscriber_count": {
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"verification": {
"type": "string"
}
},
"required": [
"name",
"newsletter_id",
"state",
"subscriber_count",
"verification"
],
"title": "Metadata",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Subscribe to a channel."
},
"name": "whatsapp::newsletters::join",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"newsletter_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"newsletter_id",
"session_id"
],
"title": "NewsletterRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"creation_time": {
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"follower_activity_muted": {
"type": [
"boolean",
"null"
]
},
"invite_code": {
"type": [
"string",
"null"
]
},
"muted": {
"type": [
"boolean",
"null"
]
},
"name": {
"type": "string"
},
"newsletter_id": {
"type": "string"
},
"picture_url": {
"type": [
"string",
"null"
]
},
"preview_url": {
"type": [
"string",
"null"
]
},
"role": {
"type": [
"string",
"null"
]
},
"state": {
"type": "string"
},
"subscriber_count": {
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"verification": {
"type": "string"
}
},
"required": [
"name",
"newsletter_id",
"state",
"subscriber_count",
"verification"
],
"title": "Metadata",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Unsubscribe from a channel."
},
"name": "whatsapp::newsletters::leave",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"newsletter_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"newsletter_id",
"session_id"
],
"title": "NewsletterRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "List subscribed channels."
},
"name": "whatsapp::newsletters::list",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"session_id": {
"type": "string"
}
},
"required": [
"session_id"
],
"title": "SessionRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Metadata": {
"properties": {
"creation_time": {
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"follower_activity_muted": {
"type": [
"boolean",
"null"
]
},
"invite_code": {
"type": [
"string",
"null"
]
},
"muted": {
"type": [
"boolean",
"null"
]
},
"name": {
"type": "string"
},
"newsletter_id": {
"type": "string"
},
"picture_url": {
"type": [
"string",
"null"
]
},
"preview_url": {
"type": [
"string",
"null"
]
},
"role": {
"type": [
"string",
"null"
]
},
"state": {
"type": "string"
},
"subscriber_count": {
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"verification": {
"type": "string"
}
},
"required": [
"name",
"newsletter_id",
"state",
"subscriber_count",
"verification"
],
"type": "object"
}
},
"items": {
"$ref": "#/definitions/Metadata"
},
"title": "Array_of_Metadata",
"type": "array"
}
},
{
"description": "",
"metadata": {
"description": "Fetch a bounded page of channel messages with typed envelope metadata and protobuf JSON content."
},
"name": "whatsapp::newsletters::messages",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"before_server_id": {
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"count": {
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"newsletter_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"count",
"newsletter_id",
"session_id"
],
"title": "HistoryRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"AdminProfile": {
"properties": {
"id": {
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"picture_direct_path": {
"type": [
"string",
"null"
]
},
"picture_id": {
"type": [
"string",
"null"
]
}
},
"required": [
"name"
],
"type": "object"
},
"HistoryMessage": {
"properties": {
"admin_profile": {
"anyOf": [
{
"$ref": "#/definitions/AdminProfile"
},
{
"type": "null"
}
]
},
"content": {
"description": "Native protobuf JSON content; absent on revoked messages."
},
"forwards_count": {
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"is_sender": {
"description": "Null when the native client does not expose this value.",
"type": [
"boolean",
"null"
]
},
"last_edit_timestamp_ms": {
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"media_type": {
"type": [
"string",
"null"
]
},
"message_id": {
"type": "string"
},
"message_type": {
"type": "string"
},
"original_timestamp": {
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"poll_type": {
"type": [
"string",
"null"
]
},
"reactions": {
"description": "Null when the native client does not expose this value.",
"items": {
"$ref": "#/definitions/ReactionCount"
},
"type": [
"array",
"null"
]
},
"responses_count": {
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"server_id": {
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"timestamp": {
"description": "Null when the native client does not expose this value.",
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"views_count": {
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"votes": {
"description": "Null when the native client does not expose this value.",
"items": {
"$ref": "#/definitions/VoteCount"
},
"type": [
"array",
"null"
]
}
},
"required": [
"is_sender",
"message_id",
"message_type",
"reactions",
"server_id",
"timestamp",
"votes"
],
"type": "object"
},
"ReactionCount": {
"properties": {
"count": {
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"emoji": {
"type": "string"
}
},
"required": [
"count",
"emoji"
],
"type": "object"
},
"VoteCount": {
"properties": {
"count": {
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"option_hash_base64": {
"type": "string"
}
},
"required": [
"count",
"option_hash_base64"
],
"type": "object"
}
},
"items": {
"$ref": "#/definitions/HistoryMessage"
},
"title": "Array_of_HistoryMessage",
"type": "array"
}
},
{
"description": "",
"metadata": {
"description": "Mute or unmute channel updates for this account."
},
"name": "whatsapp::newsletters::mute_updates",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"muted": {
"type": "boolean"
},
"newsletter_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"muted",
"newsletter_id",
"session_id"
],
"title": "MuteRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Set or remove a channel reaction using its server-assigned message id."
},
"name": "whatsapp::newsletters::react",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"emoji": {
"type": "string"
},
"newsletter_id": {
"type": "string"
},
"server_id": {
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"session_id": {
"type": "string"
}
},
"required": [
"emoji",
"newsletter_id",
"server_id",
"session_id"
],
"title": "ReactionRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"stanza_id": {
"type": "string"
}
},
"required": [
"stanza_id"
],
"title": "Stanza",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Revoke a channel message using its stanza message id, not server id."
},
"name": "whatsapp::newsletters::revoke",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"message_id": {
"type": "string"
},
"newsletter_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"message_id",
"newsletter_id",
"session_id"
],
"title": "RevokeRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Acknowledges only completion of the native API call.",
"properties": {
"applied": {
"type": "boolean"
}
},
"required": [
"applied"
],
"title": "Applied",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Subscribe to channel counters and return the server's renewal interval."
},
"name": "whatsapp::newsletters::subscribe_updates",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"newsletter_id": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"newsletter_id",
"session_id"
],
"title": "NewsletterRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"duration_seconds": {
"format": "uint64",
"minimum": 0,
"type": "integer"
}
},
"required": [
"duration_seconds"
],
"title": "Subscription",
"type": "object"
}
},
{
"description": "",
"metadata": {
"internal": true,
"trace_hidden": true
},
"name": "whatsapp::on-config-change",
"request_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"items": true,
"type": "array"
},
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "Payload is ignored; the callback reads authoritative state instead."
},
"response_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"ok": {
"type": "boolean"
}
},
"required": [
"ok"
],
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Fetch current account privacy settings"
},
"name": "whatsapp::privacy::get",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"session_id": {
"type": "string"
}
},
"required": [
"session_id"
],
"title": "SessionRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"PrivacyView": {
"properties": {
"category": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"category",
"value"
],
"type": "object"
}
},
"items": {
"$ref": "#/definitions/PrivacyView"
},
"title": "Array_of_PrivacyView",
"type": "array"
}
},
{
"description": "",
"metadata": {
"description": "Set a validated account privacy category"
},
"name": "whatsapp::privacy::set",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"category": {
"type": "string"
},
"session_id": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"category",
"session_id",
"value"
],
"title": "PrivacyRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"dhash": {
"type": [
"string",
"null"
]
}
},
"title": "PrivacyUpdateView",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Set the default disappearing-message duration in seconds"
},
"name": "whatsapp::privacy::set_disappearing_default",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"expiration_seconds": {
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"session_id": {
"type": "string"
}
},
"required": [
"expiration_seconds",
"session_id"
],
"title": "DefaultDurationRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Null",
"type": "null"
}
},
{
"description": "",
"metadata": {
"description": "Remove the account's profile photo"
},
"name": "whatsapp::profile::remove_picture",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"session_id": {
"type": "string"
}
},
"required": [
"session_id"
],
"title": "SessionRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
],
"title": "PictureId",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Set profile About text, not a story/status post"
},
"name": "whatsapp::profile::set_about",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"session_id": {
"type": "string"
},
"text": {
"type": "string"
}
},
"required": [
"session_id",
"text"
],
"title": "ProfileTextRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Null",
"type": "null"
}
},
{
"description": "",
"metadata": {
"description": "Set the account's display name"
},
"name": "whatsapp::profile::set_name",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"session_id": {
"type": "string"
},
"text": {
"type": "string"
}
},
"required": [
"session_id",
"text"
],
"title": "ProfileTextRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Null",
"type": "null"
}
},
{
"description": "",
"metadata": {
"description": "Set the account photo from prepared JPEG bytes"
},
"name": "whatsapp::profile::set_picture",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"jpeg_base64": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"jpeg_base64",
"session_id"
],
"title": "ProfilePictureRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
],
"title": "PictureId",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Create persistent session metadata without connecting to WhatsApp"
},
"name": "whatsapp::sessions::create",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"session_id": {
"type": "string"
}
},
"required": [
"session_id"
],
"title": "SessionRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"SessionStatus": {
"enum": [
"stopped",
"starting",
"pairing",
"connected",
"disconnected",
"stopping",
"logged_out",
"failed"
],
"type": "string"
}
},
"properties": {
"created_at_ms": {
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"session_id": {
"type": "string"
},
"status": {
"$ref": "#/definitions/SessionStatus"
}
},
"required": [
"created_at_ms",
"session_id",
"status"
],
"title": "SessionSummary",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Stop and remove one session and its local credentials"
},
"name": "whatsapp::sessions::delete",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"session_id": {
"type": "string"
}
},
"required": [
"session_id"
],
"title": "SessionRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"SessionStatus": {
"enum": [
"stopped",
"starting",
"pairing",
"connected",
"disconnected",
"stopping",
"logged_out",
"failed"
],
"type": "string"
}
},
"properties": {
"created_at_ms": {
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"session_id": {
"type": "string"
},
"status": {
"$ref": "#/definitions/SessionStatus"
}
},
"required": [
"created_at_ms",
"session_id",
"status"
],
"title": "SessionSummary",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Get a session summary without credentials or pairing secrets"
},
"name": "whatsapp::sessions::get",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"session_id": {
"type": "string"
}
},
"required": [
"session_id"
],
"title": "SessionRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"SessionStatus": {
"enum": [
"stopped",
"starting",
"pairing",
"connected",
"disconnected",
"stopping",
"logged_out",
"failed"
],
"type": "string"
}
},
"properties": {
"created_at_ms": {
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"session_id": {
"type": "string"
},
"status": {
"$ref": "#/definitions/SessionStatus"
}
},
"required": [
"created_at_ms",
"session_id",
"status"
],
"title": "SessionSummary",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "List persistent sessions without connecting"
},
"name": "whatsapp::sessions::list",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"title": "EmptyRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"SessionStatus": {
"enum": [
"stopped",
"starting",
"pairing",
"connected",
"disconnected",
"stopping",
"logged_out",
"failed"
],
"type": "string"
},
"SessionSummary": {
"properties": {
"created_at_ms": {
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"session_id": {
"type": "string"
},
"status": {
"$ref": "#/definitions/SessionStatus"
}
},
"required": [
"created_at_ms",
"session_id",
"status"
],
"type": "object"
}
},
"items": {
"$ref": "#/definitions/SessionSummary"
},
"title": "Array_of_SessionSummary",
"type": "array"
}
},
{
"description": "",
"metadata": {
"description": "Request native best-effort device unlink, stop, and clear local credentials"
},
"name": "whatsapp::sessions::logout",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"session_id": {
"type": "string"
}
},
"required": [
"session_id"
],
"title": "SessionRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"SessionStatus": {
"enum": [
"stopped",
"starting",
"pairing",
"connected",
"disconnected",
"stopping",
"logged_out",
"failed"
],
"type": "string"
}
},
"properties": {
"created_at_ms": {
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"session_id": {
"type": "string"
},
"status": {
"$ref": "#/definitions/SessionStatus"
}
},
"required": [
"created_at_ms",
"session_id",
"status"
],
"title": "SessionSummary",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Request a native phone-number pairing code for a started session"
},
"name": "whatsapp::sessions::pair_code",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"phone_number": {
"type": "string"
},
"session_id": {
"type": "string"
}
},
"required": [
"phone_number",
"session_id"
],
"title": "PairCodeRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Pairing material is returned only by the dedicated pairing functions.",
"properties": {
"code": {
"type": "string"
},
"expires_at_ms": {
"format": "uint64",
"minimum": 0,
"type": "integer"
}
},
"required": [
"code",
"expires_at_ms"
],
"title": "PairingCode",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Read the current unexpired pairing QR payload; null when unavailable"
},
"name": "whatsapp::sessions::qr",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"session_id": {
"type": "string"
}
},
"required": [
"session_id"
],
"title": "SessionRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"anyOf": [
{
"$ref": "#/definitions/PairingCode"
},
{
"type": "null"
}
],
"definitions": {
"PairingCode": {
"description": "Pairing material is returned only by the dedicated pairing functions.",
"properties": {
"code": {
"type": "string"
},
"expires_at_ms": {
"format": "uint64",
"minimum": 0,
"type": "integer"
}
},
"required": [
"code",
"expires_at_ms"
],
"type": "object"
}
},
"title": "Nullable_PairingCode"
}
},
{
"description": "",
"metadata": {
"description": "Start a native session and return its current connection state"
},
"name": "whatsapp::sessions::start",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"session_id": {
"type": "string"
}
},
"required": [
"session_id"
],
"title": "SessionRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"SessionStatus": {
"enum": [
"stopped",
"starting",
"pairing",
"connected",
"disconnected",
"stopping",
"logged_out",
"failed"
],
"type": "string"
}
},
"properties": {
"created_at_ms": {
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"session_id": {
"type": "string"
},
"status": {
"$ref": "#/definitions/SessionStatus"
}
},
"required": [
"created_at_ms",
"session_id",
"status"
],
"title": "SessionSummary",
"type": "object"
}
},
{
"description": "",
"metadata": {
"description": "Stop a native session while preserving credentials"
},
"name": "whatsapp::sessions::stop",
"request_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"session_id": {
"type": "string"
}
},
"required": [
"session_id"
],
"title": "SessionRequest",
"type": "object"
},
"response_schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"SessionStatus": {
"enum": [
"stopped",
"starting",
"pairing",
"connected",
"disconnected",
"stopping",
"logged_out",
"failed"
],
"type": "string"
}
},
"properties": {
"created_at_ms": {
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"session_id": {
"type": "string"
},
"status": {
"$ref": "#/definitions/SessionStatus"
}
},
"required": [
"created_at_ms",
"session_id",
"status"
],
"title": "SessionSummary",
"type": "object"
}
},
{
"description": "",
"metadata": {
"internal": true
},
"name": "whatsapp::ui-content",
"request_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"path": {
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
},
"response_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"content": {
"type": "string"
},
"content_type": {
"type": "string"
}
},
"required": [
"content",
"content_type"
],
"type": "object"
}
}
],
"triggers": [
{
"description": "Filtered WhatsApp Cloud API messages, delivery statuses, and optional account/group/calling webhook events. Publishes verified events after durable deduplication; messages are also saved to the local archive.\n\n## Register a subscription\n\n1. Register a callback function that accepts the event object below. Replace `automation::on-whatsapp-message` with that function's ID and the example `chat_ids` with the contacts you want to monitor.\n2. Call `engine::register_trigger` in the `default` namespace with the following JSON. Use an initialized caller connection in the callback function's namespace. `trigger_namespace` selects this WhatsApp provider, not the callback namespace. With the CLI, `III_NAMESPACE` sets the connection namespace; `--namespace default` routes the call to the engine function. For a newly connected Go SDK client, first wait until `engine::workers::list` shows that client in the intended namespace; `Connect` can return before its namespace is announced.\n\n```json\n{\n \"trigger_type\": \"whatsapp::cloud::events\",\n \"trigger_namespace\": \"default\",\n \"function_id\": \"automation::on-whatsapp-message\",\n \"config\": {\n \"chat_ids\": [\"+15550000009\"],\n \"message_types\": [\"text\"]\n },\n \"metadata\": {\"workflow\": \"customer-support\"}\n}\n```\n\n3. Save the returned `id`. Call `engine::registered-triggers::info` with `{\"id\":\"<returned-id>\"}` and check that `status` is `active` and `function` identifies the intended callback and namespace. Active confirms the provider binding; it does not guarantee the callback exists. Registration does not replay old messages.\n4. Remove the subscription with `engine::unregister_trigger` and `{\"id\":\"<returned-id>\"}`. Function-path registrations survive the calling connection closing; explicitly unregister them when finished. Callback metadata is separate from the event payload. Callback return values do not send replies to WhatsApp.\n\n## Filter configuration\n\nEvery field in `config` is optional. Always supply a JSON object; `{}` receives all incoming messages for the configured Cloud account. Unknown fields are rejected. Populated fields combine with AND; values within each list combine with OR.\n\n| Field | Values and behavior |\n| --- | --- |\n| `kinds` | List: `message.received`, `message.status`, `webhook.received`. Omitted, null or empty defaults to only `message.received`. |\n| `chat_ids` | Contact phone numbers such as `+15550000009`, business-scoped IDs such as `BR.ENT.Abc123`, or `group:<raw Cloud group ID>`. Use IDs from `whatsapp::cloud::chats::list`. Native JIDs are not supported. |\n| `sender_ids` | List of sender IDs in the same format. Applies to incoming messages. |\n| `message_types` | List of exact raw Meta types, such as `text`, `image`, `audio`, `interactive` or `button`. Names must start with a lowercase letter and contain 1–64 lowercase letters, digits or underscores. |\n| `statuses` | List: `sent`, `delivered`, `read`, `failed`. Also set `kinds` to include `message.status`. |\n| `fields` | Exact Meta webhook fields, such as `messages`, `message_template_status_update`, `calls`, or `group_lifecycle_update`. Administrative events require `kinds: [\"webhook.received\"]`. |\n| `events` | Exact administrative event names, such as `APPROVED`, `group_create`, or a calling event name. |\n| `group_ids` | Raw Cloud group IDs without the `group:` prefix. Matches group messages, receipts, and metadata events. |\n| `participant_ids` | Normalized participants identified by group delivery/read receipts. Also select `message.status`. |\n| `business_account_id` | Exact WABA ID, a numeric string of at most 32 digits. |\n| `phone_number_id` | Exact Phone Number ID, a numeric string of at most 32 digits. |\n\nEmpty lists impose no restriction except the received-only default for `kinds`. Empty account ID strings impose no restriction. Each list allows at most 128 values; the entire filter is limited to 64 KiB. Status events have no sender or message type, so populated `sender_ids` or `message_types` exclude them. To receive read and failed receipts for one contact, replace `config` above with:\n\n```json\n{\n \"kinds\": [\"message.status\"],\n \"chat_ids\": [\"+15550000009\"],\n \"statuses\": [\"read\", \"failed\"]\n}\n```\n\n## Callback payload\n\n```json\n{\n \"kind\": \"message.received\",\n \"business_account_id\": \"123\",\n \"phone_number_id\": \"456\",\n \"message_id\": \"wamid.example\",\n \"chat_id\": \"+15550000009\",\n \"sender_id\": \"+15550000009\",\n \"message_type\": \"text\",\n \"text\": \"Hello\",\n \"timestamp_ms\": 1700000000000,\n \"data\": {\n \"id\": \"wamid.example\",\n \"from\": \"15550000009\",\n \"timestamp\": \"1700000000\",\n \"type\": \"text\",\n \"text\": {\"body\": \"Hello\"}\n }\n}\n```\n\n`message.status` uses the same account, message, chat and timestamp fields plus `status`; sender, message type and text may be absent. `timestamp_ms` is Meta's timestamp in milliseconds. `data` contains the single original message/status object, not the whole webhook. Events are capped at 64 KiB; oversized content uses `data: {\"content_omitted\":true}` with a clipped preview.\n\n## Delivery and setup\n\nConfigure Cloud API credentials and the Meta webhook first; `whatsapp::cloud::status` reports local setup. This trigger does not configure Meta or subscribe to linked-device events (`whatsapp::events`). Local sends do not emit `message.received`; Meta receipts can emit `message.status`.\n\nDuplicate messages and identical status updates are suppressed within retained deduplication history. Delivery is best effort, without callback retries or replay; queue overflow, shutdown or callback failures can lose notifications. Reconcile current retained message state with `whatsapp::cloud::chats::list` and `whatsapp::cloud::messages::list`. Reconcile administrative state with its corresponding management API; the message archive does not store account-event history.\n\n## Administrative and group subscriptions\n\nFor template status changes, register a callback with this filter:\n\n```json\n{\n \"trigger_type\": \"whatsapp::cloud::events\",\n \"trigger_namespace\": \"default\",\n \"function_id\": \"automation::on-template-status\",\n \"config\": {\n \"kinds\": [\"webhook.received\"],\n \"fields\": [\"message_template_status_update\"],\n \"events\": [\"APPROVED\", \"REJECTED\"]\n }\n}\n```\n\n`webhook.received` has `event_id` (a deterministic hash), `field`, optional\n`event`, and sanitized `data`. Its `message_id` and `chat_id` are empty.\n`phone_number_id` is empty for WABA-wide events without a phone identity;\na nonempty phone filter excludes those events. `timestamp_ms` is Meta's entry\nor nested event timestamp, or zero when Meta provides none. No receipt time is\nsubstituted. Duplicate detection hashes the canonical event and supplied time.\n\nGroup metadata and calling collections are split into individual events while\nretaining their nested `groups` or `calls` object inside `data`. Coexistence\nhistory/state/echo payloads can be subscribed to by field, but are not imported\nas ordinary inbox messages. This does not provision coexistence or initiate\nhistory synchronization.\n\nFor a Cloud group, use:\n\n```json\n{\n \"kinds\": [\"message.received\", \"message.status\"],\n \"group_ids\": [\"Y2FwaV9ncm91cDoxMjM=\"]\n}\n```\n\nGroup messages use `chat_id: \"group:<id>\"`, retain the participant as `sender_id`,\nand include raw `group_id`. Delivery/read receipts for an individual participant\ninclude `participant_id`; they are deduplicated per participant. They do not\nmark the entire group conversation as delivered/read. These subscriptions use\nthe official Cloud Groups API, not linked-device group JIDs. Meta account\neligibility and webhook field subscriptions are still required.\n\nSee [Meta webhook fields](https://developers.facebook.com/documentation/business-messaging/whatsapp/webhooks/overview)\nand [group webhook contracts](https://developers.facebook.com/documentation/business-messaging/whatsapp/groups/webhooks).\n",
"invocation_schema": {
"$defs": {
"identity": {
"description": "The worker validates and normalizes this value. International phone numbers must contain 7 to 15 digits, beginning with a nonzero digit; an initial +, spaces, parentheses and hyphens are accepted. Business-scoped user IDs use a two-letter uppercase prefix, a dot, optional ENT., and 1 to 128 letters or digits. Surrounding whitespace is ignored. Conversation filters also support group:<raw Meta group ID>.",
"type": "string"
}
},
"$id": "https://whatsapp.invalid/cloud-events/config.schema.json",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"description": "Configuration for whatsapp::cloud::events. All fields are optional. Fields combine with AND; values within a list combine with OR. Empty or null lists apply no restriction, except kinds, which defaults to incoming messages. The worker also enforces a 64 KiB serialized configuration limit.",
"examples": [
{},
{
"chat_ids": [
"+15551234567"
],
"message_types": [
"text",
"interactive"
]
},
{
"chat_ids": [
"+15551234567"
],
"kinds": [
"message.status"
],
"statuses": [
"read",
"failed"
]
},
{
"events": [
"APPROVED"
],
"fields": [
"message_template_status_update"
],
"kinds": [
"webhook.received"
]
}
],
"properties": {
"business_account_id": {
"description": "Exact Meta WhatsApp Business Account ID. Omitted, empty or null means no account restriction.",
"examples": [
"123456789"
],
"pattern": "^[0-9]{0,32}$",
"type": [
"string",
"null"
]
},
"chat_ids": {
"description": "Individual conversation identities or group:<raw Meta group ID>. Native JIDs are not supported.",
"examples": [
[
"+15551234567"
],
[
"BR.ENT.customer42"
]
],
"items": {
"$ref": "#/$defs/identity"
},
"maxItems": 128,
"type": [
"array",
"null"
]
},
"events": {
"description": "Exact value.event names, such as APPROVED. Combined with other filters using AND.",
"items": {
"maxLength": 128,
"minLength": 1,
"pattern": "^\\S(?:[\\s\\S]*\\S)?$",
"type": "string"
},
"maxItems": 128,
"type": [
"array",
"null"
]
},
"fields": {
"description": "Exact raw Meta webhook field names. For administrative notifications explicitly select kinds: [webhook.received].",
"items": {
"pattern": "^[a-z][a-z0-9_]{0,63}$",
"type": "string"
},
"maxItems": 128,
"type": [
"array",
"null"
]
},
"group_ids": {
"description": "Raw Cloud group IDs. Applies to group messages, statuses and group metadata events.",
"items": {
"pattern": "^[A-Za-z0-9][A-Za-z0-9_+/=-]{0,255}$",
"type": "string"
},
"maxItems": 128,
"type": [
"array",
"null"
]
},
"kinds": {
"default": [
"message.received"
],
"description": "Event kinds to receive. Omitted, empty or null means message.received only. Select message.status explicitly for delivery receipts.",
"items": {
"enum": [
"message.received",
"message.status",
"webhook.received"
]
},
"maxItems": 128,
"type": [
"array",
"null"
]
},
"message_types": {
"description": "Exact raw Meta message types, such as text, image, interactive or contacts. Future type names are allowed. Status events have no message type and cannot match a nonempty message_types filter.",
"examples": [
[
"text",
"interactive"
]
],
"items": {
"pattern": "^[a-z][a-z0-9_]{0,63}$",
"type": "string"
},
"maxItems": 128,
"type": [
"array",
"null"
]
},
"participant_ids": {
"description": "Group delivery/read receipt participants. Explicitly include message.status in kinds.",
"items": {
"$ref": "#/$defs/identity"
},
"maxItems": 128,
"type": [
"array",
"null"
]
},
"phone_number_id": {
"description": "Exact Meta Phone Number ID, not the displayed telephone number. Omitted, empty or null means no phone restriction.",
"examples": [
"987654321"
],
"pattern": "^[0-9]{0,32}$",
"type": [
"string",
"null"
]
},
"sender_ids": {
"description": "Individual sender identities (phone numbers or BSUIDs), never group IDs. Status events have no sender and cannot match a nonempty sender_ids filter.",
"items": {
"$ref": "#/$defs/identity"
},
"maxItems": 128,
"type": [
"array",
"null"
]
},
"statuses": {
"description": "Delivery states. Set kinds to include message.status; a status filter does not change the default kind. Incoming messages have no status and cannot match a nonempty statuses filter.",
"examples": [
[
"delivered",
"read"
]
],
"items": {
"enum": [
"sent",
"delivered",
"read",
"failed"
]
},
"maxItems": 128,
"type": [
"array",
"null"
]
}
},
"title": "WhatsApp Cloud event filters",
"type": "object"
},
"metadata": {},
"name": "whatsapp::cloud::events",
"return_schema": {
"$defs": {
"conversation": {
"pattern": "^(\\+[1-9][0-9]{6,14}|[A-Z]{2}\\.(ENT\\.)?[A-Za-z0-9]{1,128}|group:[A-Za-z0-9][A-Za-z0-9_+/=-]{0,255})$",
"type": "string"
},
"identity": {
"pattern": "^(\\+[1-9][0-9]{6,14}|[A-Z]{2}\\.(ENT\\.)?[A-Za-z0-9]{1,128})$",
"type": "string"
}
},
"$id": "https://whatsapp.invalid/cloud-events/payload.schema.json",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": true,
"description": "One verified message, delivery status, or explicitly subscribed administrative webhook event. Event delivery is best effort after durable deduplication.",
"examples": [
{
"business_account_id": "123456789",
"chat_id": "+15551234567",
"data": {
"from": "15551234567",
"id": "wamid.example",
"text": {
"body": "Hello"
},
"timestamp": "1790870400",
"type": "text"
},
"kind": "message.received",
"message_id": "wamid.example",
"message_type": "text",
"phone_number_id": "987654321",
"sender_id": "+15551234567",
"text": "Hello",
"timestamp_ms": 1790870400000
},
{
"business_account_id": "123456789",
"chat_id": "+15551234567",
"data": {
"id": "wamid.example",
"recipient_id": "15551234567",
"status": "read",
"timestamp": "1790870460"
},
"kind": "message.status",
"message_id": "wamid.example",
"phone_number_id": "987654321",
"status": "read",
"timestamp_ms": 1790870460000
},
{
"business_account_id": "123",
"chat_id": "",
"data": {
"event": "APPROVED",
"message_template_id": "999"
},
"event": "APPROVED",
"event_id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"field": "message_template_status_update",
"kind": "webhook.received",
"message_id": "",
"phone_number_id": "",
"timestamp_ms": 0
}
],
"oneOf": [
{
"properties": {
"chat_id": {
"$ref": "#/$defs/conversation"
},
"kind": {
"const": "message.received"
},
"message_id": {
"minLength": 1
},
"phone_number_id": {
"pattern": "^[0-9]{1,32}$"
},
"status": false
},
"required": [
"sender_id",
"message_type"
]
},
{
"properties": {
"chat_id": {
"$ref": "#/$defs/conversation"
},
"kind": {
"const": "message.status"
},
"message_id": {
"minLength": 1
},
"message_type": false,
"phone_number_id": {
"pattern": "^[0-9]{1,32}$"
},
"sender_id": false,
"text": false
},
"required": [
"status"
]
},
{
"properties": {
"chat_id": {
"const": ""
},
"kind": {
"const": "webhook.received"
},
"message_id": {
"const": ""
},
"message_type": false,
"sender_id": false,
"status": false
},
"required": [
"event_id",
"field"
]
}
],
"properties": {
"business_account_id": {
"description": "Meta WhatsApp Business Account ID that received the webhook.",
"pattern": "^[0-9]{1,32}$",
"type": "string"
},
"chat_id": {
"description": "Normalized conversation identity; empty for administrative events.",
"type": "string"
},
"data": {
"additionalProperties": true,
"description": "Individual Meta message/status object or sanitized administrative change value. Group/call batches are split to one item per event. If the serialized event would exceed 64 KiB, replaced with {\"content_omitted\":true}; text is also clipped to 8 KiB. This object is not the webhook envelope.",
"type": "object"
},
"event": {
"maxLength": 128,
"type": "string"
},
"event_id": {
"description": "Deterministic administrative event identifier for deduplication.",
"pattern": "^[a-f0-9]{64}$",
"type": "string"
},
"field": {
"pattern": "^[a-z][a-z0-9_]{0,63}$",
"type": "string"
},
"group_id": {
"pattern": "^[A-Za-z0-9][A-Za-z0-9_+/=-]{0,255}$",
"type": "string"
},
"kind": {
"enum": [
"message.received",
"message.status",
"webhook.received"
]
},
"message_id": {
"description": "Meta message ID; empty for administrative events, which use event_id.",
"maxLength": 512,
"minLength": 0,
"type": "string"
},
"message_type": {
"description": "Exact raw Meta message type; present only for message.received. May include future types that the archive preview cannot render.",
"pattern": "^[a-z][a-z0-9_]{0,63}$",
"type": "string"
},
"participant_id": {
"$ref": "#/$defs/identity"
},
"phone_number_id": {
"description": "Meta Phone Number ID; empty for account-wide administrative events without a phone ID.",
"pattern": "^[0-9]{0,32}$",
"type": "string"
},
"sender_id": {
"$ref": "#/$defs/identity",
"description": "Normalized sender; present only for message.received."
},
"status": {
"description": "Delivery state; present only for message.status.",
"enum": [
"sent",
"delivered",
"read",
"failed"
]
},
"text": {
"description": "Optional message preview, limited to 16 KiB of UTF-8 text, or 8 KiB if data must be omitted to bound the event. Omitted when empty.",
"maxLength": 16384,
"type": "string"
},
"timestamp_ms": {
"description": "Meta Unix seconds converted to milliseconds. Administrative events without an entry timestamp use 0; this never means local receipt time.",
"minimum": 0,
"type": "integer"
}
},
"required": [
"kind",
"business_account_id",
"phone_number_id",
"message_id",
"chat_id",
"timestamp_ms",
"data"
],
"title": "WhatsApp Cloud event",
"type": "object"
}
},
{
"description": "Native WhatsApp session, message, receipt and group events",
"invocation_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"description": "Optional filters for whatsapp::events. An omitted, empty or null session_id selects every session. Omitted, empty or null kinds selects every event kind. A null configuration applies no filters.",
"properties": {
"kinds": {
"items": {
"pattern": "^[A-Za-z0-9._]{1,128}$",
"type": "string"
},
"maxItems": 128,
"type": [
"array",
"null"
]
},
"session_id": {
"pattern": "^[A-Za-z0-9_-]{0,64}$",
"type": [
"string",
"null"
]
}
},
"title": "Native WhatsApp event filters",
"type": [
"object",
"null"
]
},
"metadata": {},
"name": "whatsapp::events",
"return_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": true,
"description": "Native session, message, receipt or group event. Data varies by kind and may contain any JSON value. Transport metadata and future envelope fields are allowed.",
"properties": {
"data": true,
"kind": {
"type": "string"
},
"sequence": {
"minimum": 0,
"type": "integer"
},
"session_id": {
"type": "string"
},
"timestamp_ms": {
"type": "integer"
}
},
"required": [
"session_id",
"sequence",
"kind",
"timestamp_ms",
"data"
],
"title": "Native WhatsApp event",
"type": "object"
}
}
]
}