Telegram Channel Scraper: Posts, Views, Reactions & Media avatar

Telegram Channel Scraper: Posts, Views, Reactions & Media

Pricing

Pay per event

Go to Apify Store
Telegram Channel Scraper: Posts, Views, Reactions & Media

Telegram Channel Scraper: Posts, Views, Reactions & Media

Scrape public Telegram channels without login or API keys: every post with text, date, views, reactions, photos, videos, link previews, polls and forwards, plus channel subscribers. Search inside channels, date filter, single posts. $0.50 per 1,000 posts.

Pricing

Pay per event

Rating

0.0

(0)

Developer

A Q

A Q

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Scrape any public Telegram channel in seconds, with no Telegram account, phone number, API ID or login. Give it channel usernames or t.me links and get clean, structured JSON for every post:

  • Post text (emoji kept, line breaks kept), optional original HTML
  • Date, post ID and permanent link
  • Views, reactions per emoji with counts, total reactions and paid Telegram Stars
  • Media: photo URLs, video URLs with thumbnails and duration, documents
  • Link previews (URL, site, title, description, image), polls with options and percentages
  • Forwards (source channel), replies, edited flag, author signature
  • Links, hashtags and @mentions found in the post
  • One channel row per channel: title, description, verified badge, subscribers, photo/video/file/link counts

It also supports search inside a channel (Telegram's own search), a date filter ("last 7 days"), and single post links.

Pricing: $0.50 per 1,000 posts

This ActorTypical Telegram channel scrapers on Apify
Posts$0.50 per 1,000$2.00 to $10.00 per 1,000
Channel info rows$0.50 per 1,000$1.00 per 1,000 or more
Actor start$0.0005 per GB of memory (256 MB default)up to $0.01

You pay only for rows you receive. Set Max posts per channel or Max rows in total to cap a run, and your Apify maximum cost per run is respected exactly.

Use cases

  • Crypto, trading and news monitoring: schedule a run every hour on the channels you follow and send new posts to Slack, Google Sheets, a webhook or an LLM.
  • Brand and competitor monitoring: track what channels in your niche post, and which posts get the most views and reactions.
  • Research and journalism: archive a channel's history with dates, views and forwards for analysis.
  • Marketing and influencer research: compare channels by subscribers, views per post and engagement.
  • AI agents and RAG: clean plain text with links as full URLs, ready for embedding.

Input examples

Latest 20 posts of two channels:

{ "channels": ["telegram", "https://t.me/durov"], "maxPostsPerChannel": 20 }

Everything a channel posted in the last 7 days:

{ "channels": ["durov"], "publishedAfter": "7 days", "maxPostsPerChannel": 1000 }

Search inside a channel:

{ "channels": ["telegram"], "searchQuery": "stories", "maxPostsPerChannel": 100 }

One specific post:

{ "channels": ["https://t.me/durov/531"] }

Output

Post row:

{
"type": "post", "channel": "durov", "channelTitle": "Pavel Durov", "postId": 531, "url": "https://t.me/durov/531",
"date": "2026-07-16T20:45:25.000Z",
"text": "🩵 Telegram now has a Rich Text Editor.\n\nIt supports tables, headings, inline media, lists, AI content, formulas, and more.",
"views": 5850000,
"reactions": [{ "emoji": null, "customEmojiId": "5265077361648368841", "count": 54600 }],
"reactionsTotal": 88810, "paidStars": 6300, "edited": false, "signature": "Pavel Durov",
"forwardedFrom": null, "replyTo": null, "photos": [],
"videos": [{ "url": "https://cdn4.telesco.pe/file/....mp4", "thumbnailUrl": "https://cdn4.telesco.pe/file/....jpg", "duration": "0:20" }],
"documents": [], "linkPreview": null, "poll": null, "links": [], "hashtags": [], "mentions": [],
"scrapedAt": "2026-10-29T05:17:08.032Z"
}

Channel row:

{
"type": "channel", "username": "telegram", "title": "Telegram News", "description": "The official Telegram on Telegram.",
"verified": true, "subscribers": 9230000, "photosCount": 16, "videosCount": 228, "filesCount": null, "linksCount": 378,
"photoUrl": "https://cdn1.telesco.pe/file/....jpg", "url": "https://t.me/telegram"
}

Channels that could not be read (not found, private, or with the web preview turned off) are listed in the FAILURES record of the run's key-value store, and the rest of the run continues.

How it works and limits

The Actor reads Telegram's official public web preview of each channel (t.me/s/<channel>), the same page anyone can open in a browser. That means:

  • Only public channels with the web preview enabled can be scraped. Private channels, groups, and member lists are not supported, by design.
  • Counts like views and subscribers are rounded the way Telegram shows them (for example 5.85M).
  • Media URLs are Telegram CDN links and can expire after some time, so download files you need soon after the run.

FAQ

Do I need a Telegram account or API key? No. Nothing to set up.

How fast is it? About 20 posts per request; a 1,000-post channel history usually takes under a minute.

Can I get only new posts? Yes. Schedule the Actor with publishedAfter set to your schedule interval (for example "1 hour") and connect an integration.

Does it collect personal data? It returns only what channels publish publicly. It does not scrape group members, phone numbers or user profiles. You are responsible for using the data lawfully (for example GDPR).