Telegram Channel Content Scraper
Pricing
from $3.50 / 1,000 post scrapeds
Telegram Channel Content Scraper
Scrape Telegram channel posts — text, reactions, hashtags, mentions, forwards, replies, and downloadable media — straight to your dataset, no webhook needed. Multi-session pool means no queue wait and no 10-channel cap: up to 25 channels, 1,000 posts each. Pay only for posts scraped.
Pricing
from $3.50 / 1,000 post scrapeds
Rating
5.0
(1)
Developer
akula.marketing
Maintained by CommunityActor stats
2
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Telegram Channel Post & Media Scraper
Scrape Telegram channel posts — text, reactions, hashtags, mentions, forwards, replies, and downloadable media — for research, content archiving, and OSINT. Results return directly in the Apify dataset: no webhook to configure, no Excel export to download.
No shared-session queue. Other Telegram content scrapers route every run through one login, so you wait in line and get capped around 10 channels/run. This Actor runs on a multi-session pool — no queue wait, and up to 25 channels / 1,000 posts each in a single job.
This Actor uses your channel's public post history via the channels.getHistory API and works on any public channel without requiring bot admin access.
To get more functionality use akula.marketing
📥 Input
The Actor accepts the following input fields:
📋 Input Schema
| Field | Type | Description | Required | Default |
|---|---|---|---|---|
channels | Array | Telegram channel usernames or t.me links to scrape (max 25 per run). | Yes | — |
maxPostsPerChannel | Integer | Maximum posts to fetch per channel across the whole run (1–1000). | No | 100 |
daysRange | Integer | Only fetch posts published within the last N days (1–90). | No | 30 |
includeText | Boolean | Include the post text in the results. | No | true |
mediaOnly | Boolean | Only return posts that contain media. | No | false |
downloadMedia | Boolean | Download and re-host media, returning stable presigned URLs. | No | false |
Channels can be provided as @channelname, channelname, or a Telegram URL like https://t.me/channelname.
📤 Output
Results are pushed directly to the Actor's default dataset — one row per scraped post. If a channel can't be scraped (private, not found, or rate-limited), a single row with an error field is added for that channel instead of failing the whole run.
Post fields
| Field | Description |
|---|---|
channel, channelLink, channelTitle, channelDescription, subscribers | Channel metadata, repeated on every post row |
postId, postUrl, date, views, text | Core post data |
reactions, totalReactions | List of {emoji, count} and their sum |
hashtags, mentions, links | Extracted from post text and entities |
hasMedia, mediaUrls, mediaTypes | Media presence, presigned download URLs (7-day expiry), and file types |
isForward, forwardFromType, forwardFromId, forwardFromName, forwardChannelPost, forwardPostAuthor, forwardDate | Forward chain details, when the post is forwarded |
replyToMsgId, replyToPostUrl | Set when the post is a reply within the channel |
editDate | Set when the post was edited after publishing |
error, rateLimitSeconds | Set on channel-level failures instead of post data |
Example Output
{"channel": "@telegram","postId": 454,"postUrl": "https://t.me/telegram/454","date": "2026-07-19T17:58:20+00:00","views": 1057413,"text": "For all the details on these new features, check out our blog...","reactions": [{"emoji": "👍", "count": 120}],"totalReactions": 120,"hashtags": [],"mentions": [],"links": ["https://telegram.org/blog/..."],"hasMedia": true,"mediaUrls": ["https://.../channel-content/telegram/454_0.jpg?..."],"mediaTypes": ["jpg"],"isForward": false,"error": null}
Usage
- Input channels: Provide one or more channel usernames (e.g.
telegram,@telegram, orhttps://t.me/telegram). - Run the Actor: Execute to fetch posts.
- Read the dataset: Results appear directly in the run's dataset — no webhook or polling required.
Pricing
This Actor uses pay-per-event pricing — you're charged per post scraped (post-scraped event), not per Actor run. Media downloads, hashtag/mention/reaction extraction, and forward/reply metadata are all included at no extra cost.
🔌 Automate with Zapier & Make
No code needed — trigger this Actor from your existing tools.
- Zapier: search for the "Apify" app → action Run Actor → select
akula.marketing/telegram-get-channel-content-media→ since this Actor returns results directly in the dataset, use the Get Dataset Items action after the run completes to pull the scraped posts into your Zap. Docs - Make: add the Apify → Run an Actor module, then the Apify → Get Dataset Items module to fetch the results once the run finishes. Docs
Support
Support 24/7 - @KoteamSupport. We also offer specialized solutions for Telegram-related tasks — contact us to learn more
🏷️ Find This Tool When You Search For "telegram channel content scraper" - Extract post text, media, and metadata from any public channel "telegram media downloader" - Bulk download photos, videos, and documents from channel posts "telegram post reactions scraper" - Track engagement, reactions, and view counts over time "telegram hashtag and mention extractor" - Mine channel posts for hashtags, mentions, and links "telegram forward tracking tool" - Trace forward chains and original post sources "telegram content archiving" - Preserve channel posts and media for research or compliance "telegram osint" - Open source intelligence from Telegram channel content 🎯 Turn a channel's post history into structured, exportable data with media included 🛡️ Archive channel content and engagement for research and compliance 💰 Mine channel posts for leads, trends, and market signals