SMSLab
Free while in beta

See every text your app sends.

SMSLab is a Twilio-compatible SMS emulator. Point your app's Twilio base URL at it and your texts land on tiled virtual phones you can reply from. Replies come back as real, signed webhooks. No real sends, no trial limits, nothing delivered to a handset.

The problem

Testing SMS flows is painful. Real sends cost money and hit real phones. Twilio's trial blocks custom message text. And you can't easily see what your app sent, or script a reply back through your webhook. So SMS stays the least-tested part of the stack.

How it works

1

Point your app

Set TWILIO_API_BASE to SMSLab. Same request, same auth, same code.

2

Watch it land

Your text appears live on a tiled virtual phone, with a full event strip.

3

Reply back

Type on a phone; SMSLab sends your app a real, signed Twilio-style webhook.

What you get

Tiled virtual phones

Four distinct devices per workspace; messages appear live, links are tappable.

Twilio-compatible API

The real Messages.json endpoint, basic auth, form-encoded, matching error codes.

Real signed webhooks

Replies POST to your app with a valid X-Twilio-Signature your validator accepts.

Live event strip

Every API call in and webhook out, with inspectable request/response payloads.

Your own workspace

Sign up and get an isolated account: SID, token, numbers, webhook URL.

Synthetic and safe

An emulator, not a carrier. Nothing is ever delivered to a real phone.

A drop-in base-URL swap

Your Twilio code doesn't change. Just point it here.

curl -u ACCOUNT_SID:AUTH_TOKEN \
  --data-urlencode To=+15552000001 \
  --data-urlencode From=+14704678554 \
  --data-urlencode Body=hello \
  https://smslab.subdot.link/2010-04-01/Accounts/ACCOUNT_SID/Messages.json

Read the full API reference →

Pricing

Free while in beta

Everything above, no limits worth mentioning. Paid plans will arrive later; beta workspaces keep working.

Create your workspace

Test your SMS the way you test everything else.

Create your workspace