Telegram Channel Scraper avatar

Telegram Channel Scraper

Pricing

from $2.00 / 1,000 messages

Go to Apify Store
Telegram Channel Scraper

Telegram Channel Scraper

The Telegram Channel Scraper extracts posts from public Telegram channels — text, views, reactions, images, videos, files, link previews, forwards and channel subscriber counts — with no login, phone number or bot token. Ideal for crypto, news and brand monitoring, OSINT and research.

Pricing

from $2.00 / 1,000 messages

Rating

0.0

(0)

Developer

FalconScrape

FalconScrape

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

13 hours ago

Last modified

Share

🚀 Telegram Channel Scraper — Posts, Views, Reactions & Media (No Login)

Extract Telegram channel data without an account, phone number or bot token. The Telegram Channel Scraper turns any public channel into clean JSON, CSV or Excel — post text, views, reactions, images, videos, files, link previews, forwards, replies and the channel's subscriber count.

✨ Features

  • 📜 Full channel history: every post of a public channel, newest first, all the way back to its first post — or just the latest few.
  • 👀 Views & reactions: view counts and per-emoji reaction counts for every post, plus edited flags and author signatures.
  • 🖼️ Media: direct image and video URLs (albums included), file names, stickers and voice flags.
  • 🔗 Context: link previews with title, description and image; forwarded-from source; replied-to post; polls with results.
  • 🔍 Keyword filter: return only the posts in a channel that match a keyword.
  • 🔄 Only new since last run: the scraper remembers where it stopped per channel, so a scheduled run returns only new posts — no duplicates, no wasted credits.
  • 📊 Channel info: title, description, avatar and subscriber / photo / video / file / link counts.
  • No browser, no login: hundreds of posts per second; runs finish in seconds, not minutes.

🛠️ How It Works

  1. Add channels – handles (durov, @telegram) or links (https://t.me/durov), one per line.
  2. Set limitsmaxMessages per channel (set it high for the full history), optionally a keyword and a postedAfter date.
  3. Schedule it – tick Only new since last run and put the scraper on a schedule to monitor channels continuously.
  4. Run the scraper – results land in the dataset, ready to download or fetch via API, webhook or integration.

💵 Pricing

Pay only for what you extract — no fee per run:

EventPrice
Message$0.002 per post
Channel info$0.001 per channel

1,000 posts cost $2. Monitoring 50 channels every hour with Only new since last run costs only the new posts that actually appeared — a channel posting 20 times a day adds about $1.20 per month. Untick Include channel info if you only want posts.

📊 Sample Output Data

Post:

{
"type": "message",
"id": 532,
"channel": "durov",
"url": "https://t.me/durov/532",
"text": "🎠 Telegram now supports carousels\n\nOne small step for messaging, one giant leap toward turning cat photos into keynote presentations. 😺…",
"html": "<tg-emoji emoji-id=\"5224362841208793190\">…</tg-emoji> Telegram now supports carousels<br><br>…",
"createdAt": "2026-07-19T21:45:01+00:00",
"isEdited": false,
"views": 5860000,
"reactions": [
{ "emoji": "⭐", "customEmojiId": null, "count": 5800 },
{ "emoji": null, "customEmojiId": "5373223594484587136", "count": 55300 },
{ "emoji": "👍", "customEmojiId": null, "count": 13400 }
],
"totalReactions": 74500,
"author": "Pavel Durov",
"forwardedFrom": null,
"replyTo": null,
"images": [],
"videos": [
{
"url": "https://cdn4.telesco.pe/file/181642ae31.mp4?token=…",
"thumbnail": "https://cdn4.telesco.pe/file/EGIEwZp_2Wg9yyExjdWNh1Mmvj2o3MXqUmrQgTA2R0Ysu31OUDGW5ui83G8FSi9iGzD_5F-Hsnm….jpg"
}
],
"files": [],
"linkPreview": {
"url": "https://telegram.org/blog/carousels",
"siteName": "Telegram",
"title": "Carousels, Rich Previews and More",
"description": "Today's update lets you…",
"image": "https://cdn4.telesco.pe/file/qPM36ml00_TRTfG8ljJy8EeRK_B669PTW_vGW-k9JVL_jRp….jpg"
},
"links": ["https://telegram.org/blog/carousels"],
"poll": null,
"isSticker": false,
"isVoice": false,
"scrapedAt": "2026-08-29T10:24:44.605Z"
}

A forwarded post carries forwardedFrom: { "name": "Telegram News", "url": "https://t.me/telegram/312" }; a reply carries replyTo: { "url": "https://t.me/tginfo/4405", "author": "Telegram Info", "text": "…" }.

Channel info:

{
"type": "channel",
"channel": "durov",
"url": "https://t.me/durov",
"title": "Pavel Durov",
"description": "Founder of Telegram.",
"avatar": "https://cdn4.telesco.pe/file/XM6L4Ztt6ZFIH8HcgXKvHt8Sd-C4ret67-rCSugkO8-ZTtmvrxmY70mHEHaxLTKA1912eX….jpg",
"subscribers": 11000000,
"photos": 102,
"videos": 45,
"files": null,
"links": 197,
"scrapedAt": "2026-08-29T10:24:44.509Z"
}

ℹ️ Good to know

  • Works with public channels only. Private channels, invite links (t.me/+…), groups, bots and user profiles are skipped with a warning — Telegram does not expose their content without an account.
  • Discussion-thread comments and member lists are not part of a channel's public page and are not collected.
  • Counts such as views and subscribers are the rounded figures Telegram displays (e.g. 14.7M14700000). Reactions with a customEmojiId are premium custom emoji; the id can be resolved in any Telegram client.
  • Video URLs are signed by Telegram's CDN and expire after a few hours — download what you need.
  • Only new since last run keeps one cursor per channel in the telegram-channel-scraper-state key-value store of your account; delete LAST_MESSAGE_IDS there to start over.

Turn Telegram channels into structured data with the Telegram Channel Scraper today! 🚀