Client API Reference

WhatsAppClient

class whatsapp_sdk.WhatsAppClient(phone_number_id, access_token, app_secret=None, webhook_verify_token=None, base_url='https://graph.facebook.com', api_version='v23.0', timeout=30, max_retries=3, rate_limit=80)[source]

Bases: object

Main WhatsApp Business API client.

This client provides access to all WhatsApp Business API services through a simple, synchronous interface.

Examples

# Initialize with direct parameters client = WhatsAppClient(

phone_number_id=”123456789”, access_token=”your_token”

)

# Initialize from environment client = WhatsAppClient.from_env()

# Send a message response = client.messages.send_text(

to=”+1234567890”, body=”Hello from WhatsApp SDK!”

)

__init__(phone_number_id, access_token, app_secret=None, webhook_verify_token=None, base_url='https://graph.facebook.com', api_version='v23.0', timeout=30, max_retries=3, rate_limit=80)[source]

Initialize WhatsApp client.

Parameters:
  • phone_number_id (str) – WhatsApp Business phone number ID

  • access_token (str) – Meta access token

  • app_secret (str | None) – App secret for webhook signature validation

  • webhook_verify_token (str | None) – Token for webhook verification

  • base_url (str) – API base URL (defaults to Meta’s URL)

  • api_version (str) – API version (defaults to v23.0)

  • timeout (int) – Request timeout in seconds

  • max_retries (int) – Maximum number of retries for failed requests

  • rate_limit (int) – Requests per second limit

classmethod from_env()[source]

Create client from environment variables.

Required environment variables:
  • WHATSAPP_PHONE_NUMBER_ID

  • WHATSAPP_ACCESS_TOKEN

Optional environment variables:
  • WHATSAPP_APP_SECRET

  • WHATSAPP_WEBHOOK_VERIFY_TOKEN

  • WHATSAPP_API_VERSION

  • WHATSAPP_BASE_URL

  • WHATSAPP_TIMEOUT

  • WHATSAPP_MAX_RETRIES

  • WHATSAPP_RATE_LIMIT

Returns:

WhatsAppClient instance configured from environment

Raises:

ValueError – If required environment variables are missing

Return type:

WhatsAppClient

Example

# Set environment variables export WHATSAPP_PHONE_NUMBER_ID=”123456789” export WHATSAPP_ACCESS_TOKEN=”your_token”

# Create client client = WhatsAppClient.from_env()

__init__(phone_number_id, access_token, app_secret=None, webhook_verify_token=None, base_url='https://graph.facebook.com', api_version='v23.0', timeout=30, max_retries=3, rate_limit=80)[source]

Initialize WhatsApp client.

Parameters:
  • phone_number_id (str) – WhatsApp Business phone number ID

  • access_token (str) – Meta access token

  • app_secret (str | None) – App secret for webhook signature validation

  • webhook_verify_token (str | None) – Token for webhook verification

  • base_url (str) – API base URL (defaults to Meta’s URL)

  • api_version (str) – API version (defaults to v23.0)

  • timeout (int) – Request timeout in seconds

  • max_retries (int) – Maximum number of retries for failed requests

  • rate_limit (int) – Requests per second limit

classmethod from_env()[source]

Create client from environment variables.

Required environment variables:
  • WHATSAPP_PHONE_NUMBER_ID

  • WHATSAPP_ACCESS_TOKEN

Optional environment variables:
  • WHATSAPP_APP_SECRET

  • WHATSAPP_WEBHOOK_VERIFY_TOKEN

  • WHATSAPP_API_VERSION

  • WHATSAPP_BASE_URL

  • WHATSAPP_TIMEOUT

  • WHATSAPP_MAX_RETRIES

  • WHATSAPP_RATE_LIMIT

Returns:

WhatsAppClient instance configured from environment

Raises:

ValueError – If required environment variables are missing

Return type:

WhatsAppClient

Example

# Set environment variables export WHATSAPP_PHONE_NUMBER_ID=”123456789” export WHATSAPP_ACCESS_TOKEN=”your_token”

# Create client client = WhatsAppClient.from_env()

__repr__()[source]

String representation of the client.

Configuration

class whatsapp_sdk.config.WhatsAppConfig(*, phone_number_id, access_token, app_secret=None, webhook_verify_token=None, base_url='https://graph.facebook.com', api_version='v23.0', timeout=30, max_retries=3, rate_limit=80)[source]

Bases: BaseModel

Configuration for WhatsApp SDK.

Contains all settings needed to interact with the WhatsApp Business API.

phone_number_id: str
access_token: str
app_secret: str | None
webhook_verify_token: str | None
base_url: str
api_version: str
timeout: int
max_retries: int
rate_limit: int
class Config[source]

Bases: object

Pydantic config.

validate_assignment = True
model_config: ClassVar[ConfigDict] = {'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].