Telegram Channel Scraper - Posts, Views and Media avatar

Telegram Channel Scraper - Posts, Views and Media

Pricing

from $0.48 / 1,000 posts

Go to Apify Store
Telegram Channel Scraper - Posts, Views and Media

Telegram Channel Scraper - Posts, Views and Media

Scrape posts from public Telegram channels without login or API key: text, views, date, links, media, forwards and post URL. Many channels per run, full history paging and a date filter for monitoring.

Pricing

from $0.48 / 1,000 posts

Rating

0.0

(0)

Developer

Kamer Ozkan

Kamer Ozkan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Scrape posts from public Telegram channels as clean JSON, CSV or Excel: text, date, views, reactions, photos, videos, links, link previews, forwards and the post URL, plus the channel title and subscriber count. Many channels in one run, the full channel history page by page, and a date filter for daily monitoring. No login, no phone number, no API key.

What does Telegram Channel Scraper do?

Give it one or more public channels (durov, @telegram or https://t.me/telegram). The actor reads Telegram's own public web preview of each channel (t.me/s/<channel>), newest posts first, and pages back through the history until it has the number of posts you asked for or reaches your date filter. Every post becomes one flat row.

It works with plain HTTP requests to public pages: no Telegram account, no session file, no bot token and no proxy setup on your side. A run with 100 posts usually finishes in under 20 seconds.

Who is it for?

  • Media monitoring and PR teams: follow news, brand and industry channels every day and get new posts in a sheet, Slack or a webhook.
  • Crypto and market research: collect announcements and signals channels with views and reactions to measure attention.
  • OSINT and researchers: archive the history of public channels with dates, forwards and links for analysis.
  • Marketers and channel owners: benchmark competitor channels (posting frequency, views, reactions, media mix).
  • AI and data teams: build text datasets from public channels for classification, summaries or RAG.

What data can you get?

FieldExample
channel, channelTitledurov, Pavel Durov
channelSubscribers, channelVerified10400000, true
channelDescriptionFounder of Telegram.
postId, url551, https://t.me/durov/551
date2026-10-10T14:22:43+00:00 (UTC)
textfull post text, plain text with line breaks and emoji
views, viewsText1030000, 1.03M (Telegram rounds large counts)
reactionsCount112900 (sum of all reactions shown)
editedtrue when Telegram marks the post as edited
forwardedFrom, forwardedFromUrlTelegram Designers, https://t.me/designers/266
mediaTypesphoto, video, document, audio, voice, poll, sticker, location
photos, videos, videoThumbnails, videoDurationmedia URLs shown in the preview, 1:15
links, hashtagslinks and hashtags in the post text
linkPreviewurl, siteName, title and description of the link card

Empty values are null or []. Media URLs are Telegram CDN links; they work for a limited time, so download the files soon if you need them.

How much does it cost?

You pay per delivered post: $0.60 per 1,000 posts ($0.0006 per post) on the Free plan, with Store discounts on paid Apify plans: Bronze $0.54, Silver $0.51, Gold and above $0.48 per 1,000 posts. Platform usage is included; there is nothing else to buy.

Worked example: monitoring 10 channels every day with up to 20 new posts each = at most 200 posts a day = 200 x $0.0006 = $0.12 per day, about $3.60 a month. A one-time archive of 5,000 posts costs $3.00.

Set "Max posts per channel", "Max posts in total" or a maximum cost per run to cap spending.

How to use it

  1. Click Try for free.
  2. Enter one or more Channels: a username, @username or a t.me link, one per line.
  3. Set Max posts per channel (newest first; the actor pages back through the history as far as you ask).
  4. Optional: set Only posts newer than to 2026-10-01 or 1 day for monitoring.
  5. Click Start, then download the posts as JSON, CSV or Excel, or read them through the API.
  6. For daily monitoring, save the input as a task and add a schedule (Schedules > Create new) with Only posts newer than set to 1 day.

Input example

{
"channels": ["durov", "https://t.me/telegram"],
"maxPostsPerChannel": 50,
"onlyNewerThan": "30 days",
"maxItems": 1000
}

Output example

A row from a QA run on 2026-10-12 (channel durov), media URLs shortened:

{
"channel": "durov",
"channelTitle": "Pavel Durov",
"channelSubscribers": 10400000,
"channelDescription": "Founder of Telegram.",
"channelVerified": true,
"postId": 548,
"url": "https://t.me/durov/548",
"date": "2026-09-11T16:04:02+00:00",
"text": "🤝 Telegram has become the sponsor of Codeforces, the largest competitive programming platform in the world. ...",
"views": 3150000,
"viewsText": "3.15M",
"edited": false,
"forwardedFrom": null,
"forwardedFromUrl": null,
"mediaTypes": [],
"photos": [],
"videos": [],
"videoThumbnails": [],
"videoDuration": null,
"links": ["https://codeforces.com/blog/entry/156620"],
"hashtags": [],
"linkPreview": {
"url": "https://codeforces.com/blog/entry/156620",
"siteName": "Codeforces",
"title": "Telegram Returns as Title Sponsor of Codeforces!",
"description": "Hi, Codeforces!"
},
"reactionsCount": 77930
}

Integrations and API

Run it from your code with the Apify API or the apify-client package, schedule it in Apify, or connect it to Make, n8n, Zapier, Google Sheets, Slack or a webhook.

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("kamerozkan/telegram-channel-scraper").call(run_input={
"channels": ["durov", "telegram"],
"maxPostsPerChannel": 50,
"onlyNewerThan": "7 days",
})
for post in client.dataset(run["defaultDatasetId"]).iterate_items():
print(post["date"], post["channel"], post["views"], post["text"][:80])

FAQ

Which channels work? Public broadcast channels that have a web preview at t.me/s/<channel>. Groups, private channels, bots and personal accounts have no public preview and are skipped with a note in the log. Most large public channels have the preview turned on.

How far back can I go? As far as the channel's public history goes: the actor pages back 20 posts at a time until it reaches your limit or date filter.

Why are views rounded? Telegram itself shows large numbers rounded (1.03M, 662K). viewsText keeps Telegram's text, views is the number.

What does a monitoring run return when nothing is new? It finishes successfully with zero posts and the status "No new posts since the date filter", so a schedule never shows a failed run just because a channel was quiet. You pay only for posts delivered.

Do I need a Telegram account or API key? No. The actor reads only the public web pages anyone can open in a browser.

Does it collect members or private messages? No. It reads public channel posts only, never member lists, comments of users or private chats. You are responsible for how you use the data, including privacy and copyright rules such as GDPR.

Support and feedback

  • Found a bug or missing a field? Open an issue on the Issues tab of this Actor. We reply within 48 hours and ship most fixes within a few days.
  • Have an idea for a feature? Issues are the fastest way to get it built.
  • If the Actor saves you time, a short review on this page helps other users find it.