On this page
A Signal number check can tell you one thing: whether a Signal account can be found through a phone number you already hold. It can't reveal usernames, names or profiles, and it can't find people who chose not to be found by their number, which Signal has allowed since 2024. So a "yes" is a useful sign that a number is in real use; a "no" is weak evidence. This guide explains exactly what the check can see, why unknowns are more common than on other apps, and when you shouldn't use it at all.
How does Signal's phone-number model work today?
Signal still needs a phone number to create an account, confirmed by a code. What changed in February 2024 is how visible and findable that number is. Signal's announcement introduced three changes (Signal, 2024):
- Numbers hidden by default. "Your phone number will no longer be visible to everyone you chat with by default." People who already have your number saved still see it.
- Usernames. You can create a username to start chats without sharing your number, though "you will still need a phone number to sign up for Signal".
- A findability setting. Under Who can find me by my number, you can choose "Nobody". Then someone who enters your number "will not be able to message or call you, or even see that you're on Signal".
The default for findability is still "Everybody", which is how Signal worked for years. So many accounts remain findable by number. But the people who switch it off are precisely the ones a number check can't see, by design.
What can a Signal check tell you?
For a number you hold, the check returns one of three answers, with checked_at:
| Answer | Meaning | How much weight to give it |
|---|---|---|
registered: true | A Signal account is findable through this number | Moderate to strong: the number passed Signal's verification at some point |
registered: false | No findable account for this number | Weak: may be "not on Signal" or "not findable by number" |
registered: null (unknown) | No conclusive answer | None: missing data, not charged |
That makes Signal useful as corroborating evidence that a number belongs to a real person with a smartphone. Numbers bought in bulk to open fake accounts are rarely set up on several messaging apps. Together with WhatsApp and Telegram results and a carrier lookup, a Signal true adds confidence. See our OTP and sign-up fraud use case.
What can't it tell you?
More than on most apps. A Signal check can't tell you:
- Whether the person uses Signal. They may have set findability to Nobody, or registered with a different number.
- A username or identity. We never look up usernames and never return profile names, photos or "about" text. The check can't be used to find out who is behind a number.
- Whether they'd accept a message. Even a findable account holder receives a message request they can accept, reject or block.
- Anything about activity. Registration isn't use. Many people install Signal for one group and rarely open it.
Signal is run by a non-profit foundation and collects very little data about its users, so there's simply less to observe than on other platforms. That's a feature for its users, and it's the right frame for reading results.
Why are unknown and "not registered" answers more common?
Three reasons, in order of impact:
- Findability set to Nobody. Accounts that opted out of number discovery answer
falseor unknown. - Lower adoption in many markets. Signal is widely known but, in most countries, used by fewer people than the dominant messenger. A
falsein a market where few people use Signal says almost nothing. - Timeouts. As with any check, some answers don't arrive in time. They come back
unknownwith a reason and are free.
The consequence for your rules: never add risk points for a Signal false on its own. Use Signal only as a positive signal, and only alongside checks that carry more information. You're not charged for inconclusive results (unknown, unsupported country, timeout, invalid, duplicate), so running it costs nothing when it can't answer.
How does Signal compare with WhatsApp and Telegram checks?
The three apps look similar from the outside, but their phone-number models differ, and so does what a check can tell you (a dash means we don't make a claim here):
| Telegram | Signal | ||
|---|---|---|---|
| Phone number needed to sign up | Yes | Yes | Yes |
| People can hide from search by number | — | Yes | Yes ("Nobody", since 2024) |
| Usernames to chat without a number | — | Yes | Yes (since 2024) |
| Business messaging | Yes (Business Platform) | Bots and a verification-code gateway | No business API |
| Check modes | real time + bulk | real time + bulk | bulk only |
Weight of false | Strong where WhatsApp is common | Weak | Weak |
So if you need a channel decision, WhatsApp and Telegram checks are the ones that matter; see the WhatsApp API guide and the Telegram guide. Signal's value is narrower: extra corroboration that a number belongs to a real smartphone user. The messaging-app checks guide compares all twelve checks.
How do you run a Signal check?
Signal runs in bulk jobs only. POST /v1/lookup refuses it with 403 service_disabled and the message "The check 'signal.registered' is available in bulk jobs only (POST /v1/jobs)." Create a job with the test numbers:
curl https://api.mobilevalidate.com/v1/jobs \
-H "Authorization: Bearer $MOBILEVALIDATE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: signal-guide-001" \
-d '{"numbers": ["+447700900001", "+447700900002", "+447700900003"],
"checks": ["signal", "whatsapp", "telegram"]}'
# then: GET /v1/jobs/{id}?wait=30 and GET /v1/jobs/{id}/results?service=signal®istered=trueA real test-mode job with ["signal"] alone reported "progress": {"total": 3, "checks_total": 3, "done": 3, "conclusive": 2, "non_billable": 3}, with these signal.registered answers:
{"e164": "+447700900001", "status": "completed", "registered": true, "reason": null}
{"e164": "+447700900002", "status": "completed", "registered": false, "reason": null}
{"e164": "+447700900003", "status": "unknown", "registered": null, "reason": "UPSTREAM_TIMEOUT"}The service=signal®istered=true filter on the results endpoint returns only rows with a findable account. Test keys never bill; live jobs are billed per conclusive answer at the bulk price on the pricing page.
How should Signal feed into a risk score?
As a small, positive-only input. A scoring sketch in Python, reading one job result row:
def presence_credit(row):
"""Count messaging apps where the number is findable. Unknown and false add nothing."""
checks = row.get("checks") or {}
apps = ["whatsapp.registered", "telegram.registered", "signal.registered"]
found = sum(1 for a in apps if (checks.get(a) or {}).get("registered") is True)
return min(found, 2) # cap: presence lowers risk a little, never clears it
def risk_points(row, line_type):
points = 0
if line_type in ("premium_rate", "shared_cost"):
points += 5
elif line_type == "voip":
points += 2
points -= presence_credit(row) # Signal `false` is never a penalty
return max(points, 0)The two design choices matter more than the numbers: absence never adds risk, and presence is capped so it can't cancel a strong negative signal. Our guide to reducing fake sign-ups shows a full points model with friction tiers.
When should you not use a Signal check?
Often. Skip it when:
- You want to reach someone on Signal. There's no business messaging API; a check doesn't open a channel.
- You want to know if a specific person uses Signal. That's exactly what people who set findability to Nobody have declined. Our acceptable use policy forbids finding out whether a specific private individual uses an app without a legitimate business reason, and forbids stalking and monitoring.
- Your customers are mostly in markets with low Signal use. The check will mostly return
false, which carries little information. WhatsApp, Telegram or a regional app will tell you more; see the messaging-app checks guide. - The decision affects someone's rights. Don't use messenger presence for credit, employment, housing or insurance decisions. The acceptable use policy forbids that too.
Use it where it adds real information: corroborating that numbers in a sign-up or lead flow belong to real, active smartphones.
What are the privacy rules?
Signal's users chose it for privacy. Respect that in how you use the check. (This is general guidance, not legal advice; consult counsel about your own situation.)
- Check only numbers you hold for a legitimate purpose, such as your own users or applicants. Under the GDPR you need a lawful basis (Article 6) and should store only what you need (Article 5(1)(c)): the answer and its date.
- No enumeration. In 2021, researchers showed that contact discovery could be used to query 100% of US mobile numbers against Signal (NDSS 2021). A check API must not become a shortcut for that. We refuse 20 or more consecutive numbers (
403 suspected_enumeration) and cap daily volume per account. - Honour objections. People can object through our opt-out form. Suppressed numbers are skipped and never charged.
Signal is named here descriptively. MobileValidate is not affiliated with Signal.
What are the key takeaways?
- A Signal check answers whether an account is findable through a number you hold: registered, not registered or unknown, with
checked_at. - Since 2024, Signal hides numbers by default and lets people set "Who can find me by my number" to Nobody. Those accounts can't be confirmed by number.
- Read
trueas moderate evidence of real use; readfalseas weak. Never add risk for it. - It runs in bulk jobs only, returns no usernames or profiles, and isn't a messaging channel.
- Don't use it to find out whether a specific person uses Signal, or for decisions about people's rights.
- Test it free with the test numbers and see the Signal check for coverage and pricing.
Sources
- Keep your phone number private with Signal usernames — Signal, 2024
- All the Numbers are US: Large-scale Abuse of Contact Discovery in Mobile Messengers (NDSS 2021) — IACR ePrint / NDSS, 2021
- General Data Protection Regulation (EU) 2016/679 — European Union, 2016
Frequently asked questions
Can you look up who owns a Signal number?
No. A Signal registration check only answers whether a discoverable account is associated with a number you already hold. It never returns a username, profile name, photo or any other detail, and it can't identify anyone.
Why do Signal checks return more not registered and unknown answers?
Since 2024 Signal users can choose that nobody can find them by their phone number. Those accounts can't be confirmed through the number, so the answer may be not registered or unknown even though the person uses Signal.
Can I send business messages on Signal after a positive check?
Signal doesn't offer a business messaging API. The check is useful as a sign that a number is in real use on a smartphone, not as a way to open a channel.
Is the Signal check available in real time?
No. It runs in bulk jobs only (POST /v1/jobs). POST /v1/lookup refuses it with 403 service_disabled.
Are Signal usernames checked?
No. The check works only with phone numbers. Usernames are how Signal lets people avoid sharing their number, and we don't look them up.
Related services and guides
More from the blog
All articlesGuides
Messaging-app registration checks: a guide for every app
What a registration check tells you for WhatsApp, Telegram, Viber, Signal, iMessage, RCS, LINE, Zalo and more: modes, unknowns, billing and consent.
9 min read
Guides
E-mail verification vs account existence checks: what's the difference?
Mailbox validation says an address can receive mail. An account check says it is registered on a service. When to use each, and the privacy rules.
8 min read
Guides
Telegram number check: a practical guide to what it can and can't tell you
How Telegram's phone and username model differs, what a registration check can and can't tell you, how privacy settings affect it, with API examples.
7 min read

