Telegram Username Checker avatar

Telegram Username Checker

Pricing

from $0.75 / 1,000 results

Go to Apify Store
Telegram Username Checker

Telegram Username Checker

Verify Telegram usernames in bulk. Check existence, user vs channel type, subscriber count, title, bio, and profile photo.

Pricing

from $0.75 / 1,000 results

Rating

5.0

(5)

Developer

akula.marketing

akula.marketing

Maintained by Community

Actor stats

14

Bookmarked

1.8K

Total users

41

Monthly active users

2.6 hours

Issues response

3 days ago

Last modified

Share

💬 Questions, bulk pricing, or a custom solution? Talk to us on Telegram — @KoteamSupport.

✅ Check a list of Telegram usernames in one run: does each one exist, is it a user or a channel, and what does its public profile show. For channels and groups you also get the subscriber count, with no admin access needed.

What it's for

  • Lead list validation: remove handles that don't exist before a CRM import or outreach.
  • Channel vetting: get the subscriber count, title, and description of a channel before you buy an ad placement.
  • User or channel detection: sort a mixed list of handles by type with the isUser field.
  • Fake and scam checks: with loadAdditionalData, you get Telegram's own scam, fake, verified, and bot flags.

🛡️ Data & compliance

  • Public data only. For channels and groups: title, description, photo, participant count. For user accounts: the public profile fields Telegram shows to anyone. A phone number is returned only with loadAdditionalData and only if the user made it visible in their privacy settings.
  • No admin access or login needed on your side.
  • Your responsibility. Use the data in line with Telegram's Terms of Service and the privacy laws that apply to you (for example, GDPR). Don't use it for unsolicited bulk messaging.

📥 Input

The Actor accepts:

  • usernames: A list of Telegram usernames (e.g., ["CryptoRankNews", "t.me/CryptoRankNews"]).
  • loadAdditionalData (optional, default false): When enabled, loads more profile fields (takes longer). Can also return a phone number when it is publicly available. Also returns Telegram third-party verification (botVerificationIcon, botVerificationBotId, botVerificationDescription).

📋 Input Schema

{
"title": "Username Info Actor",
"description": "Fetches user information for usernames.",
"type": "object",
"schemaVersion": 1,
"properties": {
"usernames": {
"title": "Usernames",
"type": "array",
"description": "List of usernames to fetch information for",
"editor": "stringList",
"placeholderValue": "CryptoRankNews",
"prefill": ["CryptoRankNews", "t.me/CryptoRankNews"]
},
"loadAdditionalData": {
"title": "Load additional data",
"type": "boolean",
"description": "Load more profile fields (takes longer). Can also return a phone number when it is publicly available.",
"editor": "checkbox",
"default": false
}
},
"required": ["usernames"]
}

Example:

{
"usernames": ["CryptoRankNews", "t.me/CryptoRankNews"],
"loadAdditionalData": true
}

Output

Each username produces one dataset item.

Without loadAdditionalData (default)

User

{
"username": "jane_doe",
"exists": true,
"isUser": true,
"title": "Jane Doe",
"description": "Product designer",
"photoUrl": "https://cdn.example/photo.jpg",
"error": null
}

Channel

{
"username": "example_news",
"exists": true,
"isUser": false,
"title": "Example News",
"description": "Daily updates",
"photoUrl": "https://cdn.example/channel.jpg",
"participants_count": 125000,
"error": null
}

With loadAdditionalData: true

User

{
"username": "jane_doe",
"exists": true,
"isUser": true,
"title": "Jane Doe",
"description": "Product designer",
"photoUrl": "https://cdn.example/photo.jpg",
"participants_count": -1,
"telegramId": 123456789,
"firstName": "Jane",
"lastName": "Doe",
"phone": "",
"about": "Product designer",
"status": "UserStatusRecently",
"langCode": "en",
"premium": false,
"blocked": false,
"bot": false,
"hasPhoto": true,
"gender": null,
"deleted": false,
"fake": false,
"scam": false,
"contactRequirePremium": false,
"dcId": "EU",
"photoDcId": 2,
"storiesUnavailable": true,
"storiesMaxId": 123,
"verified": false,
"botVerificationIcon": null,
"botVerificationIconUrl": null,
"botVerificationBotId": null,
"botVerificationDescription": null,
"error": null
}

Channel

{
"username": "example_news",
"exists": true,
"isUser": false,
"title": "Example News",
"description": "Daily updates",
"photoUrl": "https://cdn.example/channel.jpg",
"participants_count": 125000,
"telegramId": 987654321,
"storiesUnavailable": true,
"storiesMaxId": null,
"hasChatLink": false,
"megagroup": false,
"gigagroup": false,
"verified": false,
"restricted": false,
"forum": false,
"noforwards": false,
"joinRequest": false,
"joinToSend": false,
"slowmodeEnabled": false,
"hasGeo": false,
"signatures": false,
"creationDate": 1609459200,
"photoId": "1234567890123456789",
"botVerificationIcon": "5368324170671202286",
"botVerificationIconUrl": "https://…/bot_verification_icons/5368324170671202286/preview?X-Amz-…",
"botVerificationBotId": 8000000001,
"botVerificationDescription": "Verified channel",
"error": null
}

Usage

Set up your Apify account: Sign up at Apify and create a new Actor.

Provide input: Input a list of Telegram usernames in the JSON input field.

Run the Actor: Execute the Actor to fetch details for each username.

Retrieve results: Access the dataset to view results in a table format.

FAQ

What happens if a username doesn't exist?

You get a row with "exists": false. The run doesn't fail, and the other usernames in the list are still checked.

How do I tell a user from a channel or group?

Check the isUser field: true means a personal account, false means a channel or group. Channels and groups also have participants_count.

Can I get a channel's subscriber count without being an admin?

Yes. participants_count is public for channels and groups, so no admin rights are needed.

When should I turn on loadAdditionalData?

Turn it on when you need more than the basics: Telegram ID, Premium, bot, scam, fake, and verified flags, language, last-seen status, and channel settings. It makes the run slower, so leave it off for a simple existence check.

Does it return phone numbers?

Only with loadAdditionalData, and only if the account owner made the number visible in their Telegram privacy settings. Most accounts hide it.

Which input formats work?

username, @username, and t.me/username links all work, and you can mix them in one list.

🔁 Run it on a schedule

Apify Schedules run this Actor for you: Console → Schedules → Create new → add this Actor or one of your saved tasks → set how often it runs.

Weekly works for tracking a list of channels. Schedule a saved task with the channels you watch, and send the dataset to Google Sheets through Make or Zapier. Comparing participants_count week by week shows which channels are growing and which are losing subscribers.

Published examples

Ready-to-run tasks with pre-filled inputs:

All username examples · Need full export? akula.marketing

🔌 Automate with Zapier & Make

No code needed — trigger this Actor from your existing tools.

  • Zapier: search for the "Apify" app → action Run Actor → select akula.marketing/telegram-get-username-info → map a trigger field (e.g. a new row in Google Sheets or a new lead in your CRM) to usernames → send the output to Sheets, your CRM, or Slack. Docs
  • Make: add the Apify → Run an Actor module, select this Actor, set "Run synchronously" to Yes, then chain a Get Dataset Items module to pull results into your scenario. Docs

Example: new row added to a Google Sheet of handles → Zap runs this Actor → verified username, subscriber count, and photo get written back to the same row.

🤖 Use with AI agents (MCP)

This Actor works as a tool in Claude, ChatGPT, Cursor, and other MCP clients through the Apify MCP server. Add this server URL to your client:

https://mcp.apify.com?tools=akula.marketing/telegram-get-username-info

The first time you connect, the client asks you to sign in to Apify. Runs are billed to your Apify account, the same as runs from the Console.

Then ask in plain language, for example: "Check which of these Telegram handles exist and how many subscribers each channel has: durov, telegram, CryptoRankNews". The agent reads the input schema, fills in the fields, and gets the results back as structured data.

Next stepActor
Turn one channel into a list of similar channels to checkTelegram Similar Channels Finder
Check a channel's recent posts, views, and reactions before you buy a placementTelegram Channel Post & Media Scraper
Get the full profile photo history of an accountTelegram Profile Photo Scraper
Start from a phone number instead of a usernameTelegram Phone Number Lookup

Support

Support 24/7 - @KoteamSupport. We also offer specialized solutions for Telegram-related tasks — contact us to learn more

⭐ Found this useful? Leave a review — it helps others find this Actor and tells us what to build next.

🏷️ Find This Tool When You Search For "verify if a Telegram username exists" - Existence check before outreach or CRM import "get Telegram channel subscriber count" - Public channel member counts without admin access "check if Telegram username is a user or channel" - User vs channel type detection "Telegram username lookup API" - Bulk validation for lead lists and pipelines "scrape Telegram channel title description and photo" - Public channel metadata export "telegram group analytics" - Get real member counts and community data "telegram community research" - Analyze groups for market intelligence 🎯 Validate a list of handles in one run 📊 Get channel sizes and metadata without admin access