Verify FAQ

How do I add verification to my app?
Two calls: create a verification for a recipient, then check the code they enter. The check is by recipient, so there's no verification id to store between the two: the configuration id (a constant) and the address are all you need.
Which channels can I verify over?
Email, SMS, and WhatsApp today. Voice is rolling out as an additional channel, and the channel order, sender, and which channels are on are configurable per country, without a code change.
Do I have to store a verification id?
No. Re-sending is the same create call (create-or-retry), and checking is by the recipient address, so a verification needs no per-request state on your side. An id is returned if you want to read status later, but it's optional.
Who do my users see the code from?
One of two Bird-managed identities, and you pick per channel: Bird Verify by default, or Authifly. Email arrives from otp@verify.bird.com, from Authifly's otp@verify.authifly.com, or from your own verified domain, and WhatsApp sends from that identity's business number. SMS shows the identity as its sender ID wherever a country permits a branded one, and a short code or local number where one is required. Authifly is the one to pick when you want no platform vendor visible to your users at all, and authifly.com is a public page that reassures recipients Authifly sends legitimate one-time codes on a business's behalf. Authifly is operated by Bird B.V.

Start with one channel.
Add the others when you're ready.

A test API key is yours immediately. Production unlocks when you add a payment method and verify a sender.

Using Claude Code, Cursor, or Codex? Copy a setup prompt and your agent installs the Bird CLI and skills for you. Pick yours:

Cursor