The WhatsApp Business API,
built for developers.
Send WhatsApp messages and templates, sync contacts, launch campaigns and receive webhooks from your own app. Plain REST and JSON on the official WhatsApp Business API, with public docs and an OpenAPI spec.
curl -X POST https://server.wylto.com/api/v1/wa/send
-H "Authorization: Bearer $WYLTO_TOKEN"
-H "Content-Type: application/json"
-d {
"to": "+919876012345",
"message": {
"type": "text",
"text": { "message": "Hi 👋" }
}
}+91 98xxxxxx
delivered · read
Hi 👋
12:04 ✓✓
Your OTP is 122335
valid for 5 minutes.
12:04 ✓✓
Thanks! Got it ✅
12:05
Send your first WhatsApp message in one request.
- 1. Connect your number. Sign up, connect your WhatsApp number to the official API from the Wylto dashboard and get templates approved.
- 2. Copy your API token. CRM → Settings → API Settings. Send it as
Authorization: Bearer <token>. - 3. Call the API. Plain REST and JSON at
https://server.wylto.com, from any language.
curl https://server.wylto.com/api/v1/wa/send \
-H "Authorization: Bearer $WYLTO_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"to": "+919876012345",
"message": {
"type": "text",
"text": { "message": "Your order #1043 has shipped 🚚" }
}
}'// Booking webhook: verify the signature before trusting the body
import crypto from 'node:crypto';
app.post('/wylto/bookings', express.raw({ type: 'application/json' }), (req, res) => {
const expected = 'sha256=' + crypto
.createHmac('sha256', process.env.WYLTO_WEBHOOK_SECRET)
.update(req.body)
.digest('hex');
if (req.get('X-Wylto-Signature-256') !== expected) return res.sendStatus(401);
const { triggerEvent, payload } = JSON.parse(req.body);
// BOOKING_CREATED, BOOKING_RESCHEDULED, BOOKING_CANCELLED, BOOKING_COMPLETED
console.log(triggerEvent, payload.contact, payload.utm);
res.sendStatus(200);
});Going direct to Meta
is a 6-month project.
WhatsApp Business API from Meta is powerful, but it's not something you plug into a product in an afternoon. Between onboarding, BSP setup, template approvals, phone-number quality, and a cloud-API learning curve, most teams lose a quarter before sending their first message at scale.
By the time you're live, the launch window has moved.
WABA setup + BSP onboarding take weeks of back-and-forth.
Template creation, approval, and quality scores are a moving target.
Meta Cloud API payloads are verbose and easy to get wrong.
Webhooks, retries, and delivery state need production-grade plumbing.
Rate limits, tiers, and MM-Lite eligibility — each with its own gotchas.
And after all of that, you still need a place to send campaigns from.
The API Surface
One API for everything you'd
ever want to do on WhatsApp.
Every capability you'd expect from a full WABA stack — exposed as clean, documented REST endpoints. Authenticate once with a Bearer token and call any endpoint from any language.
Authenticate
Grab a Bearer token from the Wylto dashboard. One token authorizes messaging, contacts, templates, campaigns, and webhook management.
Authorization:
Bearer $WYLTO_TOKEN
Send messages
POST /wa/send to deliver text, image, document, video, audio, template, or interactive messages — to a phone number or a Wylto contact ID.
to: "+919876012345"
type: "template"
name: "order_update"Manage contacts
Create, update, and delete contacts from your app. Every contact is linked to the same CRM record your team works from in Wylto.
sync from your app → same contact card your reps see
Work with templates
List, create, and inspect WhatsApp templates — including live quality scores — so you can ship marketing and utility templates from code.
Launch campaigns
POST /campaigns with a contact list + template to blast 10k–100k messages. Poll /campaigns/:id/report for sent, delivered, read, failed, and button clicks.
POST /campaigns
contacts.csv + template
10k
sent
95%
delvd
58%
read
6%
reply
Receive webhooks
Get every incoming WhatsApp message, and booking events, POSTed to your URL as JSON. Booking webhooks are signed with your secret.
POST → yourapp.com/webhook
Endpoints Included
Every WhatsApp capability, as a REST call
A single, consistent API for send, receive, contacts, templates, campaigns, reports, and phone-number health — documented with live examples.
Send to phone number
POST /api/v1/wa/send — text, media, document, template, interactive payloads.
Send to contact
POST /api/v1/wa/send/:contactId — reuse stored contacts without passing numbers each time.
Contacts
Create, update, read and delete contacts, with UTM and activity history. Same records your team sees in the CRM.
Manage templates
List, create, update and delete marketing, utility and authentication templates from code.
Template quality score
GET /wa/templates/:id/quality — monitor GREEN / YELLOW / RED status for each template.
Phone-number health
GET /wa/phone-number for quality rating, messaging tier, and throughput level.
Create campaigns
POST /campaigns with a contact list + template to trigger a bulk send — MM-Lite supported.
Campaign reports
GET /campaigns/:id/report for each message’s state (sent, delivered, read, failed), errors and button clicks.
Webhooks
Incoming messages, and booking created, rescheduled, cancelled and completed (signed with HMAC-SHA256).
Bearer auth
Standard Authorization: Bearer <token>. Copy it from CRM → Settings → API Settings.
OpenAPI 3.1 spec
Machine-readable spec and Postman collection — generate SDKs for any language.
Media
Turn a WhatsApp media id into a download link, or download the file through Wylto.
Why Wylto API
A Meta-grade WhatsApp stack
without the Meta-grade pain.
You get the reach of the official WhatsApp Business API with the ergonomics of a modern developer platform — and a dashboard your ops team can actually use.
Go live in days, not months
Connect your number to the official WhatsApp Business API from the dashboard. No separate BSP account or Meta app to build.
One API, every message type
Text, media, documents, templates, interactives, orders — one consistent payload shape.
Campaigns + API in one
Don't bolt on a separate broadcast tool. Trigger a campaign via API and view the same report in the dashboard.
Webhooks without the plumbing
No Meta webhook server to run. Wylto receives from Meta and posts clean JSON to your URL.
Shared data with the CRM
Contacts created via API show up instantly for your sales team — no sync jobs or ETL to write.
Health + compliance built in
Live phone-number quality, messaging tier, and per-template quality score — all via API.
Any language, any stack
Plain REST + JSON. cURL, Node, Python, Go, PHP, Ruby, Java, .NET — all supported out of the box.
Transparent pricing
Meta conversation charges passed through at cost. No per-API-call markup, no surprise fees.
Powers your product
OTPs, order updates, shipping alerts, receipts, support handoff — all in the same interface.
API Use Cases
What teams ship with the Wylto API
OTP & transactional auth
Send OTPs with WhatsApp authentication templates from your login or checkout flow.
Create and manage the authentication template through the API.
Check delivery state in the campaign report when you send in bulk.
Template: otp_login
body: [{ text: "122335" }]
Everything you need to build.
Public docs, a machine-readable spec and ready-to-run requests. No sales call needed to read them.
API reference
Every endpoint, field and webhook, with examples in cURL, Node.js, Python, PHP and more.
Open the reference →
OpenAPI 3.1 spec
Generate a client in any language, or import it into your API tools.
openapi.json →
Postman collection
Every request ready to run. Add your token and send.
Download collection →
Docs for AI agents
The whole reference as one Markdown file, also listed in our llms.txt, for Cursor, Claude Code and other coding agents.
api.md →
Booking webhooks guide
Get created, rescheduled, cancelled and completed bookings, signed with your secret.
Read the guide →
Help docs
Set up WhatsApp, templates, contacts, workflows and the rest of Wylto.
Open help docs →
Ask ChatGPT about your WhatsApp leads and campaigns.
Connect https://mcp.wylto.com to ChatGPT or another MCP client. Sign in with Wylto, pick your account, and ask in plain English. It is read-only and sees only the account you pick.
- “How did yesterday’s broadcast do?”
- “Which leads has nobody followed up this week?”
- “Which ad brought the most qualified leads this month?”
- “How many chats did each salesperson reply to?”
Frequently Asked Questions
Ship WhatsApp into your product
in a single sprint.
Sign up, connect your WhatsApp number, copy your API token and call your first endpoint. The docs are public, so you can read everything before you start.
Get your API token19
REST endpoints
6
Webhook events
1
Token for every endpoint
