Telegram Intelligence Pro - Channels, Posts, Monitor
Pricing
from $8.00 / 1,000 post extracted (non-empty only)s
Telegram Intelligence Pro - Channels, Posts, Monitor
Scrape Telegram public channels - channel metadata, posts with reactions/forwards/views, keyword search, monitor-mode delta detection. Charges only on NON-EMPTY rows. 302-fallback handles non-channel handles gracefully.
Pricing
from $8.00 / 1,000 post extracted (non-empty only)s
Rating
5.0
(1)
Developer
Omar Eldeeb
Maintained by CommunityActor stats
2
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Telegram Intelligence Pro — Channels, Posts, Monitor
Scrape Telegram public channels with empty-row-protection PPE (you only pay for posts with actual content), 302-fallback for non-channel handles, and complete field extraction (text, views, reactions, forwards, media). Built to fix the most common complaint about competing Telegram scrapers: paying for empty rows when a handle isn't a real channel or a post has no public preview.
Why use Telegram Intelligence Pro?
- Empty-row-protection PPE — most competing actors charge per row even when the row is hollow (empty text, no media, no views). We only charge for posts with at least one meaningful field. Verified non-channel handles are reported but NOT billed.
- 302 fallback for non-channel handles — when you pass
bbcnewsorcnn, Telegram silently redirects (because they're not public channels). We detect this and surface a clear warning instead of returning garbage rows. - Complete field extraction — channel meta (subscribers, photos/videos/links counts, verified badge, description), posts with full text, view counts, reaction emojis + counts, forwarded-from chain (network-intel signal), reply counts, media URLs.
- 4 modes for different workflows —
channel_snapshotfor one-shot pulls,posts_historyfor deep paginated walks via?before=,search_by_keywordfor filtered cross-channel scans,monitor_channelsfor KV-checkpointed delta detection between runs. - No anti-bot drama — Telegram's
t.me/s/<channel>SSR endpoint is public, ~50 req/s sustainable per IP, no JS challenge.
How to use Telegram Intelligence Pro
- Choose a mode (channel_snapshot is the default — good for first-time exploration).
- Add public channel handles to the
channelsfield (e.g.,durov,telegram,bitcoin_news). Plain handles or full URLs both work. - Optionally tune
maxPostsPerChannel,concurrency, andproxyConfiguration. - Run. Export results as JSON, CSV, Excel, or via the Apify API.
Input examples
Channel snapshot (most common):
{"mode": "channel_snapshot","channels": ["durov", "telegram"],"maxPostsPerChannel": 20,"includeReactions": true,"includeForwards": true}
Deep history walk:
{"mode": "posts_history","channels": ["bitcoin_news"],"maxPostsPerChannel": 500}
Search across channels:
{"mode": "search_by_keyword","channels": ["durov", "telegram", "bitcoin_news"],"searchKeywords": ["update", "release", "feature"],"maxItems": 50}
Monitor for new posts (run on schedule):
{"mode": "monitor_channels","channels": ["durov", "telegram"],"maxItems": 100}
Output
Each row is one channel or one post. Channel rows have recordType: "channel", post rows recordType: "post".
Sample channel row:
{"recordType": "channel","channelHandle": "durov","channelTitle": "Pavel Durov","channelDescription": "Founder of Telegram.","isVerified": true,"subscriberCount": 11300000,"photoCount": 98,"videoCount": 45,"linkCount": 188,"avatarUrl": "https://cdn4.telesco.pe/file/...","fetchedAt": "2026-05-25T19:43:03.384Z","sourceUrl": "https://t.me/durov"}
Sample post row:
{"recordType": "post","channelHandle": "telegram","postId": "telegram/425","msgId": 425,"text": "New Design. Telegram for Android has a fully redesigned interface…","postedAt": "2026-02-10T17:43:45+00:00","viewCount": 1620000,"reactionsTotal": 8412,"reactions": [{ "emoji": "👍", "count": 5102 }, { "emoji": "🔥", "count": 3310 }],"forwardedFromHandle": "telegram","forwardedFromName": "Telegram News","mediaUrls": ["https://cdn1.telesco.pe/file/..."],"fetchedAt": "2026-05-25T19:43:03.500Z","sourceUrl": "https://t.me/telegram/425"}
Data fields
| Field | Type | Description |
|---|---|---|
recordType | "channel" | "post" | Discriminator |
channelHandle | string | Lowercased canonical handle |
channelTitle | string | Channel display name |
channelDescription | string | Channel bio |
isVerified | boolean | Verified-badge present |
subscriberCount | number | Parsed from "11.3M" / "199K" / "263" |
photoCount / videoCount / linkCount | number | Media counters |
avatarUrl | string | Channel avatar (cdn4.telesco.pe — expires by Telegram design) |
postId | string | "<channel>/<msgId>" |
msgId | number | Numeric post ID |
text | string | Post body (may be empty for media-only posts) |
postedAt | ISO date | UTC timestamp |
viewCount | number | Parsed from "9.95M" / "199K" |
reactionsTotal | number | Sum of all reaction counts |
reactions | array | [{emoji, count}, ...] |
forwardedFromHandle / forwardedFromName | string | Source channel if post is a forward |
mediaUrls | array | Photo / video / link-preview URLs |
fetchedAt | ISO date | When this row was scraped |
sourceUrl | string | Canonical t.me URL |
How much does it cost?
| Event | Price | When charged |
|---|---|---|
apify-actor-start | $0.01 | Auto-fired per GB of memory on run start |
channel-resolved | $0.005 | Only when handle returns 200 OK on t.me/s/<handle> with valid metadata |
post-extracted | $0.008 | Only for non-empty posts (text OR media OR views OR reactions OR forwards present) |
search-result | $0.01 | Per post matching a searchKeywords filter |
monitor-delta | $0.005 | Per NEW post detected since previous monitor run |
Free trial: the first 30 chargeable events per run are free.
Typical cost scenarios:
- 50 channels × 20 posts each (channel_snapshot): ~$8.50
- 1 channel deep history × 500 posts (posts_history): ~$4
- 10 channels × 19 recent posts filtered by keyword (~30 matches): ~$0.30
- 10 channels × monitor weekly (~50 deltas/week): ~$0.25 per run
Tips & advanced options
includeReactionsandincludeForwardsare on by default. Disable them to reduce row size if you only need text + views.concurrencydefaults to 5. Telegram tolerates ~50 req/s per IP — raise it to 10-20 for bulk channel snapshots.proxyConfigurationdefaults to Apify proxy with no group (datacenter). Switch toRESIDENTIALif you hit rate-limits on shared IPs.- Monitor mode — first run is BASELINE (saves state, emits no deltas). Schedule it daily/hourly via Apify schedules — subsequent runs emit only NEW posts since the previous run.
bbcnews,cnn,reutersare NOT public Telegram channels. The actor will warn"is not a public channel"and skip them WITHOUT charging. Find the real handle via search attgstat.comor pass verifiedt.me/s/URLs.- CDN media URLs (
cdn4.telesco.pe) expire by Telegram design. Download media immediately if you need to retain it.
Legal disclaimer
This actor scrapes only public Telegram channel previews (t.me/s/<channel>) — content that Telegram itself surfaces without authentication. Private channels, member lists, and channels without public preview enabled are not accessible via this actor.
You are responsible for ensuring your use complies with Telegram's Terms of Service, your local laws (including GDPR/CCPA), and the rights of the channels and individuals whose public content you scrape.
FAQ
Q: Why does the actor say a channel "is not a public channel" when it clearly exists on Telegram?
A: Telegram silently redirects t.me/s/<handle> to t.me/<handle> for users, groups, bots, and channels without public preview. Only channels with public preview enabled (most news/crypto/public channels) are scrapable via SSR. For private channels with member lists, you would need MTProto with phone-number auth — that tier is on the roadmap.
Q: Why does my reactions array sometimes come back empty even though the channel has reactions? A: Some channels disable reactions at the channel level. This is a Telegram feature, not a scraping limitation.
Q: What's the difference between posts_history and monitor_channels?
A: posts_history walks BACKWARDS from the latest post (paginated via ?before=) — use it to bulk-pull a channel's archive. monitor_channels walks FORWARDS from the last-seen msgId stored in the actor's KV checkpoint — use it for ongoing monitoring.
Q: Can I scrape a private channel? A: Not in this version. v1.5 will add an optional MTProto tier for member lists + private channels via invite link.
Q: Why is the leader incumbent (tri_angle/telegram-scraper) rated 1.4★?
A: Per buyer reviews, the main complaints are (1) paying for empty rows when handles aren't public channels (302 silent failures), and (2) missing fields like reactions and forwards. This actor specifically addresses both — empty rows are not charged, and the full field set is extracted.
For issues or feature requests, open a thread on the Apify Actor issues page.