Telegram Intelligence Pro - Channels, Posts, Monitor avatar

Telegram Intelligence Pro - Channels, Posts, Monitor

Pricing

from $8.00 / 1,000 post extracted (non-empty only)s

Go to Apify Store
Telegram Intelligence Pro - Channels, Posts, Monitor

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

Omar Eldeeb

Maintained by Community

Actor stats

2

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

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 bbcnews or cnn, 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 workflowschannel_snapshot for one-shot pulls, posts_history for deep paginated walks via ?before=, search_by_keyword for filtered cross-channel scans, monitor_channels for 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

  1. Choose a mode (channel_snapshot is the default — good for first-time exploration).
  2. Add public channel handles to the channels field (e.g., durov, telegram, bitcoin_news). Plain handles or full URLs both work.
  3. Optionally tune maxPostsPerChannel, concurrency, and proxyConfiguration.
  4. 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

FieldTypeDescription
recordType"channel" | "post"Discriminator
channelHandlestringLowercased canonical handle
channelTitlestringChannel display name
channelDescriptionstringChannel bio
isVerifiedbooleanVerified-badge present
subscriberCountnumberParsed from "11.3M" / "199K" / "263"
photoCount / videoCount / linkCountnumberMedia counters
avatarUrlstringChannel avatar (cdn4.telesco.pe — expires by Telegram design)
postIdstring"<channel>/<msgId>"
msgIdnumberNumeric post ID
textstringPost body (may be empty for media-only posts)
postedAtISO dateUTC timestamp
viewCountnumberParsed from "9.95M" / "199K"
reactionsTotalnumberSum of all reaction counts
reactionsarray[{emoji, count}, ...]
forwardedFromHandle / forwardedFromNamestringSource channel if post is a forward
mediaUrlsarrayPhoto / video / link-preview URLs
fetchedAtISO dateWhen this row was scraped
sourceUrlstringCanonical t.me URL

How much does it cost?

EventPriceWhen charged
apify-actor-start$0.01Auto-fired per GB of memory on run start
channel-resolved$0.005Only when handle returns 200 OK on t.me/s/<handle> with valid metadata
post-extracted$0.008Only for non-empty posts (text OR media OR views OR reactions OR forwards present)
search-result$0.01Per post matching a searchKeywords filter
monitor-delta$0.005Per 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

  • includeReactions and includeForwards are on by default. Disable them to reduce row size if you only need text + views.
  • concurrency defaults to 5. Telegram tolerates ~50 req/s per IP — raise it to 10-20 for bulk channel snapshots.
  • proxyConfiguration defaults to Apify proxy with no group (datacenter). Switch to RESIDENTIAL if 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, reuters are NOT public Telegram channels. The actor will warn "is not a public channel" and skip them WITHOUT charging. Find the real handle via search at tgstat.com or pass verified t.me/s/ URLs.
  • CDN media URLs (cdn4.telesco.pe) expire by Telegram design. Download media immediately if you need to retain it.

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.