# 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.

Canonical: https://mobilevalidate.com/services/telegram-number-check · Last updated: 2026-09-25

![A phone with chat bubbles; one messaging-app check says registered, another is unknown.](https://mobilevalidate.com/images/messaging-app-registration-check.svg)

*Messaging-app checks answer registered, not registered or unknown, with the time we checked.*


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](/use-cases/channel-selection).
- **Sign-up screening.** A new sign-up whose number has neither Telegram nor [WhatsApp](/services/whatsapp-number-check) nor [Viber](/services/viber-number-check) is not necessarily fake, but it gives fraud rules a data point. Combine it with a [carrier lookup](/services/carrier-lookup).

## What do you get back?

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

| Field | Type | Meaning |
|---|---|---|
| `registered` | boolean or null | `true` account found, `false` none found, `null` unknown |
| `status` | enum | `completed`, `pending`, `unknown`, `unsupported_country` or `failed` |
| `confidence` / `confidence_score` | enum / 0–1 | How sure the answer is; `null` if not conclusive |
| `checked_at` | timestamp | When the answer was obtained |
| `cached` / `age_seconds` | boolean / integer | Served from your account's cache, and its age |
| `billed` | boolean | Whether this check was charged |
| `reason` | string or null | Why 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](/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](/legal/acceptable-use) 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](/opt-out).

## Example request

With a test key, `+447700900001` answers "registered", `+447700900002` "not registered" and `+447700900003` "unknown". See [test mode](/docs/test-mode).

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

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
}
```

## 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.

## Service code and modes

- Code: `telegram.registered` (input: phone number)
- Modes: realtime and bulk · worldwide

## Price (live)

- Realtime (POST /v1/lookup): $0.0005 per check ($0.50 per 1,000)
- Bulk (POST /v1/jobs): $0.0003 per check ($0.30 per 1,000)
- You're not charged for inconclusive results (unknown, unsupported country, timeout, invalid, duplicate).

## Response fields (from the public catalog)

| Field | Type | Meaning |
|---|---|---|
| registered | boolean or null | true = found, false = not found, null = unknown (not charged) |
| status | enum | completed, pending, unknown, unsupported_country, failed |
| checked_at | timestamp | When the answer was obtained |

_Platform and brand names are used only to describe which service a check refers to. MobileValidate is not affiliated with, endorsed by or sponsored by any of these companies; all trademarks belong to their owners._
