Skip to the content.

Telegram Channel Scraper

Posts of public Telegram channels: text, views, reactions, links, subscribers. No account needed. From $0.001 / post, pay per result, no browser, no login.

▶ Run it on Apify · Python example · All scrapers

Export posts from any public Telegram channel as JSON, CSV or Excel: text, date, views, reactions (including paid Stars), hashtags, links, photos, video thumbnails, forwarded-from and the channel’s subscriber count. No Telegram account, no phone number, no API keys, no browser. 300 posts take about 20 seconds.

✅ Full channel history, newest posts first ✅ Views, reactions and Stars per post — measure engagement ✅ Subscriber count, channel name and description on every row ✅ Search inside channels (word or hashtag) ✅ Only posts since a date — perfect for daily monitoring ✅ Links, hashtags, link previews, photos, forwarded-from ✅ Up to 200 channels per run; private or missing channels are skipped and never charged ✅ No personal data: channel posts only — no members, no private chats, no author signatures


🚀 Why this Telegram scraper is different

  This Actor Typical Telegram scrapers
Price $0.001 per post $0.005 per post
Telegram account / phone number Not needed Often required (session strings)
Reactions, Stars, subscribers Yes Partial
Date limit and in-channel search Yes Rarely
Private / missing channels Skipped, not charged Run fails
Blocked pages Retried with new IPs, residential fallback Lost

💡 Use cases


🛠️ How to use it (3 steps)

  1. Enter channel usernames (durov, @telegram) or links (https://t.me/durov).
  2. Optionally set a date limit or a search word.
  3. Click Start and download posts as CSV, Excel or JSON, or use the API.

📥 Input example

{
  "channels": ["telegram", "durov", "https://t.me/s/bbcnews"],
  "maxPostsPerChannel": 300,
  "newerThan": "2026-01-01",
  "searchQuery": "AI"
}

📤 Output example (real post)

{
  "channel": "durov",
  "channelTitle": "Pavel Durov",
  "channelDescription": "Founder of Telegram.",
  "subscribers": 10200000,
  "postId": 551,
  "url": "https://t.me/durov/551",
  "date": "2026-10-10T14:22:43+00:00",
  "text": "💸 If your wallet doesn’t look like this, don’t even bother sending me money for my  birthday! 🎂",
  "views": 1920000,
  "reactions": [
    { "emoji": "⭐ stars", "count": 60200 },
    { "emoji": "custom emoji", "count": 37700 },
    { "emoji": "custom emoji", "count": 12800 },
    { "emoji": "custom emoji", "count": 9820 }
  ],
  "totalReactions": 120520,
  "hashtags": [],
  "links": [],
  "photos": [],
  "videoThumbnails": ["https://cdn4.telesco.pe/file/v-XoXsm08FMDR1tohWip0eM9ZxG_JGJzSggl_IU0phnM3ISO0hoRP_g0K_It0qPbyPjUGpSqfPneEZDAEOHz6v5Dms621asSRMFRMQEDRQzWKYQGVz8ViDkqm_2zQegry9gke8wLp8C9IHtRTrOy9Di4y7-z6aNOh-_O4prqmbi0V_Rj5KXD0ztdSY6Zk-JG9jEXxMDm9BYIdh-apAwDJXDATgo17qyGPjOu_mQg2wHE6J7jYikVQmFf8drDi4oqQHzRiN3lK6YCQPMNVDjmRTC2-7iPxtNY84GslD6S4CHCl-UCbT9uFdtyVGKX6qt0OfyiXWNxUbI2JR7H6DFueA"],
  "linkPreview": null,
  "forwardedFrom": null,
  "isEdited": false
}

Counts are shown by Telegram rounded (“1.92M” → 1920000).


⚙️ Input parameters

Field Type Default Description
channels array ["telegram"] Channel usernames (“durov”, “@telegram”) or links (“https://t.me/durov”). Private channels and groups without a web preview are skipped and never charged.
maxPostsPerChannel integer 100 Newest posts first.
newerThan string — YYYY-MM-DD. Stop at older posts (great for daily monitoring).
searchQuery string — Only posts containing this word or hashtag.
proxyConfiguration, maxRetries object, integer Apify Proxy, auto Proxy and retries; the defaults work for most runs.

📋 Output fields

Field Type Description
channel string Channel username
channelTitle string Channel name
channelDescription string Channel description
subscribers integer Subscribers
postId integer Post number
url string Post link
date string Publication time (UTC)
text string Post text
views integer Views
reactions array Reactions and counts
totalReactions integer All reactions
hashtags array Hashtags
links array Links in the text
photos array Photo URLs
videoThumbnails array Video thumbnail URLs
linkPreview string Previewed link
forwardedFrom string Original channel of a forwarded post
isEdited boolean Edited post

Export as JSON, CSV, Excel, XML or HTML, or read it through the API.


💰 Pricing — pay per post

What you run Posts Cost (free plan)
1 channel, last 100 posts 100 $0.10
10 channels × 300 posts 3,000 $3.00
Daily monitoring, 20 channels × ~10 new posts ~6,000/month ~$6.00/month

Higher Apify plans pay less: $0.0009 (Bronze), $0.0008 (Silver), $0.0006 (Gold and above). Platform usage and proxies are included. Private, missing or empty channels are never charged.


🔌 API & integrations

Python

from apify_client import ApifyClient  # pip install "apify-client>=3"

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("victorrodi/telegram-channel-scraper-api").call(
    run_input={"channels": ["durov"], "newerThan": "2026-10-01"}
)
for post in client.dataset(run.default_dataset_id).iterate_items():
    print(post["date"], post["views"], post["text"][:80] if post["text"] else "")

cURL

curl -X POST "https://api.apify.com/v2/acts/victorrodi~telegram-channel-scraper-api/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \
  -d '{"channels": ["telegram"], "maxPostsPerChannel": 20}'

Works with Google Sheets, Make, Zapier, n8n and MCP / AI agents: “Summarize what these 5 crypto channels posted today and which post got the most views.”


🤖 Use it from AI agents (Claude, ChatGPT, Cursor…)

This Actor is available to AI assistants through the Apify MCP server. Add the server to Claude Desktop, Claude Code, Cursor or any MCP client, then simply ask:

“Summarize what these 5 crypto Telegram channels posted today and which post got the most views.”

“Search the durov channel for posts about AI since January and list them with their views.”

The clean, flat output is designed to be read directly by LLMs.


🛡️ Reliability

More examples and docs for all our Actors: Vicshock/trendpulse-scrapers.


📌 Tips

❓ FAQ

Do I need a Telegram account or API ID? No. The Actor reads Telegram’s public web preview (t.me/s/…).

Can it read groups or members? No. Only public channel posts — no member lists, no private chats, no personal data.

Is it legal? The Actor reads posts that channels publish publicly on the web. Respect Telegram’s terms and the laws that apply to you.

💬 Support

Missing a field? Open an issue in the Issues tab — it is answered fast.