Telegram Channel Scraper - Public Posts, Views, Media avatar

Telegram Channel Scraper - Public Posts, Views, Media

Pricing

Pay per event

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

Telegram Channel Scraper - Public Posts, Views, Media

Posts from public Telegram channels in one schema: text, date, views, reactions, links, media URLs, forwarded-from, channel info. Reads the t.me/s web preview. No login, no API key, no proxy.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Scrapify

Scrapify

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 hours ago

Last modified

Share

Telegram Channel Scraper: public posts, views, reactions and media from t.me channels

Scrape posts from public Telegram channels without a login, API key, phone number or proxy. Give channel usernames or t.me links and every post comes back as one clean row: channel, post ID and URL, date (ISO), text, views, author signature, forwarded-from, links, media type and media URLs, reactions and an edited flag. Optionally add one channel-info row per channel with title, description and subscriber count. Export to CSV, JSON or Excel, or call it from the API.

Use it for news and crypto channel monitoring, brand and keyword tracking, market research, OSINT on public announcements and building datasets for AI agents. Schedule it with a keyword or date window to get a daily feed. It reads only the public web preview Telegram publishes at t.me/s/<channel> - the same page anyone can open in a browser - so there is no Telegram API, no MTProto session and no account. Works with AI agents through the Apify MCP server.

Why this one

  • No login, no keys, no proxy. Only public channels with a web preview. Nothing to configure.
  • Pagination past the first page. Older posts are read page by page (about 20 per page) until your limit, date or keyword condition is met.
  • Filters: max posts per channel, optional overall cap, date from / date to (UTC), keywords (text or links). Posts removed by a filter are never charged.
  • One normalised schema for text, photo, video, link-preview, forwarded and reply posts.
  • Polite by design: 1-3 seconds between page requests, retries with backoff on 429 and 5xx, and a channel is stopped (the run continues) if Telegram keeps answering 429.
  • Clear errors per channel. A channel without a public preview (private, a user or bot, a group, deleted, or preview switched off) is reported in the log and in the run summary with the reason; the other channels still run. The run fails only if every channel fails.
  • Hard spending cap. Max posts per channel (default 20) is exact; pay per post only.

Input (main fields)

FieldMeaning
ChannelsUsernames, @handles or t.me / t.me/s links, one per line
Max posts per channelNewest first; default 20
Max posts (all channels)Optional overall cap
Posts from date / until dateUTC, YYYY-MM-DD or full ISO timestamp; a plain end date includes the whole day
KeywordsKeep only posts whose text or links contain one of these (case-insensitive)
Include channel info itemOne extra row per channel (separate event)
Max pages scanned per channelSafety limit (default 60 pages) so a filter that matches nothing cannot read a whole history

Output (one row per post)

type ("post"), channel, channelTitle, postId, postUrl, date, text, views, viewsText, author, isForwarded, forwardedFrom, forwardedFromUrl, replyToUrl, links, mediaType, mediaUrls, linkPreview, reactions, edited, scrapedAt. Channel-info rows (type = "channel") have channel, channelUrl, channelTitle, verified, description, subscribers, subscribersText, photos, videos, links, photoUrl. A RUN_SUMMARY record in the key-value store lists, per channel, pages read, posts scanned and pushed, why scanning stopped, and any errors.

Notes on the data: views and subscribers are the rounded figures Telegram shows (5.84M), converted to numbers; viewsText keeps the original text. Media URLs are the thumbnails or files exactly as the preview shows them (photo URLs, video thumbnail and, when shown, the video file URL); media Telegram does not render on the web preview is flagged not_shown_in_preview. Reaction emojis are the ones the preview shows; custom emoji are given as custom:<id>. Author signature, forwarded-from and reply link only exist where the channel uses them. See sample-output.json for real rows.

Output example

Real rows from a test run (columns trimmed):

ChannelPostDate (UTC)TextViewsMedia
telegram4602026-08-26 19:12For all the info from today's update and a look back at 13 years of Te…2060000link
telegram4592026-08-26 19:12Signed Gifts. You can now add your signature and a comment to gifts yo…1820000video
wublockchainenglish265362026-10-24 05:24Highlight Clip: Arthur Hayes: High-FDV Shitcoins Can't Even Pump on Bi…337none
wublockchainenglish265352026-10-24 04:56Bitcoin Price Bets Help Push Weekly Crypto Volume on Kalshi and Polyma…471none
binance_announcements90822026-10-23 09:31Binance Alpha Will Remove PTB, AA, OWL, DORA, ELIZAOS, MEMES, 哭哭马 (20…22200photo
binance_announcements90812026-10-23 05:01Binance Will Support the ASML Holding N.V. (ASML) and Nokia Corporatio…26100photo

Pricing

Pay per event: $0.0015 per post ($1.50 per 1,000 posts), $0.001 per channel-info row (only if switched on) and a $0.00005 start event per run. The first 20 posts cost about three cents. See PRICING.md for the benchmark.

Public data only / personal data

The Actor reads only what Telegram shows publicly on a channel's web preview. It does not log in, does not read private channels, groups or chats, member lists or phone numbers, and does not bypass anything. Posts can still contain personal data (names, @usernames, photos, forwarded messages). You are responsible for using the data in line with Telegram's terms, GDPR and other applicable data-protection law: have a lawful basis, keep only what you need, and honour deletion requests.

Notes and limits

  • Only channels with a public preview work. t.me/s/<name> must show posts; if it redirects to t.me/<name> the preview is off.
  • Telegram shows roughly the last posts of a channel in pages of about 20; very old history may be missing or removed by the channel.
  • Counts (views, subscribers, reactions) are as shown at scrape time and rounded by Telegram.
  • Telegram can rate-limit heavy use; keep runs modest and spread large jobs over time.

FAQ

How much does it cost? $0.0015 per post plus a $0.00005 start event per run. 1,000 posts = $1.50. You are not charged for posts removed by filters, channels without a preview, or anything past your limits.

Do I need a Telegram account, API ID or phone number? No. Nothing is needed.

Can it scrape private channels, groups or members? No, by design. Only public channel previews.

How do I know a channel works? Open https://t.me/s/<name> in a browser. If you see posts, it works.

Do I need proxies? No. The preview answers normal requests; no proxy is used or offered.

Can I search by keyword across all of Telegram? No. This Actor reads the channels you list; the keyword filter applies within them.

Can I schedule it? Yes, with Apify Schedules or the API. Use "Posts from date" for a daily new-posts feed.

Which export formats are available? JSON, CSV, Excel, XML, HTML or RSS from the Console or API, or Apify integrations such as Make, Zapier, n8n and Google Sheets.

Something broke or a field is missing? Open an issue on the Actor's Issues tab with the run link.

Use with AI agents / MCP

Agents can call this Actor through the Apify MCP server (https://mcp.apify.com). Add the Actor to the server, or let the agent find it with the search-actors tool, then call it by name:

  • Actor: santis_hermes/telegram-channel-scraper
  • Example prompt: "Get the last 10 posts from the Telegram channels bloomberg and wublockchainenglish that mention bitcoin."
  • Minimal input:
{
"channels": ["bloomberg", "wublockchainenglish"],
"keywords": ["bitcoin"],
"maxPostsPerChannel": 10
}