Telegram Channel Scraper & Channels Search (messages, views)
Pricing
from $0.80 / 1,000 result items
Telegram Channel Scraper & Channels Search (messages, views)
Telegram channel scraper with no account, no API key and no phone number: messages of any public channel as flat rows β text, HTML, date, views, media, links, forwards β plus channel stats. Telegram channels search by keyword finds channels for a topic. Filter by regex or minimum views.
Pricing
from $0.80 / 1,000 result items
Rating
0.0
(0)
Developer
Viktor Dubnytskiy
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Scrape any public Telegram channel and search Telegram channels by keyword, with no account, no bot token, no API key and no phone number. The actor reads Telegram's own public previews, so nothing of yours is ever logged in or at risk.
What you get
One row per message, real values from the example dataset (channel durov, text truncated here):
| url | text | views | author |
|---|---|---|---|
https://t.me/durov/546 | π³οΈ Gram Wallet in Telegram is ready and is now accessible to a select group of usersβ¦ | 1040000 (viewsText 1.04M) | Pavel Durov |
includeChannelInfo also emits one type: channel row per channel: title Pavel Durov, description Founder of Telegram., subscribersText 10.9M, photosText/videosText/linksText 102/46/198.
Full message row: channel, messageId, url, text, html, postedAt, views, viewsText, author, forwardedFrom, replyTo, images[], videos[], links[], linkPreviewTitle, linkPreviewUrl, hasMedia, isService, scrapedAt.
Use cases
- Topic discovery β search by keyword and get each matching channel's subscriber count and description before you decide to follow it.
- Brand and market monitoring β watch a set of channels and get alerted on every new post that matches a regex or clears a view threshold.
- News, OSINT and signal work β archive a channel's public messages with dates, views, links and forwarded-from attribution.
Try it in 10 seconds
Hit Start/Try it β the input already works: channels: ["durov"], maxMessages: 100, maxItems: 20, nothing required. Swap in your own channel username or a searches keyword and run again.
To watch a channel over time: save the input as a Task, set mode to monitor, and put it on a schedule (Apify β Schedules β cron */30 * * * * for every 30 minutes). Each run then returns only messages that are new since last time, and can post them to webhookUrl or Telegram.
Related actors
- Telegram Channel Search Scraper (topic, subscribers, no login) β a dedicated topic search with subscriber-size filters, if you only need to shortlist channels, not their messages.
- Facebook Groups Search Scraper (members, privacy, no login) β the same keyword discovery, but for Facebook groups.
- Reddit Scraper (subreddit posts, search, comments, no login) β a subreddit-based alternative when the discussion lives on Reddit instead of Telegram.
How it works
- Channels β each
t.me/<name>public preview is paged backwards, newest first (about 20 messages per request), untilmaxMessagesis reached. - Searches β keywords are looked up in a public web index restricted to
t.me, and each matching channel is returned as atype: channelrow with subscribers and description. keywordFilterandminViewsare applied before rows are pushed, so you are not charged for messages you filtered out.- No proxy is required β Telegram serves these previews to anyone.
Input
| Field | Meaning | Default |
|---|---|---|
channels | Usernames or t.me links of public channels, e.g. durov | ["durov"] |
searches | Keywords β matching public channels | empty |
maxMessages | Messages per channel, newest first | 100 |
includeChannelInfo | Emit one type: channel row per channel | true |
keywordFilter | Regex; keep only messages whose text matches | empty |
minViews | Skip messages with fewer views | empty |
searchResults | How many channels to return per search keyword | 20 |
maxItems | Stop after this many rows | 20 |
mode | scrape or monitor (only new/changed since last run) | scrape |
monitorStateId, webhookUrl, telegramBotToken, telegramChatId | Monitor-mode state key and alert targets | empty |
Pricing
| Event | Price |
|---|---|
| result | $0.001 per row ($1 per 1,000) |
| monitor-check | $0.005 per monitor run |
| change | $0.001 per new/changed row |
Charged only for rows actually pushed. No proxy needed.
Found it useful? A short review on the Store page helps other people find this actor and tells us what to improve. If something is wrong, open an issue on the actor page β issues are answered within a day.
Why this actor
- No account, no bot token, no API key, no phone number β nothing of yours can be rate-limited or banned.
- Channel discovery and message scraping in one actor: search a topic, then read the channels you found.
- Regex and minimum-view filters run before billing, so you pay only for messages you keep.
- No proxy cost, unlike scrapers that route Telegram through residential IPs.
- Monitor mode with webhook and Telegram alerts on new posts.
Limits
- Only channels with public previews (most public channels; private groups, restricted or age-gated channels are not available).
- Comments and reactions are not included. Search uses a public web index, so very new or tiny channels may not be found.
viewsis what Telegram shows on the public preview at scrape time.
FAQ
Does it need a Telegram account, a phone number or an API key? No. It reads t.me public previews, the same pages any browser sees. The optional Telegram bot token in the input is only for sending yourself monitor-mode alerts and is never used to read channels.
Can it find channels by topic, or do I need the exact username? Both. Put keywords in searches to discover channels for a topic β you get one row per channel with subscribers and description β or put known usernames in channels to read their messages.
What happens when there are no results? No rows are pushed and no result events are charged. The RUN_SUMMARY record in the run's key-value store carries emptyReason, so "the filter matched nothing" is distinguishable from "the channel has no public preview".
Changelog
- 0.1: initial release.