Telegram Channels Scraper
Pricing
$0.90 / 1,000 channels
Telegram Channels Scraper
Find public Telegram channels by keyword or enrich known @handles and t.me links. Export titles, usernames, descriptions, member counts, visible flags, profile photos, and optional recent message previews.
Pricing
$0.90 / 1,000 channels
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
82
Total users
35
Monthly active users
19 hours ago
Last modified
Categories
Share
🔎 Find public Telegram channels for research
Researchers, marketers, and community teams can use Telegram Channels Scraper to find public Telegram channels from search terms or enrich known @handles, usernames, and t.me links. It returns channel titles, usernames, public URLs, descriptions, member or subscriber counts, visible flags, profile photos, discovery evidence, and optional recent message previews in clean dataset rows.
- Find public channels for topics such as AI, crypto, marketing, news, or sports with Telegram channels search.
- Build a research or outreach list with Telegram channels list and public channel details.
- Enrich known public handles or links with Telegram handles enrichment.
- Compare fields across markets, communities, creators, competitors, or news sources with Telegram channel metadata.
- Add a small public post sample without collecting a full message history with Telegram recent-message preview.
📦 Public Telegram channel rows
Returned data
Each saved row is the first eligible public match from a search term or known target. The row keeps the source context for that first match. Depending on what Telegram and the discovery source show, it can include channel identity, public counts and flags, a profile photo URL, keyword directory evidence, and up to five recent public messages.
▶️ Search or enrich known targets
Run steps
- Add search terms, known public channels, or both.
- Set the saved-row and per-term limits, or leave either limit empty to return all available results until its public source is exhausted.
- Turn on Recent message preview only when you need a small sample of recent public posts.
- Start the Actor and open the dataset.
First-match rule
When the same channel appears again through another keyword, URL, handle, or similar submitted value, the Actor keeps the first eligible saved row and ignores the later match. The saved row shows only the first match's search term or known-target position.
⚙️ Input
Use search terms, known channels, or both in one run. The two limits can be left empty to return all available results until the public source is exhausted.
Input fields
| Field | Type | What it does |
|---|---|---|
searchTerms | array of strings | Searches for public Telegram channels by words or topics. Up to 50 non-empty values. |
channelTargets | array of strings | Enriches public Telegram usernames, @handles, t.me links, or telegram.me links. Up to 1,000 non-empty values. |
maxChannels | integer | Maximum saved channel rows across search results and known targets. Leave it empty to return all available results until the public sources are exhausted. |
maxChannelsPerSearchTerm | integer | Maximum channels to consider for each search term. Leave it empty to return all available results for each term until that public source is exhausted. |
includeRecentMessagesPreview | boolean | Adds a small sample of recent public messages to each saved row. It is off by default. |
maxPreviewMessagesPerChannel | integer | Sets the preview size when previews are on. Use 1 to 5, or leave it at 0 when previews are off. |
Example input
This is the public input from a successful current-beta default-input run:
{"searchTerms": ["ai"],"channelTargets": ["@telegram"],"maxChannels": 10,"maxChannelsPerSearchTerm": 10,"includeRecentMessagesPreview": false,"maxPreviewMessagesPerChannel": 0}
Public scope
Only public Telegram pages are supported. Private /c/ links, invite-only chats, hidden member lists, Telegram login, cookies, phone numbers, and Telegram API keys are not supported.
🧾 Output
Each saved row follows one public dataset shape. The output schema exposes results as a link to the default dataset. Values that Telegram or the discovery source does not show can be null, and recentMessages is an array that can be empty.
Output link
| Field | Type | What it does |
|---|---|---|
results | string | Links to the saved rows in the default dataset. |
Dataset row fields
| Field | Type | What it does |
|---|---|---|
resultPosition | integer | Number of this row in the saved results. |
matchedSearchTerm | string or null | Search term that first found the row; null for a known target. |
inputIndex | integer or null | Zero-based position of the known target; null for a keyword result. |
username | string | Public Telegram username without the @ sign. |
channelUrl | string | Canonical public Telegram URL. |
channelTitle | string or null | Public channel or group title, when shown. |
description | string or null | Public channel or group description, when shown. |
entityKind | string or null | Public Telegram entity type, such as channel, group, bot, user, or unknown. |
memberCount | integer or null | Public member or subscriber count, when shown. |
isVerified | boolean or null | Says whether Telegram shows the entity as verified. |
isScam | boolean or null | Says whether Telegram marks the entity as a scam. |
isFake | boolean or null | Says whether Telegram marks the entity as fake. |
isRestricted | boolean or null | Says whether Telegram marks the entity as restricted. |
isBot | boolean or null | Says whether Telegram identifies the entity as a bot. |
profilePhotoUrl | string or null | Public profile photo URL, when shown. |
directory | object or null | Public directory evidence for a keyword match; null for a known target. |
directory.title | string or null | Title shown by the public directory. |
directory.description | string or null | Description shown by the public directory. |
directory.memberCount | integer or null | Member count shown by the public directory. |
directory.url | string or null | Public directory URL used to find the channel. |
recentMessages | array of objects | Up to five recent public messages when the preview is on. |
recentMessages[].messageId | string | Telegram message ID in the channel. |
recentMessages[].date | string or null | Message date and time, when shown. |
recentMessages[].text | string or null | Visible message text or caption, when present. |
recentMessages[].views | integer or null | Visible view count, when present. |
Keyword-search row
This is a complete row from a successful current-beta keyword run:
{"matchedSearchTerm": "telegram","inputIndex": null,"username": "hasbunallohi_va_nemal_vakii","channelUrl": "https://t.me/hasbunallohi_va_nemal_vakii","channelTitle": "Telegram","description": "You can view and join @hasbunallohi_va_nemal_vakii right away.","entityKind": "group","memberCount": 19,"isVerified": false,"isScam": false,"isFake": false,"isRestricted": false,"isBot": false,"profilePhotoUrl": "https://cdn4.telesco.pe/file/On14fWeRpkRD4mvrpEVmMpgzbLjkabmjubpHyFFASrifvkgrQFYoT1c7HfbL4OXoO17ofKYvGBoiX49RFFKDIdVTcl4_nvzwHmA51WRroejG_ACMPtYB5fyw1JDIbTAvhHM0r8a5roHvMfQptknyCtOSNalwvb_ELLGnraqFhAtj-GhPoVPv06guiAt60Tv0Nn6tw_Tsg7ts4vKenJZzCPscznjjIdtm1ARAp6vn_NJboVoJdUjksdd3SdMYYjnf3-d8lLXV_lLZM1TfWL9x6p9yyKrywLf-K5gBiavnxpOvMvIe9ulCqvYjam1h2B9RlW6yGbosqbdhDTb0OlhfzA.jpg","directory": {"title": "Telegram","description": null,"memberCount": null,"url": "https://lyzem.com/search?q=telegram&f=channels"},"recentMessages": [],"resultPosition": 1}
Known-target row with a preview
This is a complete row from a successful current-beta run with one recent public message preview:
{"matchedSearchTerm": null,"inputIndex": 0,"username": "telegram","channelUrl": "https://t.me/telegram","channelTitle": "Telegram News","description": "The official Telegram on Telegram. Much recursion. Very Telegram. Wow.","entityKind": "channel","memberCount": 9916916,"isVerified": true,"isScam": false,"isFake": false,"isRestricted": false,"isBot": false,"profilePhotoUrl": "https://cdn1.telesco.pe/file/p3pErmy-bGr0R07jl-Jy_EJ_3ZsthT0VjKSUY8IrImZ8Clyo0bO_9bHryNzQbN_Ok1wfKhfk-9A8Zv3T09upqHm33pOwnCowWNod3lUl-rVTzs7xp8_JUquGVrrVVVV0dcBnKC5gTGZvhfrwI-8k4ehIzjaSb97DgTYHzXck4ID8jTQfP7ttLrAetoIqP41-2kot9mwBZp_DVSHVT2Wp4LTFggHU2AOiUinPlSDsUvW5qKpWcwAtTCPAPZmN3uN6RICabnEDoGW_XkdeLarVudWjMbMThSxYgBaGbIbZSD1gYIt8zlKAFmy5MeTdr_oPp542KJJJnzu23ID0dLF7kQ.jpg","directory": null,"recentMessages": [{"messageId": "435","date": null,"text": "AI Text Editor. The message bar now has a built-in editor that can instantly fix grammar, translate your text or rewrite it in several styles:🤝 Formal🎯 Short🍖 Tribal🗿 Zen🕯 Biblical💼 CorpTelegram AI features are 100% private and optional – powered by the Cocoon AI Network.March Features1 • 2 • 3 • 4 • 5 • 6 • 7 • 8 • 9 • More","views": 1500000}],"resultPosition": 1}
Exports
You can export the dataset as JSON, CSV, Excel, XML, RSS, or HTML, or read it through the Apify API.
💳 Pricing
Pay-per-event
This Actor uses pay-per-event pricing. The charged event is one saved public Telegram channel row. Apify shows the current price before you start a paid run.
🔌 Integrations
Apify access
Run the Actor from the Apify API and move the default dataset into your own script, sheet, dashboard, CRM, or data workflow. Dataset exports are available as JSON, CSV, Excel, XML, RSS, or HTML.
Video guide
❓ FAQ
What happens when the same channel matches more than once?
The first eligible match is saved at once. Later matches from another keyword, URL, handle, or similar submitted value are ignored, so the row keeps only the first match's source context.
What happens when I leave a channel limit empty?
maxChannels returns all available results until the public sources are exhausted. maxChannelsPerSearchTerm does the same for each search term when it is empty.
Can I search for public Telegram channels?
Yes. Add one or more topics or keywords to Search terms, such as markets, products, regions, creators, or communities. The saved rows include the first matching search term when the source provides it.
Can I enrich a channel I already know?
Yes. Add a public username, @handle, t.me link, or telegram.me link to Known channels. You can use known targets alone or with search terms.
Can I add recent Telegram messages?
Yes. Turn on Recent message preview and set maxPreviewMessagesPerChannel from 1 to 5. The row can then include a small sample of recent public messages when they are visible.
Does it need a Telegram account or API key?
No. It uses public Telegram pages and does not need a Telegram login, cookies, phone number, or API key.
Can it scrape Telegram members or private channels?
No. It can return a public member or subscriber count when shown, but it does not collect member lists or private content.
Does it export full Telegram message history?
No. It adds only a small recent-message preview. Use a dedicated Telegram channel messages scraper when you need more than a small preview.
Can it return every channel that matches a keyword?
No exhaustive match set is promised. Available source results, your limits, and first-match deduplication affect which rows are saved.
Why use this instead of the Telegram API?
The Telegram API can fit an authenticated app workflow. This Actor is for public channel discovery and known-target enrichment without Telegram credentials.
📝 Changelog
1.0: More reliable channel results and clearer output
- Return completed public channel rows during larger runs, even when some individual lookups are unavailable.
- Provide focused channel rows with canonical URLs, search or target context, public details, and optional recent-message previews.
0.0: Initial release
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- Telegram Info Scraper — Enrich public Telegram usernames, channels, groups, bots, and profiles.
- Telegram Channel Messages Scraper — Collect public posts when a recent preview is not enough.
- Telegram Media Downloader — Get public photo and video links from posts after you find the right channels.
- YouTube Channel Search Scraper — Find public YouTube channels when your research spans another platform.
- BORG Telegram channel scraper — Export public channel posts and history for deeper message research.
Made with ❤️ by Maxime Dupré