Telegram Channel Scraper — posts, views, media (no login)
Pricing
$0.30 / 1,000 telegram posts
Telegram Channel Scraper — posts, views, media (no login)
Pricing
$0.30 / 1,000 telegram posts
Rating
0.0
(0)
Developer
Arthur
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Telegram Channel Scraper — public posts, views, media (no login)
Scrape any public Telegram channel into a clean dataset: post text, date, views, author signature, forwarded-from, reply-to, links, hashtags, photos, videos, documents, polls, link previews and reactions — plus the channel's title, description and subscriber count. It reads Telegram's public web preview (t.me/s/<channel>), so it needs no login, no phone number, no API key, no proxies and no browser. Runs are fast and cheap.
Typical uses: news and crypto-signal monitoring, brand/keyword alerts, competitor and influencer tracking, archiving channels, research datasets, feeding posts into LLM pipelines, Make/Zapier/Sheets automations.
What you get
One row per post (type: "post"):
| field | description |
|---|---|
channel, post_id, url | Channel handle, numeric message ID, https://t.me/<channel>/<id> |
date | ISO 8601 UTC timestamp |
text | Plain text (formatting, emoji and line breaks preserved); text_html optional |
views | View counter as a number (e.g. 23M → 23000000) |
author | Post signature, when the channel signs posts |
is_forwarded, forwarded_from, forwarded_from_url | Forward source |
reply_to_url, reply_to_text | Quoted/replied message |
links, hashtags | All hyperlinks in the post; hashtags |
media_type | text, photo, album, video, document, poll, sticker, voice, round_video, link |
photos, videos, video_thumbs, video_duration | Direct media URLs (CDN links, may expire after a while) |
document_name, document_size | Attached file |
poll_question, poll_options | Poll with option percentages |
link_preview | {url, site_name, title, description, image} |
reactions, reactions_total | [{emoji, count}] (custom-emoji reactions have emoji: null; Stars shown as ⭐) |
comments | Comment count when the channel has a discussion group and the preview shows it |
With Include channel info (default on) you get one type: "channel" row per channel: title, username, description, subscribers, photos, videos, links, files, verified, photo_url, url.
Channels that cannot be read (private, non-existent, users, bots, groups) produce a type: "error" row — free — and the run continues with the next channel.
Export as JSON, CSV or Excel, or push rows to Google Sheets, Make, Zapier, webhooks or your code via the Apify API.
Input
| field | default | meaning |
|---|---|---|
channels | — | Handles or links: durov, @telegram, https://t.me/bloomberg |
maxPostsPerChannel | 100 | Newest first; stop after this many stored posts |
since | — | Only posts on/after YYYY-MM-DD (paging stops at older posts) |
keywords | — | Keep only posts containing one of these words/phrases (case-insensitive) |
maxPagesPerChannel | 50 | Safety cap (~20 posts per page) for how far back to scan |
includeChannelInfo | true | Add one channel-info row per channel |
includeHtml | false | Add text_html with the formatted post HTML |
Example — last week's posts mentioning Bitcoin from three channels:
{"channels": ["durov", "telegram", "https://t.me/bloomberg"],"keywords": ["bitcoin", "BTC"],"since": "2026-08-20","maxPostsPerChannel": 200}
Schedule the actor (e.g. hourly) and deduplicate on channel + post_id to build a continuous monitor.
Pricing
Pay per event: $0.0003 per stored row ($0.30 per 1,000 posts). Each post row and each channel-info row counts as one event. Only rows actually written to the dataset are charged; error rows and filtered-out posts are free. Apify platform usage (a few seconds of compute per run) is billed separately by Apify.
Limitations — please read
- Works only for channels with a public web preview (public channels). Private channels, groups, bots and user profiles are not accessible without login — they return an error row.
- Telegram's preview does not expose the forward count or comment threads;
commentsis only filled when the preview shows a count. - Media URLs point to Telegram's CDN and can expire; download them soon after the run if you need the files.
- Very old history: each page is ~20 posts, so 10,000 posts = 500 requests (about 5 minutes at the polite rate this actor uses).
- Reactions with custom emoji have no text representation in the preview (
emoji: null, count still included).
Not affiliated with Telegram. Uses only publicly accessible pages.