Telegram Channel Scraper & Keyword Monitor
Pricing
from $1.00 / 1,000 results
Telegram Channel Scraper & Keyword Monitor
Scrape public Telegram channels and monitor them for keywords — no API key, no phone, no login. Get posts, views, reactions, media & subscriber counts as clean JSON. Reliable retries, multi-channel keyword alerts, MCP-ready output for brand monitoring, crypto, OSINT & AI agents.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Alexandr Maier
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Scrape public Telegram channels and monitor them for keywords — no API key, no phone number, no login. Built for reliability and for AI agents: clean, flat, predictable JSON on every run.
This actor reads Telegram's public web preview (t.me/s/<channel>), the same data any browser sees when you open a channel without an account. It never logs in, never touches your Telegram account, and never asks for a phone number.
Why this one
Most Telegram actors do the same basic dump. Two things break them in production, and this actor fixes both:
- They crash on rate limits. This actor retries every request with exponential backoff and can fall back to Apify Proxy, so a long run finishes instead of dying at channel #7.
- They only scrape, they don't watch. Monitor mode remembers the last post it saw per channel and returns only new posts on each scheduled run — turn any channel list into a keyword alert feed.
What you get per message
{"channel": "durov","channelTitle": "Pavel Durov","channelSubscribers": 11700000,"id": 510,"url": "https://t.me/durov/510","datetime": "2026-05-12T17:28:39+00:00","text": "🌍 With 400 validators across 6 continents, TON is one of the most…","views": 3440000,"reactions": [{ "emoji": "🔥", "count": 12045 }],"media": ["photo"],"forwardedFrom": null,"links": ["https://ton.org"],"matchedKeywords": ["ton"],"scrapedAt": "2026-07-10T12:00:00.000Z"}
Input
| Field | Type | Description |
|---|---|---|
channels | array (required) | @name, name, or https://t.me/name |
keywords | array | Save only posts containing a keyword (case-insensitive). Empty = save all |
keywordMatch | substring | word | Substring (default) or whole-word matching |
mode | scrape | monitor | scrape = history; monitor = only new posts since last run |
maxPostsPerChannel | integer | Cap on posts scanned per channel (default 100) |
postsNewerThan | ISO date | Stop paging once older posts are reached |
minViews / minReactions | integer | Skip low-engagement posts |
useProxy | boolean | Route via Apify Proxy (only needed for large jobs) |
Example: monitor three news channels for a brand
{"channels": ["telegram", "durov", "bloomberg"],"keywords": ["bitcoin", "regulation", "SEC"],"keywordMatch": "word","mode": "monitor"}
Schedule this every 15 minutes and the dataset fills only with new, on-topic posts.
Use cases
- Brand & crypto monitoring — alert when your project, ticker, or competitor is mentioned across channels.
- OSINT & news — track announcements from public channels into a structured feed.
- AI agents (MCP) — flat JSON output plugs straight into a RAG pipeline or an MCP tool call ("what did channel X post about Y this week?").
- Research & analytics — export engagement (views, reactions) over a channel's history.
Pricing (pay-per-event)
| Event | Price |
|---|---|
| Actor start | $0.005 |
| Message saved | $0.0002 |
You pay only for messages that pass your filters. Scraping 1,000 matching posts costs about $0.20 + $0.005 = $0.205. No monthly subscription; the Apify free tier covers testing.
Limits & honest notes
- Works only with public channels that have web preview enabled. Private channels, groups, and comments are not accessible (and scraping them would require an account — out of scope by design).
t.me/s/serves ~20 posts per page; the actor paginates backward through history up to your limit.- Reads public preview data only. This actor does not use MTProto, does not collect member lists, and does not require your credentials.
- You are responsible for complying with Telegram's Terms and applicable law in your use of the data.
Local development
npm installapify run -p # requires apify-cli and Docker/Node 18+
src/parser.js isolates all HTML parsing — if Telegram ever changes its preview markup, that single file is the only thing to update.