Verify for developers
Confirm signups, 2FA logins, and sensitive account actions with one-time passcodes over SMS, WhatsApp, and email. Convert more users with automatic channel fallback and built-in attempt limits, without maintaining your own OTP tables.
Verify your number.Number verified.
Enter the 6-digit code sent to ••• ••• 0123.Securely signed in to your Harbor account.
Verifying your code…Your number stays private.
Trusted every day by teams that
build world-class software.
From a code to confirmed.
Start a verification and check the user’s code in two API calls, with code generation, hashing, and expiry handled for you. Test and ship verification flows from your application code, terminal, or AI assistant via Bird SDKs, CLI, and MCP.
Send a verification code to +15551234567. When I provide the code the recipient entered, check it and tell me whether it matched.
Bird MCP
2 connected actionsverify_verifications_create
Pendingverify_verifications_check
MatchedRecipient confirmed
The code matched. Your application decides access.
Verification
vrf_01k6b3…1048Send a verification code to +15551234567. When I provide the code the recipient entered, check it and tell me whether it matched.
Bird MCP
2 connected actionsverify_verifications_create
Pendingverify_verifications_check
MatchedRecipient confirmed
The code matched. Your application decides access.
Verification
vrf_01k6b3…1048Confirm the user.
Skip the OTP tables.
Check the passcode directly against the user’s phone number or email address without storing verification IDs or building your own state tables. Bird handles code hashing, expiration windows, and remaining attempt counts so your sign-in flow knows right away whether to grant access or ask the user to try again.
Check the code
Harbor
POST/v1/verify/verifications/check
200{ "success": true, "reason": null, "attempts_remaining": null }
Check the code
Harbor
POST/v1/verify/verifications/check
200{ "success": true, "reason": null, "attempts_remaining": null }
Check the code
Harbor
POST/v1/verify/verifications/check
200{ "success": true, "reason": null, "attempts_remaining": null }
Switch channels.
Keep the signup moving.
Users abandon signups when a carrier delays a text or WhatsApp isn’t installed on their phone. Automatically fall back to the next channel on failure or let users request another delivery method, while keeping the original expiration window, attempt limit, and earlier codes valid in the same session.
+1 555 123 4567
Lifecycle
+1 555 123 4567
Lifecycle
+1 555 123 4567
Lifecycle
Block brute-force guesses and
see why a sign-in stalled.
Enforce attempt limits, resend cooldowns, and expiration windows automatically so attackers cannot guess codes or run up your messaging bill. When a customer cannot get in, inspect the full timeline from carrier delivery to code check to see whether the message failed, the timer ran out, or attempts were exhausted.
+1 555 123 4567
Lifecycle
+1 555 123 4567
Lifecycle
Explore Verify.
Multi-channel passcodes, automatic fallback, and fraud controls in one integration.
Send a one-time passcode and check the user’s input in two API calls without storing verification IDs.
SMS verificationSend texts formatted for mobile autofill across 40 languages, with automatic sender selection by country.
Email verificationVerify email addresses at signup or password reset using a shared sender or your own verified domain.
WhatsApp verificationDeliver passcodes with one-tap copy buttons using Bird’s pre-approved WhatsApp sender or your own business number.
Fallback deliverySwitch between WhatsApp, SMS, voice, and email when a code is delayed without resetting the session timer.
Country controlsDisable countries you do not serve to block SMS pumping and set the channel order for each market.
Sender brandingLaunch immediately with Bird Verify or Authifly, or send codes from your own domain, SMS Sender ID, and WhatsApp number.
Code controlsConfigure 4-to-8-digit codes, expiration windows, retry limits, and resend cooldowns to stop brute-force guessing.
Verification logsSearch verifications by status and inspect each channel attempt to see why a customer could not sign in.
WebhooksStream signed delivery and verification events to your backend to track conversion rates and alert on failures.
Scale without
losing control.
Organize teams in workspaces, control API access, and trace changes through audit logs.
Organization
Harbor
Access stays in its workspace.
Production/API keys
Signup service
ActiveAlex Lee
Admin
Today · UTC
Audit log
Organization
Harbor
Access stays in its workspace.
Production/API keys
Signup service
ActiveAlex Lee
Admin
Today · UTC
Audit log
Organization
Harbor
Access stays in its workspace.
Production/API keys
Signup service
ActiveAlex Lee
Admin
Today · UTC
Audit log