On this page
To check Telegram numbers in bulk for a customer list from Asia, convert every number to E.164 (+62, +91, +63, +84, +852 and so on), then run one bulk job with the Telegram check: upload a CSV in the dashboard or call POST /v1/jobs for up to 50,000 numbers. Each number comes back registered, not registered or unknown with the time of the check. Unknown answers are never billed. Normalising first avoids invalid rows and wrong numbers, and Telegram's privacy settings make "not registered" a soft no.
This guide covers the bulk workflow and per-country details. For what a single answer can and can't tell you, read our Telegram number check guide.
What does a bulk Telegram check return for each number?
One of three answers per number, as in real time, plus the reasons a row isn't checked:
| Answer | Meaning | Billed |
|---|---|---|
registered: true | A Telegram account can be found for the number | Yes |
registered: false | No account was found through this number | Yes |
registered: null (unknown) | No conclusive answer this time; reason says why | No |
invalid_number, duplicate, unsupported_country | The row was not checked | No |
Read false as "not reachable through this number", not "doesn't use Telegram". On Telegram, "each phone number is a separate account" (Telegram FAQ), but the holder controls who can find them by it.
How much is Telegram used in Asia?
Telegram says it has "over 1 billion active users" worldwide (Telegram FAQ). It doesn't publish a per-country breakdown, and we haven't found a measurement of Telegram use in Indonesia, India, the Philippines or Hong Kong that we can verify, so we don't quote shares. Figures online mix downloads, surveys and monthly users, and disagree.
Access can also change. In May 2025, Vietnam's telecom department ordered internet providers to block Telegram (Al Jazeera, 2025). OONI's network measurements found the block in place on major Vietnamese networks from 25 May 2025 and lifted on 10 July 2025 (OONI, 2025). A registration answer doesn't say whether the app is reachable there on the day you send.
So measure your own base: a bulk check of customers who opted in shows how many you can reach on Telegram, country by country. The channel-by-country guide covers the method.
How do you normalise Asian numbers before a bulk check?
Convert each number to E.164: a plus sign, the country code and the national number without the trunk 0 (ITU-T E.164). Common forms and traps in Asian lists:
| Country | National mobile form | E.164 form | Trap | Guide |
|---|---|---|---|---|
| India | 10 digits starting 6–9, sometimes with a trunk 0 or 0091 in front | +91 + 10 digits | A 12-digit value starting 91 is already international: add +, don't add another 91 | India |
| Indonesia | 08XX… | +62 8XX… (9 to 12 digits after +62) | Mobile numbers vary in length, so a fixed-length rule rejects real numbers | Indonesia |
| Philippines | 09XX XXX XXXX | +63 9XX XXX XXXX | Drop the 0; a few mobile blocks start 81 or 89, not 9 | Philippines |
| Vietnam | 0 + 9 digits (03, 05, 07, 08, 09) | +84 + 9 digits | Old 11-digit numbers (012x, 016x, 018x, 0199) were converted to 10 digits and are no longer in use (Wikipedia) | – |
| Pakistan | 03XX XXXXXXX | +92 3XX XXXXXXX | Drop the 0 before 3 | Pakistan |
| Hong Kong | 8 digits, no trunk 0 | +852 + 8 digits | Singapore numbers also have 8 digits, so a list without codes can mix the two | Hong Kong |
| Mainland China | 11 digits starting 1, no trunk 0 | +86 + 11 digits | Hong Kong and Macau numbers are not +86 | China |
Four habits help:
- One country per job, or E.164 per row. A job takes one
default_countryfor numbers written without+. Withdefault_country=ID, a Philippine0917…number parses as a valid-looking Indonesian landline, so the wrong number is checked. Convert each row with the country you stored for that customer, then upload. - Protect leading zeros. Spreadsheets drop the
0of0812…and show long numbers in scientific notation. Keep the phone column as text, or export E.164. - Don't remap old Vietnamese numbers by guesswork. A converted 016x number answers
invalid_number, which is free. Ask the customer for the current number instead of rebuilding it. - Normalise before you deduplicate.
0812…and+62812…are the same number. The job removes duplicates after normalising and never bills them.
How do privacy settings change bulk results?
They decide whether an existing account can be found by its number at all. Telegram's API defines separate settings for "whether people will be able to see your phone number" and "whether people can add you to their contact list by your phone number" (Telegram API). In the app, people control "whether others are allowed to find them by their phone number" (Telegram, 2022). By default, a user's number is visible only to people they have added to their address book as contacts (Telegram FAQ).
When someone limits discovery, the check through their number can answer false or unknown although the account exists. Since December 2022, people can also sign up with anonymous numbers from the Fragment platform instead of a SIM (Telegram, 2022); such an account never matches the mobile number in your CRM. Expect a share of "no" answers from real Telegram users, respect them as the person's choice, and don't re-check repeatedly hoping for a different result.
Which Asian countries does the Telegram check cover?
All of them that we serve. Our catalog lists the Telegram check as worldwide, in real time and in bulk jobs, with no country gaps. That includes Indonesia, India, the Philippines, Vietnam, Pakistan, Hong Kong and mainland China. Only numbers from sanctioned countries and regions are never checked; they answer unsupported_country and are free (full list).
One note for combined jobs: WhatsApp gets the bulk price only for groups of at least 132 numbers per country in one job (at the time of writing). Smaller groups are priced at the real-time rate and appear in the estimate as small_batch. Telegram has no such rule and no per-country minimum; the bulk jobs docs explain both.
Should you upload in the dashboard or use POST /v1/jobs?
Both run the same job, with the same limits, prices and anti-enumeration rules:
| Dashboard upload | POST /v1/jobs | |
|---|---|---|
| Input | CSV or TXT up to 10 MB, or pasted numbers | JSON list, or CSV as multipart/form-data |
| Country for national formats | Asked for numbers without + | default_country |
| Estimate and cost cap | Shown before you start; optional cap | POST /v1/jobs/estimate, then max_cost |
| Results | CSV download | Paged results, filters, CSV or NDJSON |
| Best for | One-off clean-ups | Monthly refreshes, pipelines |
How do you run the job with the API?
Estimate first, then create the job with a cost cap. The example uses the documented test values, which always answer the same way and are never billed:
curl https://api.mobilevalidate.com/v1/jobs/estimate \
-H "Authorization: Bearer $MOBILEVALIDATE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"numbers": ["+447700900001", "+447700900002", "+447700900003"], "checks": ["telegram", "whatsapp", "carrier"]}'
curl https://api.mobilevalidate.com/v1/jobs \
-H "Authorization: Bearer $MOBILEVALIDATE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: asia-list-2026-10" \
-d '{"numbers": ["+447700900001", "+447700900002", "+447700900003"],
"checks": ["telegram", "whatsapp", "carrier"],
"max_cost": {"amount": "5.00", "currency": "USD"}}'
# then: GET /v1/jobs/{id}?wait=30 and GET /v1/jobs/{id}/results?service=telegram®istered=trueWith a live key, send your normalised numbers and set max_cost to the estimate's max_cost or your budget; a job that could cost more is refused before anything runs. Test keys estimate zero. The three test numbers answer:
| Test number | telegram | whatsapp | carrier |
|---|---|---|---|
+447700900001 | registered: true | registered: true | line_type: "mobile" |
+447700900002 | registered: false | registered: false | unknown (NO_DATA) |
+447700900003 | unknown (UPSTREAM_TIMEOUT) | unknown (UPSTREAM_TIMEOUT) | unknown (UPSTREAM_TIMEOUT) |
A job allows 100,000 checks (rows times checks), so three checks per row fit about 33,000 numbers. For large lists, subscribe a webhook to job.completed instead of polling.
How is a bulk Telegram check billed?
Only conclusive answers are charged. You're not charged for inconclusive results (unknown, unsupported country, timeout, invalid, duplicate), and answers still fresh in your account's cache are free. Bulk is cheaper per number than real time. The job reserves the estimate's maximum, settles each answer and releases the rest. See pricing for current rates per check.
How do you choose a channel from Telegram, WhatsApp and carrier answers?
Combine the answers per customer, then send only on channels the customer agreed to:
| Telegram | Carrier | Reasonable choice for a customer who opted in | |
|---|---|---|---|
true | any | mobile | Telegram if the customer chose it; SMS as fallback |
false or unknown | true | mobile | WhatsApp if they opted in there, otherwise SMS |
false | false | mobile | SMS |
| any | any | not mobile, or unknown | Check the number is active before relying on SMS; fix the record |
Store each answer with checked_at and never overwrite a stored conclusive answer with unknown. Our guide to cleaning a phone list in bulk covers the other hygiene steps; the Telegram check page lists the fields.
What makes a bulk Telegram check acceptable?
A lawful basis for every number and a purpose the customer would expect: delivering messages they asked for, keeping your list accurate, choosing a channel they can receive, or fraud prevention. This is general guidance, not legal advice.
- Your customers only. Check numbers people gave you. Telegram uses phone numbers as identifiers and asks permission before it syncs anyone's contacts (Telegram Privacy Policy); hold your own list to at least that standard.
- No ranges, no target lists. Requests with 20 or more consecutive numbers are refused with
suspected_enumeration, and each account has a daily cap (rate limits). Using checks to find people to message unsolicited is forbidden by our acceptable use policy. - Yes, no or unknown only. No usernames, names, photos or activity are returned, and people can object through the opt-out form.
Telegram and WhatsApp are named descriptively; MobileValidate is not affiliated with either. To try the workflow, get a free test key and run the requests above.
Sources
- Telegram FAQ — Telegram, 2026
- Telegram Privacy Policy (3.4 Phone Number and Contacts) — Telegram, 2026
- InputPrivacyKey (API documentation) — Telegram, 2026
- No-SIM Signup, Auto-Delete All Chats, Topics 2.0 and More — Telegram, 2022
- Vietnam blocked Telegram — OONI, 2025
- Vietnam orders ban on popular messaging app Telegram — Al Jazeera, 2025
- Recommendation ITU-T E.164: The international public telecommunication numbering plan — ITU, 2010
- Telephone numbers in Vietnam — Wikipedia, 2026
Frequently asked questions
How many numbers can I check for Telegram in one bulk job?
Up to 50,000 phone numbers and e-mail addresses per job, and up to 100,000 checks per job counted as rows times checks. A job with Telegram, WhatsApp and carrier checks on every row therefore fits about 33,000 numbers. Larger lists go into several jobs.
Do I need to convert numbers to +62, +91 or +63 format first?
For a list from one country, no: set default_country and the job reads national formats such as 0812 or 09XX. For a list that mixes countries, yes. A job has one default_country, so convert each row to E.164 with the country you hold for that customer, then upload.
Why do some numbers come back unknown or not registered when the customer uses Telegram?
Telegram lets people decide whether others can find them by their phone number, and an account can sit on a different number than the one you hold. Such numbers can answer not registered or unknown. Unknown answers are never billed.
Does the Telegram check cover Indonesia, India, Vietnam and the rest of Asia?
Yes. Our catalog lists the Telegram check as worldwide in real time and in bulk jobs, with no country gaps. Only numbers from sanctioned countries and regions are never checked; they answer unsupported_country and are free.
Can I use a bulk Telegram check to find new people to message?
No. Check only the numbers of customers and sign-ups who gave them to you, and message only those who agreed to hear from you on Telegram. Lists that look like sequential number ranges are refused, and our acceptable use policy forbids finding recipients for unsolicited messages.
Related services and guides
More from the blog
All articlesGuides
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
Deliverability
How to choose a messaging channel by country
WhatsApp, Telegram, Viber, LINE, Zalo, RCS or SMS? How to pick a channel per country for messages customers expect, and measure it on your own base.
7 min read
Deliverability
How to clean a phone number list in bulk, step by step
A step-by-step way to clean a phone list with the MobileValidate jobs API: free estimate, dedupe, invalid rows, capped cost, CSV download and data purge.
7 min read

