Telegram Number Validator - Bulk Check
Pricing
from $2.50 / 1,000 phone numbers
Telegram Number Validator - Bulk Check
Bulk verify phone numbers for active Telegram accounts. Check 1,000-10,000 numbers per run. Upload CSV or Excel files, get instant yes/no results. Clean contact lists, validate leads, enrich CRM data. No Telegram account needed. Global coverage with automatic phone format normalization.
Pricing
from $2.50 / 1,000 phone numbers
Rating
5.0
(2)
Developer
ClearPath
Maintained by CommunityActor stats
4
Bookmarked
946
Total users
43
Monthly active users
4 days ago
Last modified
Categories
Share
Telegram Phone Number Validator | Bulk Verification API (2026)
Built by Clearpath, creators of WhatsApp Number Validator and Email Account Checker. Our WhatsApp and Telegram validators have 11,000+ combined lifetime runs.
Why choose this actor?
- Add usernames and Premium status to your contact list. Alongside Telegram registration, get
telegramUsernameandhasTelegramPremiumwhen available. Keep those account details with the normalized phone number, country code and check time. - Check up to 10,000 numbers together. Paste your list or upload CSV/XLSX. Automatic phone-column detection, number formatting and duplicate removal prepare your batch. No Telegram login is needed.
- Export only the Telegram accounts you need. Enable
onlyTelegramUsersto return registered accounts, or keep all results for review. Unchecked numbers have a reason, so you can distinguish them from numbers checked and found without Telegram.
Preview registration, username and Premium fields
{"testMode": true}
Open actor input with Test Mode enabled to see three fixed sample records. No real numbers are checked or billed as validations. For real checks, disable Test Mode and provide 1,000–10,000 valid unique mobile numbers on a paying Apify account. Use defaultCountryCode for national-format numbers.
Usernames and Premium status are returned when reported; missing values remain empty. Mainland China (+86) and non-mobile numbers are skipped. Filtering to Telegram accounts still bills every number checked. Export JSON, CSV or Excel; see pricing for current charges.
| Clearpath · Phone & Account Intelligence | |||
You are here | Account checks | Active-number checks | Registration checks |
Copy to your AI assistant
clearpath/telegram-phone-number-validator on Apify. Check phone lists for Telegram registration. Output: hasTelegram, telegramUsername and hasTelegramPremium when reported, normalized phoneNumber, originalInput, countryCode, checkedAt and skipReason. Preview with {"testMode":true}; real checks require a paying Apify account and 1,000–10,000 valid unique mobile numbers. Inputs: phoneNumbers, csvFile, defaultCountryCode, onlyTelegramUsers. Mainland China +86 is unsupported; non-mobile numbers are skipped. Call ApifyClient("TOKEN").actor("clearpath/telegram-phone-number-validator").call(run_input={...}), then read defaultDatasetId. Full spec: GET https://api.apify.com/v2/acts/clearpath~telegram-phone-number-validator/builds/default (Bearer TOKEN). Token: https://console.apify.com/account/integrations
Pricing
| Apify Plan | Per Number | Per 1,000 |
|---|---|---|
| Free | Fixed sample output only; real checks require a paying Apify account | - |
| No subscription | $0.005 | $5.00 |
| Bronze | $0.004 | $4.00 |
| Silver | $0.003 | $3.00 |
| Gold | $0.0025 | $2.50 |
Examples
| Numbers | No subscription | Bronze | Silver | Gold |
|---|---|---|---|---|
| 1,000 | $5.00 | $4.00 | $3.00 | $2.50 |
| 5,000 | $25.00 | $20.00 | $15.00 | $12.50 |
| 10,000 | $50.00 | $40.00 | $30.00 | $25.00 |
Duplicates are auto-removed — you only pay for unique numbers.
Quick Start
Minimum 1,000 numbers per run. Examples below show 3 phones for brevity — pad with the rest of your list.
Basic - Direct Input
{"phoneNumbers": ["+1234567890","+4915123456789","+447911123456"]}
From CSV File
{"csvFile": "https://example.com/contacts.csv"}
From Excel File
{"csvFile": "https://example.com/contacts.xlsx"}
Combined Input
{"phoneNumbers": ["+1234567890"],"csvFile": "https://example.com/more-contacts.csv"}
Input Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
phoneNumbers | array | No* | List of phone numbers with country code (e.g., +1234567890). Min 1,000, Max 10,000. |
csvFile | string | No* | URL or Apify Key-Value store key to CSV or Excel (.xlsx) file with phone numbers |
defaultCountryCode | string | No | Country code to prepend to numbers without a + prefix (e.g., 91 for India, 1 for US) |
onlyTelegramUsers | boolean | No | Only output numbers that have Telegram (default: false) |
*At least one of phoneNumbers or csvFile is required. Minimum 1,000 unique numbers required.
Phone Number Formats
The actor accepts phone numbers in various formats and normalizes them automatically:
+1234567890 E.164 (preferred)1234567890 Without plus+1 234 567 890 With spaces+1-234-567-890 With dashes(123) 456-7890 US format
Numbers Without Country Code
If your CSV contains local numbers without country code prefix (e.g., 9876543210 instead of +919876543210), use the defaultCountryCode field:
{"csvFile": "https://example.com/indian-contacts.csv","defaultCountryCode": "91"}
| Your CSV | Default Country Code | Result |
|---|---|---|
9876543210 | 91 | +919876543210 (India) ✅ |
5551234567 | 1 | +15551234567 (US) ✅ |
+447911123456 | 91 | +447911123456 (unchanged) ✅ |
Numbers that already have a + prefix are not modified.
CSV/Excel File Requirements
- Supported formats:
.csv,.xlsx - Delimiters: Comma, semicolon, tab, pipe (auto-detected)
- Column detection: Automatically finds phone columns including:
- Standard:
phone,mobile,cell,tel,telephone,telegram - Variations:
phone number,mobile number,cell phone,contact number - CRM exports:
mobile phone,direct phone,work phone,personal phone,primary phone - International:
telefon,telefono,téléphone,celular,handy
- Standard:
- No headers? Scans content to find phone-like columns automatically
- International headers: Non-English phone columns are detected automatically when possible
Output
Each validated number returns:
| Field | Type | Description |
|---|---|---|
phoneNumber | string|null | Phone number in E.164 format (null when the input could not be read as a valid number) |
originalInput | string | Original input as provided |
countryCode | string|null | Detected country code (e.g., US, DE, GB); null for unreadable numbers |
isValidFormat | boolean | Whether the input was recognized as a valid phone number |
hasTelegram | boolean|null | true if number has Telegram, false if not, null if the number was not checked |
telegramUsername | string|null | Telegram username if available (without @), null if not set |
hasTelegramPremium | boolean|null | true if the account has a Telegram Premium subscription, false if not, null when not reported |
skipReason | string|null | Why a number was not checked: not_mobile (landline or other non-mobile line), invalid_format (could not be read), unsupported_country (China mainland +86, which cannot be checked), or not_checked (the check could not be completed for it); null for checked numbers |
checkedAt | string | ISO 8601 timestamp of validation |
Telegram accounts only exist on mobile numbers. Landlines and other non-mobile lines are listed with skipReason: "not_mobile", and numbers that cannot be read are listed with skipReason: "invalid_format". These rows have hasTelegram: null, are not submitted for checking, and incur no validation charge, so nothing in your input silently disappears. Only mobile numbers count toward the per-run minimum.
Very large lists occasionally cannot be completed in one go. When that happens the run automatically continues in smaller batches, and any number that still could not be checked is listed with skipReason: "not_checked" and hasTelegram: null. Those numbers incur no validation charge.
Output Example

API Integration
Python
from apify_client import ApifyClientclient = ApifyClient("your_api_token")run = client.actor("clearpath/telegram-phone-number-validator").call(run_input={"phoneNumbers": ["+1234567890", "+4915123456789"]})for item in client.dataset(run["defaultDatasetId"]).iterate_items():status = "Telegram" if item["hasTelegram"] else "No Telegram"print(f"{item['phoneNumber']}: {status}")
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'your_api_token' });const run = await client.actor('clearpath/telegram-phone-number-validator').call({phoneNumbers: ['+1234567890', '+4915123456789']});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(item => {const status = item.hasTelegram ? 'Telegram' : 'No Telegram';console.log(`${item.phoneNumber}: ${status}`);});
cURL
curl -X POST "https://api.apify.com/v2/acts/clearpath~telegram-phone-number-validator/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"phoneNumbers": ["+1234567890", "+4915123456789"]}'
Advanced Usage
Validate from Google Sheets
Export your Google Sheet as CSV and use the public URL:
{"csvFile": "https://docs.google.com/spreadsheets/d/YOUR_SHEET_ID/export?format=csv"}
Large Batch Processing
For lists over 10,000 numbers, split into multiple runs:
from apify_client import ApifyClientclient = ApifyClient("your_api_token")all_numbers = [...] # Your large list# Split into chunks of 10,000chunks = [all_numbers[i:i+10000] for i in range(0, len(all_numbers), 10000)]all_results = []for chunk in chunks:run = client.actor("clearpath/telegram-phone-number-validator").call(run_input={"phoneNumbers": chunk})results = list(client.dataset(run["defaultDatasetId"]).iterate_items())all_results.extend(results)print(f"Validated {len(all_results)} numbers")
Filter Telegram Users Only
Use the onlyTelegramUsers option to only output numbers with Telegram:
{"phoneNumbers": ["+1234567890", "+4915123456789"],"onlyTelegramUsers": true}
Or filter programmatically:
telegram_users = [item for item in results if item["hasTelegram"]]print(f"Found {len(telegram_users)} Telegram users")
FAQ
Q: Why is there a minimum of 1,000 numbers? A: Telegram validation uses a bulk processing pipeline with a 1,000-number minimum batch size. For shorter lists, use our WhatsApp Phone Number Validator instead, which supports a lower minimum.
Q: How accurate is the validation? A: Returns Telegram registration status at the time of the check.
Q: What countries are supported? A: Mainland China (+86) is excluded. Provide valid mobile numbers with a country code, or set defaultCountryCode.
Q: Do I need a Telegram account? A: No. Fully automated, no Telegram credentials required.
Q: How fast is it? A: ~1-2 minutes per 1,000 numbers.
Q: What about duplicates? A: Auto-removed after normalization. You're only charged for unique numbers.
Q: Some of my numbers came back with an empty result. What does that mean?
A: A number with an empty hasTelegram and skipReason: "not_checked" was not checked, which is different from being checked and found to have no Telegram account. It incurs no validation charge. Very large batches occasionally cannot be completed in one go; when that happens the run automatically continues in smaller batches, and only numbers that no batch could complete are returned this way. Nothing is wrong with those numbers. Submitting them again in a smaller run normally gets them checked.
Q: My run failed and said none of my numbers were checked. What should I do? A: Nothing is wrong with your numbers, and no validation was charged, because none of them were checked. The run already retried your list in smaller batches automatically where the 1,000-number minimum allowed it, so re-running it unchanged is unlikely to help. This is a problem on our side. Please contact support if it keeps happening.
Related Actors
More from Clearpath (Email tools):
- Email Account Checker - Check emails for real account registration on Gmail, Outlook, Yahoo, iCloud, Mail.ru.
- Email Address Validator - Bulk email deliverability validation (syntax, MX, SMTP, catch-all, disposable).
- Email Finder & Verifier - Find and verify B2B email addresses by name and domain.
Support
- Email: max@mapa.slmail.me
- Feature Requests: Email or submit via issues
- Response Time: Typically within 24 hours
Legal
This actor validates publicly available Telegram registration status. Users are responsible for complying with Telegram's Terms of Service and applicable data protection regulations (GDPR, CCPA).
