How it works Why OTPly Pricing FAQ Login Get Started Free →
WhatsApp OTP · Made for India

Send OTPs via WhatsApp
in one API call

No DLT registration. No BSP setup. No monthly fees.
Just copy your API key and you're live in minutes.

₹50 recharge = 125 OTPs at ₹0.40 per OTP  ·  Credits never expire

api.adeptcode.in — OTPly
// Send OTP — just one GET request ✨
GET https://api.adeptcode.in/api.php?
    api_key=YOUR_KEY
    &mobile=9876543210
    &otp=4521
 200 OK
"status": "success", "balance": 124
₹0.40
Per OTP
<3s
Delivery Time
1
API Call Needed
98%
WhatsApp Open Rate
Secure API Key Auth
Real WhatsApp Delivery
Pay-per-OTP, No Lock-in
Works with PHP · JS · Python
Delivery Logs Included

Go live in under 5 minutes

No SDK to install. No webhooks to configure. Just a simple HTTP call from your server.

01

Sign Up Free

Create your account in 30 seconds. Get 250 free credits instantly — no credit card needed.

02

Set Your App Name

Go to your profile, type your app or website name. This is shown to users inside the OTP message.

03

Copy API Key

Your unique key is ready on the dashboard. Copy it. Use it in your backend. That's it.

04

OTP Delivered

Your user gets the OTP on WhatsApp in under 3 seconds, branded with your app name. ✅

Why everyone else is complicated

SMS OTP and WhatsApp BSP both work — but the setup is so painful that most small developers just skip OTP verification entirely. We fix that.

What you deal with SMS OTP WhatsApp BSP
(official business API)
OTPly You're here
Getting started DLT registration required
₹5,999/year
Meta business verification
Days of review
Sign up, copy key
Template approval Must submit & wait Must submit & wait No templates needed
Sender ID / number Apply separately, wait for approval Create & verify WhatsApp number We handle it
Monthly/platform fee ~₹5,999/year minimum ₹999+/month subscription Zero — pay per OTP only
Minimum recharge Buy bulk SMS credits ₹1,000+ minimum Start with just ₹50
Hidden taxes on credits 18% GST on SMS cost 18% GST applies Flat ₹0.40, transparent
API setup complexity Moderate Complex — webhooks, billing, API config One GET request
Delivery + open rate ~20% open rate 98% open rate 98% open rate

 OTPly sends via WhatsApp — so your users actually read the OTP — without any of the BSP complexity.

Built for builders who just want it to work

If you've ever skipped OTP verification because the setup was too hard — this is for you.

👨‍🏫

Teachers & Educators

Built an app or website for your students? Add a proper login with OTP — in 10 minutes, not 10 days.

🛒

Small Shop Owners

Running a small e-commerce or booking site? OTP login builds trust and keeps fake accounts away.

💻

Solo Developers

Freelancing or building your own SaaS? Stop worrying about DLT and BSP. Focus on your product.

🤖

Vibe Coders

Built something cool with AI tools? Add OTP verification without touching any complex infrastructure.

🚀

Early-Stage Startups

Validate your idea first. Pay ₹0.40 per real user — not ₹999/month before you even launch.

Everything you need,
nothing you don't

No bloated dashboards. No confusing flows. Built for developers who value their time.

Instant WhatsApp Delivery

WhatsApp messages have 98% open rates vs 20% for SMS. Your users actually see the OTP — under 3 seconds, every time.

Your App's Branding

The OTP message shows your app or website name, not ours. Users see "OTP for YourApp" — looks professional instantly.

Framework Agnostic

PHP, Node.js, Python, Laravel, Django, Next.js — if it can make an HTTP request, it works with OTPly.

Top Up Any Time

Start with ₹50. Credits never expire. No subscriptions, no pressure to buy in bulk before you're ready.

Delivery Logs

Every OTP sent is logged with delivery status, timestamp, and credit balance. Know exactly what's happening.

Rate Limiting Built-in

Automatic per-number rate limits prevent abuse and protect your credits — no extra setup needed on your end.

Copy. Paste. Ship.

Ready-to-use code for every language. Swap YOUR_API_KEY and you're live.

// OTPly — PHP Integration
$otp    = rand(1000, 9999);
$apiKey = 'YOUR_API_KEY';
$mobile = '9876543210';  // 10-digit, no country code

$url = 'https://api.adeptcode.in/api.php?' . http_build_query([
    'api_key' => $apiKey,
    'mobile'  => $mobile,
    'otp'     => $otp,
]);

$response = json_decode(file_get_contents($url), true);

if ($response['status'] === 'success') {
    // Store $otp in session, verify on submit
    $_SESSION['otp']         = $otp;
    $_SESSION['otp_sent_at'] = time();
} else {
    echo "Error: " . $response['message'];
}
// OTPly — Node.js Backend (never expose key in frontend!)
const otp    = Math.floor(1000 + Math.random() * 9000);
const apiKey = 'YOUR_API_KEY';
const mobile = '9876543210';

const url = `https://api.adeptcode.in/api.php?api_key=${apiKey}&mobile=${mobile}&otp=${otp}`;
const data = await (await fetch(url)).json();

if (data.status === 'success') {
    req.session.otp       = otp;
    req.session.otpSentAt = Date.now();
} else {
    console.error('Error:', data.message);
}
# OTPly — Python Integration
import requests, random

otp     = random.randint(1000, 9999)
api_key = 'YOUR_API_KEY'
mobile  = '9876543210'

data = requests.get('https://api.adeptcode.in/api.php', params={
    'api_key': api_key,
    'mobile' : mobile,
    'otp'    : otp,
}).json()

if data['status'] == 'success':
    # Store otp in your session/cache and verify on submit
    print(f"OTP sent! Balance: {data['balance']}")
else:
    print(f"Error: {data['message']}")
# OTPly — cURL (test from terminal)
curl "https://api.adeptcode.in/api.php?api_key=YOUR_API_KEY&mobile=9876543210&otp=4521"

# Response:
# {
#   "status": "success",
#   "code": "OTP_SENT",
#   "balance": 124,
#   "mobile": "+91-9876543210"
# }

Simple, honest pricing

No monthly fees. No hidden charges. Buy credits, use them at ₹0.40 per OTP. Top up whenever you want.

Starter
₹50
= 125 OTPs  ·  ₹0.40 per OTP
0.40 / OTP
  • 125 WhatsApp OTPs
  • API key included
  • Delivery logs
  • Credits never expire
  • Custom app name in OTP
Get Started →
Scale
₹1000
= 2,500 OTPs  ·  ₹0.40 per OTP
0.40 / OTP
  • 2,500 WhatsApp OTPs
  • All Growth features
  • Higher rate limits
  • Dedicated support
  • Credits never expire
Get Started →

 New accounts get 250 free credits on signup — no credit card required.

Common questions

Everything you need to know before integrating.

Yes. Any Indian mobile number starting with 6, 7, 8, or 9 works. The number must have WhatsApp installed and active — which covers almost all smartphones in India.
The API returns a SEND_FAILED error and no credits are deducted. You can handle this in your code and show an appropriate message to your user.
OTPly handles delivery only. You generate the OTP, we deliver it. Your backend stores the OTP in session and verifies what the user enters. This is the correct, secure architecture — you stay in control.
Yes — as long as it stays on your server. Never put the API key in frontend JavaScript or public repositories. If it's ever compromised, regenerate it instantly from your dashboard.
Never. Buy them when you need them, use them at your own pace. No subscriptions, no monthly renewal, no pressure. 250 starting credits can last months for small projects.
Yes. Go to your profile after signing up and set your app or website name. It appears in the OTP message as "This is your OTP for YourApp." — clean and professional.

Start sending OTPs via WhatsApp today

250 free credits on signup. One API call. No DLT, no BSP, no monthly fees. Your users will love it.