Build a WhatsApp Bot with Python in 10 Minutes (Free Forever)
Python + WhatsApp is a classic stack for support bots, alerts, and AI agents. This guide uses the official Omdaa Python SDK — free forever, no Meta Cloud API verification required to start.
Series: Free Forever WhatsApp Dev · SDK: omdaa-sdk / Python
Prerequisites
- Python 3.10+
- Free Omdaa account → register
- WhatsApp session linked (Dashboard QR or Cursor MCP)
Install
pip install omdaa export OMDAA_API_KEY=your-api-key Send your first message
import os from omdaa import OmdaaClient client = OmdaaClient(api_key=os.environ["OMDAA_API_KEY"]) res = client.messages.send_text( session_id="default", to="201234567890", # country code, no + message="Hello from Python + Omdaa!", ) print(res) Receive messages via webhook (Flask)
from flask import Flask, request app = Flask(__name__) @app.post("/webhook") def webhook(): payload = request.get_json(force=True) or {} event = payload.get("event", "") data = payload.get("data") or {} if "message" in event: sender = data.get("from") text = data.get("text") or "" print(f"From {sender}: {text}") # Optional: reply with client.messages.send_text(...) return ("", 200) if __name__ == "__main__": app.run(port=8080) Point Omdaa to your public URL:
client.webhooks.set({ "url": "https://your-tunnel.example/webhook", "enabled": True, "events": ["message.received"], }) client.webhooks.test() Use ngrok / Cloudflare Tunnel while developing.
Add Omdaa AI (no OpenAI key required)
- Open Dashboard → Omdaa AI
- Bind bot to your session
- Enable Use Omdaa AI
- Set a short system prompt
Unlimited AI replies are included in Free Forever.
Async / automation ideas
| Idea | How |
|---|---|
| Cron alerts | send_text from a scheduled job |
| FastAPI receiver | Same webhook pattern |
| n8n | Skip Flask — use n8n guide |
| Cursor agents | Omdaa MCP |
Node twin
Same API from JavaScript:
npm install @omdaafreeapi/omdaa-api-client Resources
Omdaa API — Free Forever. Ship a Python WhatsApp bot before your coffee cools.