How it works Features Pricing Try it free Sign in Start free →
Now live — API v1.0

Verify once.
Trust always.

Phone verification via WhatsApp, Telegram, SMS, or Email. No expensive per-message charges. Flat monthly pricing. Works worldwide.

Telegram ✉️ Email OTP 📱 SMS fallback
3Free channels
$0Per verification
99.9%Uptime
<1sResponse
akidotp — verify.js
// Start a verification session
 
const res = await fetch(
  'https://akidotp.com/api/mobileverify/start',
  { method: 'POST',
    headers: { 'X-API-Key': YOUR_KEY },
    body: JSON.stringify({
      phone: '+447911234567'
    }) }
);
 
{ "whatsappLink": "https://wa.me/...",
  "whatsappPersonalLink": "intent://...",
  "whatsappBusinessLink": "intent://...",
  "telegramLink": "https://t.me/..." }
// ✓ Android gets per-app links — no wrong-app mismatch

Live demo — no signup needed

Try a real verification now

Try WhatsApp or Telegram verification instantly — or verify your email with a real OTP code.

Enter your mobile number and tap a channel. The verification happens right here — no redirects.

🇪🇺 GDPR compliant. Your number is used only for this demo.

or

Simple by design

Up and running in minutes

No complex setup. No per-message billing. Just an API key and three steps.

01
🔑
Get your API key
Sign up free and get your key instantly. No credit card required.
02
📲
Start a verification session
Call our API with a phone number. We return deep links for WhatsApp and Telegram.
03
User sends the code
User taps the button. Their app opens with the code pre-filled. They tap send.
04
Verified instantly
Your app receives a real-time webhook. User is verified. No polling needed.

Why AkidOTP

Built different

Most verification APIs charge per SMS. We use the free messaging apps your users already have — with SMS as a last-resort fallback.

💬
WhatsApp verification
User sends a code via WhatsApp — the app they already have open all day. Near-zero cost to you. Works everywhere WhatsApp works. On Android, the API returns separate links for WhatsApp Personal and WhatsApp Business so users always open the right app — preventing number mismatch errors.
✈️
Telegram verification
Completely free. User sends code to our bot in one tap. Instant verification. Popular across the Middle East, Central Asia, and Europe.
✉️
Email OTP fallback
Always available. When users have neither WhatsApp nor Telegram, email OTP is the safety net. Free tier includes 1,000/month.
📱
SMS fallback
For the rare case where a user has no WhatsApp, Telegram, or email — SMS is the last resort. The user sends a pre-filled text message to verify their number. Available on Starter plans and above with monthly limits to keep your costs predictable.
💰
Flat monthly pricing
No per-message charges. No surprise bills at month end. Pay a flat fee and verify as many users as your plan allows.
🌍
Works worldwide
SMS delivery fails in many countries. WhatsApp and Telegram work everywhere. AkidOTP reaches users that traditional SMS providers cannot.
🔒
Secure by default
Phone number ownership verified at the messaging app level. Sessions expire in 2 minutes. Anti-forwarding checks built in.

Channel comparison

What your users pay per verification

AkidOTP charges you a flat monthly fee. But SMS costs your end users money from their carrier. That's why WhatsApp and Telegram are better — free for everyone.

Channel Cost to you Cost to your user Best for
💬 WhatsApp $0.00 Free MENA, Europe, Asia, Africa
✈️ Telegram $0.00 Free Central Asia, Eastern Europe, MENA
✉️ Email $0.00 Free Universal fallback
📱 SMS Included in plan ~$0.04–$0.23 Last resort — no apps, no email

Estimated international SMS cost per message for your users (paid by user to their carrier)

🇱🇾 Libya
~$0.23
🇸🇾 Syria
~$0.18
🇪🇬 Egypt
~$0.04
🇦🇪 UAE
~$0.17
🇸🇦 Saudi
~$0.20
🇲🇦 Morocco
~$0.25
🇹🇳 Tunisia
~$0.12
🇩🇿 Algeria
~$0.15
🇰🇼 Kuwait
~$0.10

Estimates based on standard carrier rates for international SMS. Actual costs vary by carrier, plan, and promotions. SMS costs are paid by your end user — not by you. WhatsApp and Telegram are always free for both sides.

Transparent pricing

Simple. Flat. No surprises.

Start free. Scale when ready. No per-message charges ever.

Free
$0/mo
Forever free
1,000 verifications/month
  • Email OTP
  • API access
  • API documentation
  • Community support
  • SMS verification
Get started
Most popular
Starter
$9/mo
Billed monthly
10,000 verifications/month
  • WhatsApp verification
  • Telegram verification
  • Email OTP
  • 📱 SMS fallback (50/month)
  • Usage dashboard
  • Priority support
Start free trial
Growth
$29/mo
Billed monthly
100,000 verifications/month
  • Everything in Starter
  • 📱 SMS fallback (200/month)
  • Webhook events
  • Analytics & logs
  • Dedicated support
Get started
Enterprise
Custom
Contact us
Unlimited
  • Everything in Growth
  • 📱 Unlimited SMS
  • Custom SLA
  • White-label API
  • On-premise option
  • 24/7 support
Talk to us

Accepted Payment Methods

BTC
USDT
ADA

Secure payments · No card data stored · Crypto verified on-chain

Developer first

Integrate in 10 minutes

Three ways to integrate. Pick the one that fits your stack.

📋
Copy & paste snippet
Add verification to any website with a single HTML snippet. No build step required.
📦
npm install akidotp
Official JS SDK for Node.js, React, and Next.js. TypeScript included.
🌐
REST API — any language
Python, PHP, Ruby, Go, Dart — if it can make HTTP requests, it works.
verify.js
// Start verification — returns WhatsApp + Telegram links const res = await fetch('https://akidotp.com/api/mobileverify/start', { method: 'POST', headers: { 'X-API-Key': 'YOUR_API_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ phone: '+447911234567' }) }); const data = await res.json(); // data.whatsappLink — universal (iOS, desktop, fallback) // data.whatsappPersonalLink — Android intent → WhatsApp Personal // data.whatsappBusinessLink — Android intent → WhatsApp Business // data.telegramLink — Telegram bot link const isAndroid = /android/i.test(navigator.userAgent); if (isAndroid && data.whatsappPersonalLink) {   // Show a chooser — let user pick Personal or Business WhatsApp   // This prevents "Number mismatch" on dual-WhatsApp devices   showWhatsAppChooser(data.whatsappPersonalLink, data.whatsappBusinessLink); } else {   // iOS / desktop — open universal link directly   window.open(data.whatsappLink, '_blank'); } // User taps, sends code, verified ✓

Android smart routing

Two WhatsApp apps. Zero confusion.

In the MENA region, many users have both WhatsApp Personal and WhatsApp Business installed on the same phone — often on different numbers. The AkidOTP API returns separate intent links for each app. Show your users a simple chooser and eliminate number mismatch failures entirely.

WHAT YOUR USERS SEE ON ANDROID
Choose your WhatsApp
Make sure to open the app linked to your number
📱
WhatsApp Personal
com.whatsapp
💼
WhatsApp Business
com.whatsapp.w4b
iOS users see a single button — only one WhatsApp exists on iOS
API returns 3 WhatsApp links
whatsappLink       → universal (iOS + desktop)
whatsappPersonalLink → Android: WhatsApp Personal
whatsappBusinessLink → Android: WhatsApp Business
Detect Android — show the right UI
const isAndroid = /android/i.test(navigator.userAgent);

if (isAndroid && data.whatsappPersonalLink) {
  // show 2-button chooser
  openPersonal(data.whatsappPersonalLink);
  openBusiness(data.whatsappBusinessLink);
} else {
  // iOS / desktop
  window.open(data.whatsappLink);
}
If app isn't installed — graceful fallback
If the user only has WhatsApp Personal and taps the Business button, Android automatically opens the universal wa.me link instead. Nothing breaks.

Ready to verify your
first user?

Start free. 1,000 verifications/month. No credit card needed.

Create free account Talk to sales