At a glance
Numbrrs gives you UK mobile numbers that receive SMS and voice calls, and pushes them to whatever you actually want to use them with — your email, your CRM, your own application, or just the Numbrrs inbox.
A few of the things our customers use Numbrrs for:
- A dedicated number for sign-up codes and 2FA messages, kept separate from your personal phone.
- Alerts from suppliers and platforms (your hosting bill, your alarm system, your bank), routed straight into a shared inbox or Slack channel.
- A number on your shop window that automatically forwards customer messages to whoever's on duty.
- Voicemail-to-text on a business number, delivered to the right person by transcription.
You can run all of this from the dashboard at app.numbrrs.com, or pull the same data through our API.
Getting started
Sign in or create an account
Sign in with an email and password, or use your Google, Microsoft, or GitHub account. New here? Just hit Sign up on the login page — accounts are free to create. You only pay when you order a number.
Add a phone number
In Numbers → Add Numbers, choose how often you want to be billed:
- Monthly for short-term use
- Quarterly if you'd rather pay less often
- Annual for the lowest per-month rate
Checkout is handled by Stripe. Your number is provisioned within a few seconds of successful payment.
Decide where messages should go
By default, everything goes into your Numbrrs inbox. If you'd like incoming messages copied somewhere else (an email address, your own server), set up a forwarding rule. See Forwarding below.
That's it — you're live.
Your inbox
Everything that lands on one of your numbers shows up under Messages. The inbox is paginated, searchable, and filterable by number, direction, or status.
A couple of small touches worth knowing about:
- Unread badges — new messages are bold until you open them. Bulk-mark as read from the toolbar.
- Tags on each row:
- Unverified means the sender wasn't on your allow list (see Sender lists below). The message is still saved so you can review it.
- Blocked means the sender matched a deny list entry. Same idea — saved, not forwarded.
Voice calls
Now live. The first phase of voice is generally available on every voice-enabled Numbrrs number — inbound call answering with automatic transcription. Outbound dialling and IVR are on the roadmap.
When a voice call comes in on a voice-enabled number, we save:
- The caller's number
- The duration of the call
- An automatic transcription of what was said
- A link to the audio recording
You can read or listen back any time from Voice in the sidebar. Voice events can be forwarded to email or a webhook the same way SMS can — see below.
Forwarding
The Forwarding section is split into four tabs:
- Rules — what gets sent where
- Sender lists — who's allowed to trigger forwarding
- History — every delivery attempt for the last 30 days
- Webhook signing — set up signature verification on your endpoints
Rules
A rule says: "for messages on this number (or all my numbers), matching these senders, on this channel, send to this destination."
When you add a rule you choose:
- Phone number — apply to one specific number, or all of them.
- Channel — SMS, Voice, or both. (Voice only appears if your account is voice-enabled.)
- Destination type — email or webhook URL.
- Sender match — leave as any sender, or narrow it:
- Exact — the full sender, e.g.
+447123456789orAcmeBank. - Starts with — anything with a given prefix, e.g.
+44for UK senders. - Wildcard — a pattern using
*as the placeholder, e.g.Bank*matchesBankIRLandBankNotice.
- Exact — the full sender, e.g.
Matching is case-insensitive. We deliberately don't support regular expressions — they're too easy to get wrong on a hot path.
Limits. You can have up to 5 forwarding rules per channel — five for SMS and five for voice. A rule on both counts against both budgets.
Sender lists
Forwarding rules answer "where does this go". Sender lists answer the question before that: "should this get forwarded at all?"
You configure two kinds of entries:
- Allow — once you've added any allow entries, only senders matching one of them get forwarded. Everyone else gets the Unverified tag in your inbox.
- Deny — senders matching a deny entry are blocked, regardless of any allow entries.
The matchers are the same as on forwarding rules: exact, starts-with, or wildcard. You can have up to 50 entries per channel.
Voice deny entries take effect at the call signalling layer. A blocked voice call is rejected before your number rings — there's no transcription, no recording, and no chance for the caller to leave a message. The blocked attempt still shows in your dashboard so you have a record of it.
Allow-mode voice lists also block calls from withheld or anonymous CLI by default (because they can't be on an allow list). If you'd rather anonymous callers ring through, use a deny-only list instead.
History
Every outbound forwarding attempt — email or webhook — is logged for 30 days. The History tab shows the destination, result, HTTP status (for webhooks), latency, and click-through to the captured request and response bodies.
This is the page to open first when something downstream isn't receiving what you expected.
Webhook signing
If you forward to webhook URLs, you can verify every request really came from us — not from someone who guessed your endpoint.
When signing is set up, every webhook we send carries two headers:
X-Numbrrs-Signature: sha256=<hex>X-Numbrrs-Timestamp: <unix-seconds>
The signature is an HMAC-SHA256 over <timestamp>.<raw-body>. Verify on your side by recomputing it with your signing secret, and reject anything where the signature doesn't match or the timestamp is more than ~5 minutes old (a small replay-protection window).
Get started under Forwarding → Webhook signing:
- Click Generate signing secret.
- Save the value somewhere safe — we show it once and can't show it again.
- Add it to your webhook receiver and verify against it.
Copy-paste Node and Python verification samples are below in the Guides section.
Cancelling a number
Click Cancel on any number row. Your number keeps working until the end of your current paid billing period — no further charges, and the row picks up a Canceling badge with the end date.
Changed your mind? Click Undo cancel any time before that end date. Your subscription resumes on its original schedule, with no double-charge and no break in service.
After the period ends, the number is released back to our network supplier and may be reassigned to other customers. We can't reserve a released number for you and we can't guarantee specific numbers will be available again.
Need to cancel and release a number immediately (a fraud or abuse case, say)? Use the Cancel immediately option in the Stripe billing portal — that ends the subscription and releases the number on the spot.
See Terms of Service §5 for the legal wording around cancellation.
Security
Under Security you can:
- Add passkeys — Touch ID, Face ID, Windows Hello, hardware keys. Faster than passwords and harder to phish.
- Set up a TOTP authenticator — 1Password, Google Authenticator, Authy, Bitwarden, anything that supports the standard.
- Save backup codes for when you don't have your authenticator with you.
With any second factor configured, signing in needs your password plus either a passkey, a TOTP code, or a backup code.
API access
Anything you can do in the dashboard is available over our API:
- Read messages and voice calls
- Configure forwarding rules, sender lists, signing secrets
- Inspect forwarding history
Head to API Docs in the sidebar for the quick start, full endpoint reference, webhook payload shapes, and copy-paste signature verification snippets.
A key created in API Keys is shown once at creation — copy it immediately, save it in your secrets manager, and use it in an Authorization: ApiKey <key> header on each request. Keys expire after 90 days by default; rotate when prompted.
curl https://sms.numbrrs.com/api/v1/messages \
-H "Authorization: ApiKey $NUMBRRS_API_KEY"