Skip to content
OTPRun

Verification codes

Verification codes in WhatsApp.Delivered in seconds, checked for you.

OTPRun generates the code, sends it through WhatsApp in the user's language, falls back to Telegram if WhatsApp does not confirm delivery in time, and checks what the user enters. Codes are never stored in plain text.

The free plan includes one WhatsApp number. No card required.

What you get

  • Fallback between channels

    If WhatsApp does not confirm delivery within a few seconds, the same code goes to Telegram. One code and one check, wherever it was read.

  • Tap-to-verify

    Instead of sending a code, give the user a link: they tap it and send the code to you from their own WhatsApp. No outgoing messages and no risk for your number.

  • Security built in

    Hashed codes, a limit on wrong attempts, expiry, and limits per phone number and IP address against SMS pumping and brute force.

One request

Create a verification with the phone number, show a code field, then check what the user typed. The answer is verified, wrong, expired or locked.

Send and check a code
curl -X POST https://otprun.com/v1/verifications \
  -H "Authorization: Bearer $OTPRUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"to":"+77010000000","app_name":"Acme"}'

curl -X POST https://otprun.com/v1/verifications/$ID/check \
  -H "Authorization: Bearer $OTPRUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"code":"482913"}'

How to start

  1. Create a free account and copy the project API key.

  2. Link a WhatsApp number or use the OTPRun Telegram bot.

  3. Call POST /v1/verifications on sign-up and POST /v1/verifications/{id}/check when the user enters the code.

Questions

How is this cheaper than SMS?

Codes through your linked WhatsApp number and through Telegram have no per-message fee. You pay a flat monthly price instead of a few cents for every SMS.

What if the user does not have WhatsApp?

The routing policy of your project moves on to the next channel, by default Telegram. You can also check numbers in advance with POST /v1/numbers/check.

In which languages are codes sent?

Message templates are built in for 24 languages, and you can write your own text with placeholders for the code, the app name and the expiry time.

How long is a code valid?

Five minutes by default. You can set from 30 seconds to 15 minutes, a code length from 4 to 8 digits and the number of attempts.

Ten minutes to the first code.One key, one call, done.

Create a workspace, link a number or use the Telegram bot, and send the first verification from the dashboard.

Create a free account