Documentation
Sign inGet started

Verify overview

Bird Verify confirms that a user controls an email address or phone number. Ask Bird to send a one-time passcode, collect it in your app, and ask Bird whether it matches. The flow uses two API calls: POST /v1/verify/verifications sends the code, and POST /v1/verify/verifications/check checks it. Bird's shared senders require no sender registration or template setup. Email, SMS, and WhatsApp send under one of two Bird-managed identities, Bird Verify by default or Authifly, which keeps any platform vendor out of sight of your users; Telegram uses its own verified notification account. Senders and branding covers the choice.

How a verification works

You create a verification with a recipient: an email address, a phone number, or both. Bird generates a numeric passcode and delivers it over the recipient's channels. An email address gets the code by email; a phone number gets it by SMS or WhatsApp, in the order and availability your country configuration sets for the destination country. The user types the code into your app, and you submit it to the check endpoint, which answers success: true or false with a reason.
A verification walks a small lifecycle: it starts pending, and ends verified (a correct code arrived in time), failed (too many wrong attempts), or expired (the window elapsed). The Verifications page shows every verification and its state; each state and reason is covered in Sending verifications.

The Verify app in the dashboard

In the dashboard, Verify is one of the workspace's apps. Its pages, and where each one's guide lives:
PageWhat it's for
VerificationsEvery verification your workspace created, with status, recipient, channel, and timing; see Sending verifications
CountriesPer-country delivery: which channels are used, in what order, and whether a country is enabled at all; see Country configuration
ConfigureCode lifetime, attempt limits, resend cooldown, and the sender each channel uses; see Sending verifications and Senders and branding

Visibility

The Verifications page lists every verification in the workspace and opens each one's recipient, channel plan, and timing details. Programmatically, the check response carries the verification's current state. Subscribe to Verify events for creation, delivery, and successful verification updates. List and read endpoints are available to the dashboard but not the public API.

Channels

Verify delivers codes over four channels. Which one a recipient gets depends on the recipient type and, for phone numbers, your country configuration.
ChannelRecipientHow it's delivered
EmailEmail addressSent from the Bird Verify or Authifly shared address; point it at your own verified sending domain any time
SMSPhone numberDelivered under Bird Verify or Authifly, as a branded sender ID or a local number depending on the destination
WhatsAppPhone numberSent from the Bird Verify or Authifly business number as an authentication-template message
TelegramPhone numberDelivered by the Telegram Gateway to a number registered with Telegram, from its own verified notification account
For a phone recipient, WhatsApp is tried first and SMS acts as a fallback in most countries, though some default to SMS first. Telegram sits after SMS and before email in the platform fallback order. You can change the order or turn off a channel per country. If a send fails, delivery advances to the next channel in the plan. You can also advance it when a user reports that the code did not arrive; see Send the code on another channel. Senders and branding shows each message and the available sender controls.

Defaults and limits

Every workspace starts on Bird's platform defaults for the code itself (length, lifetime), the check attempt limit, and the resend cooldown. Each is adjustable in the dashboard under Configure, and code length also per request; the values and ranges live in Verification settings. On top of these sit abuse guardrails you don't configure: per-recipient send and check caps, listed in Abuse guardrails.

Next steps

PageWhat it covers
Sending verificationsThe send and check calls, statuses, settings, and limits
Country configurationEnabling countries and setting per-country channel order and senders
Senders and brandingWhat the code messages look like and how to send from your own domain
EventsThe verification lifecycle and delivery events, and their webhook payloads
AuthenticationAPI keys and regional hosts
API reference: create a verificationSend-endpoint schema and error details
API reference: check a codeCheck-endpoint schema and error details