Telegram Channel Posts Scraper
Pricing
from $1.00 / 1,000 posts
Telegram Channel Posts Scraper
Telegram channel scraper for public channels: posts and messages with views, reactions, media links and full history by date. No login, phone number or API key. $1 per 1,000 posts.
Pricing
from $1.00 / 1,000 posts
Rating
0.0
(0)
Developer
TechyMaki Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
20 hours ago
Last modified
Categories
Share
Scrape posts from public Telegram channels: text, date, views, reactions, forwarded-from, reply target, media links, text links and link previews. Walks the full channel history back in time, filters by date range, and takes many channels in one run. No Telegram account, login, API key or phone number.
Use it as a Telegram channel scraper or Telegram messages scraper for public channels: monitor news and crypto channels, archive a channel's history, or feed posts into sentiment and research pipelines. $1 per 1,000 posts.
What it can and cannot do
- It reads the public web preview Telegram itself publishes at
https://t.me/s/<channel>. You get what Telegram exposes publicly there, nothing more. - Public channels only. Private channels, groups, invite links and channels that disabled the web preview return one
{ "channel", "error" }item. Error items are never charged. - Pages are fetched politely (3 concurrent requests, short delay). If t.me ever answers 403/429 the actor stops instead of trying to get around it.
- Telegram hides some things in the preview, and the actor reports
nullor an empty list for them instead of guessing:- The source of a forwarded post is often blank in the preview.
forwardedFromis then{ "name": null, "url": null }: you still learn the post is a forward. - Very large videos have no playable URL (
url: null), only a thumbnail. - Polls, documents and audio files are not exposed in the preview HTML we tested against, so they are not extracted (see Known limits).
- The source of a forwarded post is often blank in the preview.
- Subscriber counts and view counts come from Telegram's rounded display values (
1.2K,3.4M), so they are approximate for big numbers.
Input
| Field | Type | Default | Notes |
|---|---|---|---|
channels | array | required | Usernames (durov), @durov, or links (https://t.me/durov, https://t.me/s/durov). Duplicates are removed. |
maxPostsPerChannel | integer | 100 | Newest first. The actor follows ?before= pagination (about 20 posts per page) until the cap. |
dateFrom | string | none | ISO date or date-time, UTC. Paging stops once posts are older. |
dateTo | string | none | ISO date or date-time, UTC. A date-only value includes the whole day. |
includeChannelInfo | boolean | true | One extra item per channel. |
{ "channels": ["durov", "https://t.me/bloomberg"], "maxPostsPerChannel": 60, "dateFrom": "2026-09-01" }
Output
Items are of three kinds. Channel info (once per channel, first):
{"type": "channel","channel": "bloomberg","title": "Bloomberg","description": "The first word in business news.","subscribers": 185000,"photoUrl": "https://cdn5.telesco.pe/file/L0xcvHXl…jpg","verified": true,"scrapedAt": "2026-10-26T13:00:19.797Z"}
Posts, newest first (real item from a local run; text, reactions and the photo URL shortened here):
{"type": "post","channel": "bloomberg","postId": 3224,"url": "https://t.me/bloomberg/3224","date": "2026-09-03T03:10:11.000Z","text": "EXCLUSIVE: TikTok developer ByteDance secures a $30 billion loan in Asia’s second-largest dollar-denominated borrowing this year. Read more: https://bloom.bg...","views": 79900,"reactions": [{ "emoji": "❤", "count": 180, "customEmojiId": null, "paid": false },{ "emoji": "🔥", "count": 143, "customEmojiId": null, "paid": false }],"forwardedFrom": null,"replyToPostId": null,"media": [],"links": ["https://bloom.bg/4dbLUqz"],"linkPreview": {"url": "https://bloom.bg/4dbLUqz","siteName": "Bloomberg.com","title": "ByteDance Gets $30 Billion Loan, Asia’s Second-Largest This Year","description": "ByteDance Ltd., the developer of TikTok, has secured a $29.6 billion loan, according to people familiar with the matter, in Asia’s second-largest dollar-denominated borrowing this year."},"edited": false,"scrapedAt": "2026-10-26T13:00:19.797Z"}
Field notes:
media[]items are{ "type": "photo" | "video" | "voice" | "sticker", "url" }; videos also carrythumbnailUrl. Albums produce several items.reactions[]: standard emoji haveemoji; custom emoji havecustomEmojiIdandemoji: null; Telegram Stars reactions havepaid: trueandemoji: "⭐".forwardedFromisnullfor original posts.- Missing values are
null(no text on a photo-only post, no view count on a service post). - A full real output of 5 channels, including an error item, is in
samples/sample-output.json.
Pricing (pay per event)
| Event | Price |
|---|---|
post (one scraped post) | $0.001 (that is $1 per 1,000 posts) |
channel-info (one channel info item) | $0.002 |
apify-actor-start (once per run, Apify's standard start event) | $0.00005 |
Platform compute is included. Error items are free. The actor stops when your spending limit for the run is reached.
Performance
A local run with 4 channels at 60 posts each (240 posts, 3-4 pages per channel) took about 14 seconds on a home connection. Cloud timings and memory are not measured yet.
Known limits
- Only what
t.me/s/<channel>shows. Channels can switch the preview off at any time; then you get the error item. - Polls, documents and audio posts were not found in the sample pages we parsed, so those media types are not extracted. If a post consists only of an unsupported attachment,
textisnullandmediais empty. - Telegram can change its preview markup. The parser is tested against saved real pages, so a change shows up as a failing test first.
- Use it on public information and follow Telegram's terms and the laws that apply to you. Post text can contain personal data; you decide what you may do with it.