NEW

Send SMS from your own brand name

SMS that reaches your users.
One API, worldwide.

Send transactional SMS and one-time passcodes worldwide with your own sender ID, per-network pricing and real-time status callbacks.

$1 free credit · No card required · Pay per SMS

send-sms.ts

const res = await fetch("https://api.otpbay.com/v1/messages/sms",{method: "POST",headers: { Authorization: `Bearer ${key}` },body: JSON.stringify({to: "+447700900123",from: "OTPBAY",body: "Your verification code is 482913",}),});// → 201 Created{"sid": "SM91be4c0d2a7f3e18b6c907c4","status": "queued","sms_segments": 1}

OTPBAY

Text message · now

Your verification code is

482913

Sent from your own sender ID
  1. Queued

    SM91be…07c4 · 1 segment

  2. Sent to carrier

    status: sent

  3. Callback delivered

    POST → your webhook

A plain REST API that fits any stack

Node.js
Python
Go
PHP

Features

Everything you need to send SMS at scale

Send to phones worldwide under your own brand name, track every message, and pay only for what you send.

Live in minutes

Create a project, grab an API key and send your first SMS before your coffee cools.

OTPBAYdefault
ACMEBANKapproved
SHOPLYapproved

Your brand as sender

Register alphanumeric sender IDs so every SMS arrives under your name, not a random number.

Live

SMS analytics

Follow volume, success rate and spend by country and network.

Every SMS, one log

Search every message and verification with live status, segments, cost and timestamps.

SM91be…07c4sent
SM2d0a…5e18sent
VE6f1c…a912approved
SM0c7f…b3a1queued
SM88e3…19fdsent

SMS to every corner of the map

International SMS routes priced per country and mobile network — no minimums, no contracts.

Platform

The hard parts of SMS, handled

Status tracking, webhooks, per-network pricing and a managed OTP API, so your backend only asks one question: did it send?

POST /v1/verifications

201

Generate

Random code with expiry

code ready

Send SMS

From your sender ID

sent

Check

User enters the code

approved

Verify API: OTP without the plumbing

One call generates the code and sends it by SMS. Expiry, attempt limits and code checks are handled for you.

queued

Real-time status

Poll any SID or get told the moment an SMS moves from queued to sent.

POST
status: sent

Status webhooks

Pass a callback URL per request and every status change is pushed to your backend.

+44

by country

Vodafone

by network

Per-network pricing

Rates are set per country and mobile network, so you know the cost of every SMS.

Projects, teams & keys

Separate apps into projects, invite teammates and manage API keys per project.

Developers

Send your first SMS in minutes

A small REST API with bearer-token auth and JSON everywhere. No SDK required.

Send any SMS with a single request, or use Verify and let OTPBAY generate, send and check one-time codes for you. Every message gets a SID you can poll or follow through webhooks.

  • POST/v1/messages/sms

    Send an SMS to any number from your sender ID.

  • GET/v1/messages/sms/:sid

    Look up status, segments and cost of a message.

  • POST/v1/verifications

    Generate a one-time code and send it by SMS.

  • POST/v1/verifications/:sid/check

    Check the code the user entered.

# Send an SMScurl -X POST https://api.otpbay.com/v1/messages/sms \  -H "Authorization: Bearer $OTPBAY_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "to": "+447700900123",    "from": "OTPBAY",    "body": "Your order #1042 has shipped."  }'# Or let Verify generate and send the codecurl -X POST https://api.otpbay.com/v1/verifications \  -H "Authorization: Bearer $OTPBAY_API_KEY" \  -H "Content-Type: application/json" \  -d '{ "to": "+447700900123" }'

Use cases

Built for every message that matters

From one-time passcodes to order updates, send the texts your users are waiting for.

Confirm every new account owns a real phone number before it touches your product.

Sign-up verificationVerify API

Add a second factor to sign-in without asking users to install an authenticator app.

Login & 2FAVerify API

Let users recover access in seconds with a short-lived code instead of fragile email links.

Password resetVerify API

Step up high-value orders with a one-time code and cut chargebacks from stolen accounts.

Checkout confirmationVerify API

Notify users instantly about new logins, password changes and payouts.

Account & security alertsSMS

Confirm every new account owns a real phone number before it touches your product.

Sign-up verificationVerify API

Add a second factor to sign-in without asking users to install an authenticator app.

Login & 2FAVerify API

Let users recover access in seconds with a short-lived code instead of fragile email links.

Password resetVerify API

Step up high-value orders with a one-time code and cut chargebacks from stolen accounts.

Checkout confirmationVerify API

Notify users instantly about new logins, password changes and payouts.

Account & security alertsSMS

Re-verify users who sign in from a new device or location before granting access.

Device changesVerify API

Send couriers and customers a code to confirm the right parcel reached the right person.

Delivery handoffSMS

Confirm appointments and send reminders by SMS to cut no-shows.

Booking remindersSMS

Trigger a verification only when your risk signals flag a suspicious action.

Fraud step-upVerify API

Tell customers the moment an order is confirmed, shipped or out for delivery.

Order & shipping alertsSMS

Re-verify users who sign in from a new device or location before granting access.

Device changesVerify API

Send couriers and customers a code to confirm the right parcel reached the right person.

Delivery handoffSMS

Confirm appointments and send reminders by SMS to cut no-shows.

Booking remindersSMS

Trigger a verification only when your risk signals flag a suspicious action.

Fraud step-upVerify API

Tell customers the moment an order is confirmed, shipped or out for delivery.

Order & shipping alertsSMS

Pricing

Pay per SMS. Nothing else.

No subscriptions, no minimums, no seat fees.

Global SMS

Core product

Reach any phone over international routes with your own sender ID.

Per segment, by country & network

Local rates

See rates

Custom alphanumeric sender IDs

Per-country, per-network rates

Real-time status callbacks

No minimums or contracts

Verify API

Managed OTP over SMS — code generation, expiry, attempt limits and checks.

Plus the SMS cost
$0.02/verificationStart free

Codes sent from your sender ID

Expiry & attempt limits built in

Fee refunded if the code isn't sent

Status webhooks

Telegram add-on

Optional: deliver codes inside Telegram first, with SMS as the fallback.

Flat worldwide rate
$0.02/messageStart free

Same price in every country

Automatic SMS fallback

Refunded if not delivered

Enable per project

Start with $1 of free credit

Test sending to real phones before you commit. Top up your balance anytime — no subscription needed.

FAQ

Questions, answered

Everything you need to know about sending SMS and verifying users with OTPBAY.

Can't find what you're looking for? Contact us

One API call.
Users worldwide.

Create an account, grab an API key and send your first SMS on us — every new account starts with $1 of free credit.