Adding phone verification to your app takes an afternoon with a modern OTP API. You need two things: send a code to the user's phone, then verify they entered it correctly.
Choose your integration path
| Path | Best for | Time to ship |
|---|---|---|
| Drop-in widget | Fastest launch, pre-built UI | Minutes |
| REST API | Custom UI, full control | 1–2 hours |
REST API quickstart
- POST /v1/verify/send — send OTP to phone number
- POST /v1/verify/check — validate the code user entered
- Store your secret key (sk_live_…) server-side only
- Use the signed token to confirm verification in your database
Widget quickstart
Add a div container, load the DoneOTP widget script, and call DoneOTP.init() with your public key. On success, send the token to your backend and call /v1/verify/validate-token — never trust the browser alone.
See the full OTP API documentation for authentication, webhooks, rate limits, and error codes.