Telegram Channel Scraper · Posts, Views, Date Range avatar

Telegram Channel Scraper · Posts, Views, Date Range

Pricing

Pay per event

Go to Apify Store
Telegram Channel Scraper · Posts, Views, Date Range

Telegram Channel Scraper · Posts, Views, Date Range

Scrape public Telegram channels without an account or API key: post text, views, photos, videos, documents, forwards, replies. True server-side date filtering, a typed status for every channel (never a silent empty run), and $0 when nothing is returned.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Automation Craft

Automation Craft

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Share

Scrape public Telegram channels — post text, views, photos, videos, documents, forwards, replies and channel stats — with no Telegram account, no API keys, no phone number. Pure HTTP against Telegram's own web preview, so it's fast and cheap.

Built specifically to fix the three things users of existing Telegram scrapers complain about the most:

Why this scraper

1. A typed status for every channel — never a silent empty run

Other scrapers "didn't scrape some of the publicly accessible channels I tested" and returned nothing without telling you why. Here, every channel you request gets a free channel-summary item with a typed status:

StatusMeaning
okPosts scraped successfully
not_foundNo such public username (banned/deleted channels look identical on the web)
botThe username is a bot, not a channel
userThe username is a personal account
groupThe username is a group/supergroup — Telegram exposes no web preview for message history
private_or_no_previewThe channel exists, but its owner disabled the web preview
no_posts_in_rangeThe channel is fine — it just has no posts inside your date window
errorNetwork/HTTP failure or invalid input reference (message included)

You always know what happened and why — and none of these cost you anything.

2. True server-side date filtering — you don't pay for out-of-range posts

Other scrapers' date filters are "totally not right" and charge you for piles of non-relevant messages. This actor seeks your date window directly in the channel history using Telegram's own ?before= pagination (an interpolated jump, typically 2–5 pages even for a years-old window in a huge channel), walks only the pages inside the window, and emits and charges only in-range posts. It never downloads everything and filters afterwards.

Each channel summary also tells you dateWindowFullyCovered: true/false — so you know whether you got the complete window or hit your cap first.

3. Zero results = $0

If a channel yields nothing — wrong name, bot, private, empty date window — you are charged nothing for it. Status items and run summaries are always free. The channel-info item is only charged when the channel also returned at least one post.

What you get

One dataset item per post:

{
"type": "post",
"requestedChannel": "durov",
"channel": "durov",
"id": "519",
"postUrl": "https://t.me/durov/519",
"date": "2026-05-20T15:38:10+00:00",
"text": "🤖 Your Telegram inbox can now run itself.\n\nAssign a bot to read and reply for you — with granular control over its rights and chat access. 🧠\n\n⚙️ Start building!",
"links": ["https://core.telegram.org/bots/features#secretary-bots"],
"views": 8620000,
"viewsRaw": "8.62M",
"photos": [],
"videos": [
{ "thumbUrl": "https://cdn4.telesco.pe/file/…", "duration": "0:09" }
],
"documents": false,
"poll": null,
"forwardedFrom": null,
"replyTo": null,
"authorSignature": "Pavel Durov",
"isAlbum": false,
"isServiceMessage": false,
"edited": false
}

(Real output from a live run against t.me/durov. textHtml, documentFiles, linkPreview, roundVideo, audio fields also included.)

Plus, per channel:

  • channel-info item (optional): title, description, verified badge, subscriber/photo/video/link counts — as numbers and the raw strings (9910000 and "9.91M").
  • channel-summary item (always, free): typed status, posts returned, date range covered, dateWindowFullyCovered, pages fetched.

Field reliability (measured across 278 posts from 15 real channels)

Always populated: id, date (100%), views (99.6%), text (95%; empty for pure-media posts). Populated when the post contains that content: photos, videos, links, forwardedFrom, replyTo, documentFiles, authorSignature, edited, isAlbum. Best-effort: poll (parser follows Telegram's widget markup but no live poll appeared in probed channels), roundVideo, audio.

Media albums: Telegram's web preview renders an album as one post with multiple entries in photos/videos (isAlbum: true) — you're charged one post, not one per photo.

✅ CAN / ❌ CANNOT

✅ Public channels with web preview enabled (the vast majority) ✅ Post text (plain + HTML), dates, view counts, links ✅ Photos, video thumbnails + durations, documents, audio flags ✅ Forward headers, reply quotes, author signatures, edited markers, service messages ✅ Channel metadata: title, description, subscribers, verified badge ✅ Date-range scraping that only bills in-range posts ✅ Works with usernames, @names, or any t.me URL form

❌ Private channels or invite links (t.me/+…) — no web preview exists ❌ Channels whose owners disabled the web preview (reported as private_or_no_preview) ❌ Groups/supergroups — Telegram exposes no message history on the web (reported as group) ❌ Member lists, subscriber identities, or any personal user data ❌ Posting, joining, reacting — this is read-only public data ❌ Comment/reply threads under posts (the discussion group is separate) ❌ Full video/file downloads — you get URLs, thumbnails and metadata

Telegram may hide some channels from the web preview entirely — when that happens you get a typed status telling you so, not a silent empty run and not a bill.

Input

FieldTypeDefaultNotes
channelsarray["telegram"]Usernames, @names, or t.me URLs — all forms normalized
postsFromdateOldest post date, inclusive, UTC
postsTodateNewest post date, inclusive, UTC
maxPostsPerChannelinteger50Exact cap on charged posts per channel
includeChannelInfobooleantrueOne channel-info item per channel
oldestFirstbooleanfalseOutput order within a channel
proxyConfigurationobjectApify proxyDatacenter proxy is sufficient

Use cases

  • OSINT & research — archive and analyze public channel activity over exact date ranges
  • Brand & crypto monitoring — track mentions, announcements and sentiment sources
  • News aggregation — pull breaking-news channels into your pipeline with views as a signal
  • Trend analysis — post frequency, view velocity, forward patterns across channels

Fair pricing model

  • post — charged per delivered in-range post
  • channel-info — charged per info item, only when the channel also returned posts
  • Everything else — statuses, summaries, empty runs, failures — free

Up to 3 channels are scraped concurrently; pages within a channel are fetched sequentially and politely. 429/5xx responses are retried 3× with backoff.