Telegram Channel Scraper: Messages, Views, No Login avatar

Telegram Channel Scraper: Messages, Views, No Login

Pricing

$1.50 / 1,000 message scrapeds

Go to Apify Store
Telegram Channel Scraper: Messages, Views, No Login

Telegram Channel Scraper: Messages, Views, No Login

Scrape messages from any public Telegram channel without an account, API key or phone number: text, date, views, reactions, links, hashtags, photos, videos and subscriber count. Filter by keyword or date. $1.50 per 1,000 messages. CSV, Excel, JSON, API.

Pricing

$1.50 / 1,000 message scrapeds

Rating

0.0

(0)

Developer

Azeddine MESKAOUI

Azeddine MESKAOUI

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 hours ago

Last modified

Share

Telegram Channel Scraper: public channels, no login

Get messages from any public Telegram channel, with no Telegram account, no API key and no phone number.

For each message: text, date, views, reactions, links, hashtags, photos, video, forwarded source, plus the channel's title and subscriber count.

Measured on Apify, October 2026: 18,387 messages from 24 channels in one run of 10 min 40 s through datacenter proxies, no failed channel, no duplicate, 288 MB peak memory. A smaller run of 1,500 messages from 5 channels took under 3 minutes.

Pricing

$1.50 per 1,000 messages ($0.0015 per message delivered). No start fee, no charge for compute time or proxies, and a channel that cannot be read costs nothing.

You extractYou pay
200 messages (the pre-filled example)$0.30
1,000 messages$1.50
10,000 messages$15.00

What it is for

  • Brand and market monitoring: follow what channels in your industry publish, with a keyword filter.
  • Crypto and trading: exchange announcements, listings, whale alerts, as structured rows the minute they are posted.
  • News and research: archive what media and official channels published, with view counts as a reach signal.
  • Content analysis: which posts get the most views and reactions on a channel, yours or a competitor's.
  • AI pipelines: clean text and links, ready to summarise or embed.

What you give it

  • Channels: usernames or links, in any of these forms: durov, @durov, https://t.me/durov, https://t.me/s/durov.
  • How far back to go: a number of messages per channel, a date (2026-09-01), or a period (7 days, 2 weeks, 3 months). Newest messages come first.
  • Keywords (optional): keep only messages containing at least one of them.

Example input

{
"channels": ["durov", "https://t.me/binance_announcements"],
"maxMessagesPerChannel": 200,
"newerThan": "30 days",
"keywords": ["listing", "launch"],
"proxyConfiguration": { "useApifyProxy": true }
}

Example output

One row per message. Text is shortened here.

{
"channel": "durov",
"messageId": 548,
"url": "https://t.me/durov/548",
"date": "2026-09-11T16:04:02+00:00",
"edited": false,
"text": "🤝 Telegram has become the sponsor of Codeforces — the largest competitive programming platform in the world…",
"views": 2050000,
"reactionsTotal": 71120,
"reactions": [
{ "emoji": "star", "count": 21200 },
{ "emoji": "5399847211989246390", "count": 31900 }
],
"mediaType": null,
"photoUrls": [],
"videoUrl": null,
"videoThumbnailUrl": null,
"documentTitle": null,
"links": ["https://codeforces.com/blog/entry/156620"],
"hashtags": [],
"linkPreview": {
"url": "https://codeforces.com/blog/entry/156620",
"site": "Codeforces",
"title": "Telegram Returns as Title Sponsor of Codeforces!",
"description": "Hi, Codeforces!"
},
"forwardedFrom": null,
"replyToUrl": null,
"authorSignature": "Pavel Durov",
"channelTitle": "Pavel Durov",
"channelSubscribers": 10500000,
"scrapedAt": "2026-10-05T17:11:15.772Z"
}

Fields

FieldDescription
channel, messageId, urlWhere the message lives. url opens it in Telegram
date, editedPublication time (UTC) and whether the message was edited
textMessage text, line breaks kept
viewsView count as shown by Telegram
reactions, reactionsTotalEach reaction with its count, and the sum. emoji is the character; for custom (premium) emoji it is Telegram's numeric id, and star for paid reactions
mediaTypephoto, video, document, audio, poll, sticker, or null for text only
photoUrls, videoUrl, videoThumbnailUrl, documentTitleMedia attached to the message
links, hashtagsLinks and hashtags found in the text
linkPreviewThe preview card Telegram shows for the first link: site, title, description
forwardedFrom, replyToUrl, authorSignatureSource of a forwarded message, the message replied to, the signing author
channelTitle, channelSubscribersChannel name and subscriber count (can be turned off)
scrapedAtWhen the row was collected

In a 24-channel test, date and subscriber count were present on 100% of messages, views on 99.7%, text on 98.9% (the rest are media without caption).

Run summary

Each run stores a RUN_SUMMARY record in the key-value store: for every channel, its status, subscriber count, number of messages saved and the date of the oldest one. A channel that cannot be read is reported there and in the log; it does not fail the run and produces no rows.

Speed and cost

Telegram serves 20 messages per page, so 1,000 messages take 50 requests. Channels are read five at a time. Datacenter proxies are enough; residential proxies are not needed. Some proxy IPs are slow with Telegram: the Actor notices and replaces them during the run, and reports how many in RUN_SUMMARY. 512 MB of memory is plenty.

Limits

  • Public channels only. Private channels, groups and invite links (t.me/+…) cannot be read.
  • Some public channels have no web preview and cannot be read either: the owner or Telegram disabled it (this is the case for several large media channels). They are reported as "no public preview". You can check a channel yourself by opening https://t.me/s/<username> in a browser: if it redirects to the channel's join page, no tool without a Telegram account can read it.
  • No member lists and no comments: the Actor reads what the channel itself published.
  • Subscriber and view counts are rounded by Telegram (10.5M, 187K).
  • Media links point to Telegram's servers and expire after a while. Download the files soon after the run if you need to keep them.
  • A keyword search with no date limit stops after scanning 5,000 messages per channel. Add a date or period to search further back.

FAQ

Do I need a Telegram account or API key? No. The Actor reads the public web preview that Telegram publishes for every open channel.

Can I get only new messages? Schedule the Actor and set Only messages newer than to the schedule interval, for example 1 day on a daily run.

Is this legal? The Actor only reads content that channel owners publish openly. Messages can still contain personal data written by their authors; make sure your use complies with the laws that apply to you, such as GDPR.

Something is missing or broken? Open an issue on the Issues tab with the channel you tried. Layout changes on Telegram's side are fixed quickly.