// Start here
Overview
What the API does, and your first request in three steps.
The WhatsEngage API lets your own code do what your team does in the dashboard: send WhatsApp messages and templates, keep contacts in sync, launch campaigns, issue login codes, and hear about every inbound message the moment it arrives. It runs on Meta's official WhatsApp Cloud API, through the number connected to your project.
Every request goes to https://whatsapp.esendblue.com/api/v1, sends JSON, and gets JSON back.
Quickstart#
1. Create a key. In the dashboard open Settings → API keys → New API key. Only admins and owners can do this. Tick only the scopes the integration needs. The key is shown once; we store a hash, so copy it now.
2. Check that it works. /api/v1/me needs no scope and tells you which project the key belongs to.
curl https://whatsapp.esendblue.com/api/v1/me \
-H "Authorization: Bearer wacrm_live_YOUR_KEY"3. Send a message. This needs the messages:send scope. Use your own number first.
curl -X POST https://whatsapp.esendblue.com/api/v1/messages \
-H "Authorization: Bearer wacrm_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "to": "+919876543210", "type": "text", "text": "Hello from the API" }'Getting window_closed?
Rules WhatsApp enforces#
Some API refusals come from Meta's rules, not from your code. Learn these before you build, so they don't catch you out later:
- The 24-hour window. Free-form text and media are allowed only within 24 hours of the customer's last inbound message. Outside it, only an approved template goes out. We check this before calling Meta, so a refusal costs nothing.
- Templates are approved by Meta. Build and submit them under Settings → Templates. A template that is pending or rejected cannot be sent.
- Opt-out is absolute. A contact who replies STOP receives no marketing from any path, the API included. You cannot turn this off.
- Phone numbers are E.164. Include the country code:
+919876543210, not09876543210.