Telegram Channel Scraper avatar

Telegram Channel Scraper

Pricing

from $1.00 / 1,000 post scrapeds

Go to Apify Store
Telegram Channel Scraper

Telegram Channel Scraper

Scrape posts from any public Telegram channel - message text, dates, view counts, media and forwards - exported as clean JSON, no login required.

Pricing

from $1.00 / 1,000 post scrapeds

Rating

0.0

(0)

Developer

Andrew

Andrew

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Extract every post from any public Telegram channel - message text, dates, view counts, media, forwards, and link previews. No login, no account, no API credentials required.

What you get

For every post in the channel, one clean dataset row with:

  • Message text as plain text, plus the canonical post URL (https://t.me/channel/123)
  • Publish date in ISO 8601 format and the view count as a real number (e.g. 1230000, not "1.23M")
  • Media flags and URLs - hasPhoto, hasVideo, and direct mediaUrls for photo images and video thumbnails
  • Forward detection - the name of the original channel when a post is forwarded
  • Link preview URL and whether the post is a reply
  • Scrape multiple channels in one run - each row is tagged with its channel
  • Paginated output: each run writes a resume cursor so you can fetch a channel's entire history across multiple runs
  • Export to JSON, CSV, Excel, or Google Sheets directly from the Apify console

Use cases

  • OSINT and investigations - archive and monitor public channels, track narratives, and preserve posts with timestamps and view counts
  • Crypto and trading alpha - monitor announcement and signal channels and pipe new posts into your own alerting or backtesting stack
  • Brand monitoring - track mentions, leaks, and sentiment in public communities around your product or industry
  • Research and journalism - build datasets of channel activity over time for trend, propaganda, or misinformation analysis
  • Competitor watching - follow competitors' announcement channels and measure engagement via view counts

How to use

  1. Enter one or more Channels - usernames (with or without @) or full t.me links
  2. Set Max Items (default 100 across all channels; set 0 to fetch the full history)
  3. Run the actor - posts appear in the Dataset tab, newest first, one post per row
  4. To keep going where the run stopped: open the Key-value store tab, copy the NEXT_PAGE_ID value, and paste it into Page ID on your next run. If NEXT_PAGE_ID is null, you've fetched everything.

Note: a small number of channels disable their web preview - those are skipped with a warning in the log.

Output format

Each dataset record:

{
"channel": "telegram",
"messageId": 449,
"url": "https://t.me/telegram/449",
"text": "For all the features from this update, like links in poll options...",
"date": "2026-06-18T14:36:10+00:00",
"views": 1230000,
"hasPhoto": false,
"hasVideo": false,
"mediaUrls": [],
"forwardedFrom": "",
"linkPreviewUrl": "https://telegram.org/blog/watch-apps-and-more",
"isReply": false
}