WhatsApp Business API for developers

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.

REST + JSON
Bearer token
OpenAPI 3.1 spec
POST /api/v1/wa/send
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 👋" }
    }
  }
200 OK · { success: true }

+91 98xxxxxx

delivered · read

live

Hi 👋

12:04 ✓✓

Your OTP is 122335

valid for 5 minutes.

12:04 ✓✓

Thanks! Got it ✅

12:05

webhook fired
on.new.message
Quickstart

Send your first WhatsApp message in one request.

  1. 1. Connect your number. Sign up, connect your WhatsApp number to the official API from the Wylto dashboard and get templates approved.
  2. 2. Copy your API token. CRM → Settings → API Settings. Send it as Authorization: Bearer <token>.
  3. 3. Call the API. Plain REST and JSON at https://server.wylto.com, from any language.
Read the full API reference →
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.

Step 1

Authenticate

Grab a Bearer token from the Wylto dashboard. One token authorizes messaging, contacts, templates, campaigns, and webhook management.

Bearer auth

Authorization:
Bearer $WYLTO_TOKEN

one token, every endpoint
Step 2

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.

POST /wa/send
to: "+919876012345"
type: "template"
name: "order_update"
textimagedoctemplateinteractive
Step 3

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.

Contacts API
POST /contact
PUT /contact/:id
DELETE /contact/:id

sync from your app → same contact card your reps see

Step 4

Work with templates

List, create, and inspect WhatsApp templates — including live quality scores — so you can ship marketing and utility templates from code.

Templates
order_confirmationAPPROVED
otp_loginAPPROVED
promo_januaryAPPROVED
Create from API
Step 5

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.

Campaign10,000

POST /campaigns

contacts.csv + template

10k

sent

95%

delvd

58%

read

6%

reply

Step 6

Receive webhooks

Get every incoming WhatsApp message, and booking events, POSTed to your URL as JSON. Booking webhooks are signed with your secret.

Webhook events
on.new.message
on.message.status
on.button.click

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.

Get started today
OTP delivery
yourapp → wylto

Template: otp_login

body: [{ text: "122335" }]

delivered ✓✓
Wylto MCP server

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

WhatsApp API

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 token

19

REST endpoints

6

Webhook events

1

Token for every endpoint