RealtimeBulkPhone input

Check if a phone number is registered on Telegram

Find out whether a phone number has a Telegram account, in real time or in bulk. Yes, no or unknown with a timestamp; unknown answers are free.

Last updated

checks: ["telegram.registered"]
A phone with chat bubbles; one messaging-app check says registered, another is unknown.A phone with chat bubbles; one messaging-app check says registered, another is unknown.

The Telegram check tells you whether a phone number has a Telegram account. You get registered: true, false or null (unknown) with the time of the check, in real time or in a bulk job, for numbers from any country. The check sends nothing to the number and returns no username, name or photo.

What does the Telegram check tell you?

It answers whether a Telegram account is associated with the phone number. Telegram asks for a phone number when someone signs up and confirms it with a code, so every account starts from a number. After that, Telegram is built around usernames: people can chat without ever sharing their number, and the privacy settings let them choose who can see their number and who can find them by it.

That design matters for how you read the answer:

  • registered: true: an account is associated with the number and could be found.
  • registered: false: a conclusive answer that no account was found for the number.
  • registered: null: we could not get a conclusive answer. status and reason explain why, and you are not charged.

Because discoverability is under the account holder's control, a false on Telegram is a weaker "no" than on a platform where every account can be found by number. Treat it as "not reachable by this number", which is usually what a channel decision needs.

Who uses it, and why?

Telegram's founder announced in March 2025 that the app had passed one billion monthly active users. Its use is uneven: it is a main messenger in parts of Eastern Europe, Central Asia and the Middle East, and a secondary app in many markets where WhatsApp leads.

  • Verification codes. Telegram offers a paid gateway that lets businesses deliver verification codes to users inside Telegram. Teams that use it check registration first, so codes go to Telegram only when the number has an account and the rest go to SMS.
  • Channel selection. Support and notification teams in Telegram-heavy markets check whether a customer who opted in can be reached there. See channel selection.
  • Sign-up screening. A new sign-up whose number has neither Telegram nor WhatsApp nor Viber is not necessarily fake, but it gives fraud rules a data point. Combine it with a carrier lookup.

What do you get back?

One result per number in checks["telegram.registered"]. The service has no extra attributes.

FieldTypeMeaning
registeredboolean or nulltrue account found, false none found, null unknown
statusenumcompleted, pending, unknown, unsupported_country or failed
confidence / confidence_scoreenum / 0–1How sure the answer is; null if not conclusive
checked_attimestampWhen the answer was obtained
cached / age_secondsboolean / integerServed from your account's cache, and its age
billedbooleanWhether this check was charged
reasonstring or nullWhy the answer is not conclusive, e.g. UPSTREAM_TIMEOUT

How is it billed?

You pay per number checked, only for conclusive answers. You're not charged for inconclusive results (unknown, unsupported country, timeout, invalid, duplicate). Real-time and bulk checks are priced separately; bulk is cheaper when the answer can wait. See pricing.

A repeat check of the same number within the freshness window can come from your account's cache at no charge (cached: true, billed: false). max_age: 0 forces a fresh check, which is billed. max_cost stops a request that could cost more than you set.

What are the limits?

Telegram is available in real time (POST /v1/lookup, 1–100 numbers, waits up to 30 seconds, default 10) and in bulk jobs (POST /v1/jobs, up to 50,000 numbers and e-mails). There are no country restrictions.

  • Up to 20 checks per request; numbers × checks capped at 2,000 per lookup and 100,000 per job.
  • Requests that look like sequential number ranges or generated e-mail lists are rejected with suspected_enumeration.
  • A daily number cap applies per account (GET /v1/limits).
  • Unknown answers mostly come from timeouts. Privacy settings can also make an account impossible to find by number.

How do I use it responsibly?

Check the numbers of people who gave them to you and agreed to be contacted, and use the answer to pick a channel they expect. Telegram's reach through public groups and channels makes it attractive for spam, and our acceptable use policy forbids using checks to find people to message unsolicited or to work out who is on Telegram by scanning number ranges. Respect the fact that many Telegram users hide their number on purpose. People can object to checks through the opt-out form.

Example request

With a test key, +447700900001 answers "registered", +447700900002 "not registered" and +447700900003 "unknown". See test mode.

curl https://api.mobilevalidate.com/v1/lookup \
  -H "Authorization: Bearer mv_test_publicSandboxn9ZgneuhR1B9CRfKG3fulym" \
  -H "Content-Type: application/json" \
  -d '{"numbers":["+447700900001"],"checks":["telegram"]}'

Runs as pasted with the public sandbox key, which answers the test values only. In the SDKs, omit the key to use MOBILEVALIDATE_API_KEY.

Response (excerpt, test mode: the first item of results):

JSON
{
  "kind": "phone",
  "input": "+447700900001",
  "e164": "+447700900001",
  "country": "GB",
  "number_status": "valid",
  "checks": {
    "telegram.registered": {
      "service": "telegram.registered",
      "status": "completed",
      "registered": true,
      "attributes": null,
      "confidence": "high",
      "confidence_score": 0.99,
      "checked_at": "2026-09-25T14:25:29.556Z",
      "cached": false,
      "age_seconds": 0,
      "billed": false,
      "reason": null,
      "poll_after_ms": null
    }
  },
  "test": true
}

Try it now

Realtime lookup via POST /v1/lookup. Every example runs as pasted: it uses the public sandbox key, which answers the test values for free. In the SDKs, omit the key to use MOBILEVALIDATE_API_KEY.

curl https://api.mobilevalidate.com/v1/lookup \
  -H "Authorization: Bearer mv_test_publicSandboxn9ZgneuhR1B9CRfKG3fulym" \
  -H "Content-Type: application/json" \
  -d '{"numbers":["+447700900001"],"checks":["telegram.registered"]}'

Real test-mode result for this check

checks["telegram.registered"]
{
  "service": "telegram.registered",
  "status": "completed",
  "registered": true,
  "attributes": null,
  "confidence": "high",
  "confidence_score": 0.99,
  "checked_at": "2026-09-25T14:25:28.979Z",
  "cached": false,
  "age_seconds": 0,
  "billed": false,
  "reason": null,
  "poll_after_ms": null
}

What you get

Fields of checks["telegram.registered"], generated from the public service catalog.

FieldTypeMeaning
registeredboolean | nulltrue = found, false = not found, null = unknown (not charged).
statusenumcompleted, pending, unknown, unsupported_country or failed.
checked_attimestampWhen the answer was obtained.

Frequently asked questions

Telegram users can hide their phone number. Does that affect the check?

It can. Telegram lets people limit who can find them by their number. When an account cannot be found through its number, the check may answer not registered or unknown even though the account exists.

Does the check return the Telegram username?

No. The check only answers whether an account is associated with the number. Usernames, names, photos and bios are never returned.

Is Telegram a good channel for one-time passcodes?

In markets where Telegram is common it can be, provided the person agreed to receive codes there. Checking registration first avoids sending a code to a channel the person does not use.

Can I check Telegram in real time?

Yes. The Telegram check works with POST /v1/lookup for up to 100 numbers per request and in bulk jobs for larger lists.

Is anything sent to the person on Telegram?

No. Nothing is sent, and the person is not notified by us.

All articles

Add Telegram number check to your stack

Request access to MobileValidate. Start in test mode, go live when you are ready.