WhatsApp verification & messaging API

Codes and messages on WhatsApp, from one API.

Vylo OTP delivers verification codes over WhatsApp — and sends ordinary messages from the very same number. No SMS fees, no gateway to run. Send a code, verify it, notify your customer. You're billed only for messages the gateway accepts.

How it works

Three steps between you and a verified user.

1

You request a code

Your backend calls POST /otp/send with the user's phone. We generate a secure random code and store only its hash.

2

We deliver on WhatsApp

The code is sent from your connected WhatsApp number through our gateway. Your user reads it in WhatsApp.

3

You verify it

Your backend calls POST /otp/verify with the phone + code. Single-use, time-limited. Done.

More than codes

The same connected number sends ordinary WhatsApp messages too.

Send any text

POST /messages/send takes a phone and up to 1000 characters — order updates, reminders, receipts. One request, one recipient.

Same number, same price

Messages go out from your own WhatsApp number and cost exactly what a code costs. Refused sends are never billed.

Your own message log

GET /messages lists everything that left your number — who, when, accepted or refused, and what it cost. The text itself is never stored.

Messaging is switched on per account: ask us to enable it once you are set up. You are the sender of record, so recipient consent is yours to hold.

Simple pricing

Pay only for what you send.

$0.01

per delivered message

Failed deliveries are never billed. Prices can be tailored per account.

$0

to start

No monthly fee, no setup cost. Create an account and try it.

pay as you go

Track usage, cost, and balance any time from your dashboard.

Quick start

Authenticate with your API key (starts with otpsk_) in the Authorization header. Server-side only — never ship the key to a browser or app.

# 1) Send a code
curl -X POST https://otp.vylo-tech.com/otp/send \
  -H "Authorization: Bearer otpsk_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phone":"9647501234567"}'

# 2) Verify what the user typed
curl -X POST https://otp.vylo-tech.com/otp/verify \
  -H "Authorization: Bearer otpsk_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phone":"9647501234567","code":"482913"}'

# 3) Send an ordinary WhatsApp message from the same number
curl -X POST https://otp.vylo-tech.com/messages/send \
  -H "Authorization: Bearer otpsk_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phone":"9647501234567","message":"Your order #1042 has shipped."}'

# 4) Read your message log (who, when, status, cost)
curl https://otp.vylo-tech.com/messages?source=message \
  -H "Authorization: Bearer otpsk_YOUR_API_KEY"

Endpoints

MethodPathWhat it does
POST/otp/sendGenerate + deliver a code to a phone.
POST/otp/verifyCheck the code the user entered.
POST/messages/sendSend an ordinary WhatsApp message (1-1000 chars).
GET/messagesYour message log — who, when, status, cost.
GET/usageYour send counts, cost, and balance.