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
No SDK to install. No webhooks to configure. Just a simple HTTP call from your server.
Create your account in 30 seconds. Get 250 free credits instantly — no credit card needed.
Go to your profile, type your app or website name. This is shown to users inside the OTP message.
Your unique key is ready on the dashboard. Copy it. Use it in your backend. That's it.
Your user gets the OTP on WhatsApp in under 3 seconds, branded with your app name. ✅
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.
If you've ever skipped OTP verification because the setup was too hard — this is for you.
Built an app or website for your students? Add a proper login with OTP — in 10 minutes, not 10 days.
Running a small e-commerce or booking site? OTP login builds trust and keeps fake accounts away.
Freelancing or building your own SaaS? Stop worrying about DLT and BSP. Focus on your product.
Built something cool with AI tools? Add OTP verification without touching any complex infrastructure.
Validate your idea first. Pay ₹0.40 per real user — not ₹999/month before you even launch.
No bloated dashboards. No confusing flows. Built for developers who value their time.
WhatsApp messages have 98% open rates vs 20% for SMS. Your users actually see the OTP — under 3 seconds, every time.
The OTP message shows your app or website name, not ours. Users see "OTP for YourApp" — looks professional instantly.
PHP, Node.js, Python, Laravel, Django, Next.js — if it can make an HTTP request, it works with OTPly.
Start with ₹50. Credits never expire. No subscriptions, no pressure to buy in bulk before you're ready.
Every OTP sent is logged with delivery status, timestamp, and credit balance. Know exactly what's happening.
Automatic per-number rate limits prevent abuse and protect your credits — no extra setup needed on your end.
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" # }
No monthly fees. No hidden charges. Buy credits, use them at ₹0.40 per OTP. Top up whenever you want.
New accounts get 250 free credits on signup — no credit card required.
Everything you need to know before integrating.
SEND_FAILED error and no credits are deducted. You can handle this in your code and show an appropriate message to your user.250 free credits on signup. One API call. No DLT, no BSP, no monthly fees. Your users will love it.