Telegram Channel Content Scraper avatar

Telegram Channel Content Scraper

Pricing

from $3.50 / 1,000 post scrapeds

Go to Apify Store
Telegram Channel Content Scraper

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

akula.marketing

Maintained by Community

Actor stats

2

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

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

FieldTypeDescriptionRequiredDefault
channelsArrayTelegram channel usernames or t.me links to scrape (max 25 per run).Yes
maxPostsPerChannelIntegerMaximum posts to fetch per channel across the whole run (1–1000).No100
daysRangeIntegerOnly fetch posts published within the last N days (1–90).No30
includeTextBooleanInclude the post text in the results.Notrue
mediaOnlyBooleanOnly return posts that contain media.Nofalse
downloadMediaBooleanDownload and re-host media, returning stable presigned URLs.Nofalse

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

FieldDescription
channel, channelLink, channelTitle, channelDescription, subscribersChannel metadata, repeated on every post row
postId, postUrl, date, views, textCore post data
reactions, totalReactionsList of {emoji, count} and their sum
hashtags, mentions, linksExtracted from post text and entities
hasMedia, mediaUrls, mediaTypesMedia presence, presigned download URLs (7-day expiry), and file types
isForward, forwardFromType, forwardFromId, forwardFromName, forwardChannelPost, forwardPostAuthor, forwardDateForward chain details, when the post is forwarded
replyToMsgId, replyToPostUrlSet when the post is a reply within the channel
editDateSet when the post was edited after publishing
error, rateLimitSecondsSet 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

  1. Input channels: Provide one or more channel usernames (e.g. telegram, @telegram, or https://t.me/telegram).
  2. Run the Actor: Execute to fetch posts.
  3. 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