Telegram Channel Scraper β€” No Login, Fast & Cheap avatar

Telegram Channel Scraper β€” No Login, Fast & Cheap

Pricing

$1.00 / 1,000 messages

Go to Apify Store
Telegram Channel Scraper β€” No Login, Fast & Cheap

Telegram Channel Scraper β€” No Login, Fast & Cheap

Scrape messages from any public Telegram channel without login, phone number or bot token. Get text, date, views, reactions, media, polls, forwards, replies and link previews. Filter by date or keyword, or monitor channels for new posts only.

Pricing

$1.00 / 1,000 messages

Rating

0.0

(0)

Developer

Steady Scrape

Steady Scrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 hours ago

Last modified

Share

What does Telegram Channel Scraper do?

Telegram Channel Scraper extracts messages from any public Telegram channel β€” no Telegram account, no phone number, no bot token and no API keys. Paste channel names or t.me links and get a clean dataset with each post's text, date, views, reactions, photos, videos, documents, polls, forwards, replies, hashtags, links and link previews.

It reads the channel's official public web preview (t.me/s/<channel>), the same page anyone can open in a browser. That makes it fast, cheap and reliable: no headless browser, no login that can get banned.

Why use it?

  • πŸ“° News & OSINT monitoring β€” follow war, politics and breaking-news channels and archive what was posted and when.
  • πŸ’Ή Crypto & trading research β€” collect announcements and signals from exchange and project channels with exact timestamps.
  • πŸ“ˆ Marketing & competitor analysis β€” compare views and reactions across channels and posts.
  • πŸ€– AI & data pipelines β€” feed channel content into LLMs, RAG systems, sentiment analysis or dashboards.
  • πŸ—„οΈ Archiving β€” back up the full history of a channel before posts get deleted.

Features

  • βœ… No login required β€” works with public channels only, nothing to configure.
  • βœ… Full history β€” pages back through the whole channel, newest messages first.
  • βœ… Date range filter β€” only messages between two dates, and paging stops as soon as older messages start.
  • βœ… Keyword & hashtag search β€” uses Telegram's in-channel search.
  • βœ… Monitoring mode β€” "Only new messages since the last run" remembers where you left off, so scheduled runs never charge twice for the same message.
  • βœ… Rich, structured output β€” reactions (including premium custom emoji), media URLs, polls with percentages, forwarded-from, reply-to, author signatures, link previews.
  • βœ… Many channels per run β€” a channel that is private or doesn't exist is reported and skipped; the rest keep going.
  • βœ… Respects your budget β€” stops exactly when your maximum cost per run is reached.

How to scrape a Telegram channel

  1. Click Try for free.
  2. Add one or more channels: durov, @durov, t.me/durov or https://t.me/s/durov all work.
  3. Optionally set the maximum number of messages, a date range or a keyword.
  4. Click Start and download your data as JSON, CSV, Excel or HTML, or get it through the Apify API.

To monitor channels, turn on Only new messages since the last run and add a schedule (for example every hour).

Input example

{
"channels": ["telegram", "https://t.me/durov"],
"maxMessagesPerChannel": 500,
"dateFrom": "2026-01-01",
"dateTo": "2026-06-30",
"searchQuery": "#update",
"onlyNewMessages": false
}

Output example

Each message is one item in the dataset:

{
"channel": "durov_russia",
"channelTitle": "ПавСл Π”ΡƒΡ€ΠΎΠ²",
"channelSubscribers": 986000,
"messageId": 63,
"url": "https://t.me/durov_russia/63",
"date": "2025-11-22T17:22:48.000Z",
"isEdited": false,
"text": "…",
"textHtml": "…",
"author": null,
"views": 3250000,
"forwardedFrom": { "name": "Khabib Nurmagomedov", "url": "https://t.me/khabib_nurmagomedov/127" },
"replyTo": null,
"hashtags": [],
"mentions": [],
"links": [],
"media": [
{ "type": "video", "url": "https://cdn4.telesco.pe/file/….mp4", "thumbnailUrl": "https://cdn4.telesco.pe/file/…", "duration": "0:56" }
],
"linkPreview": null,
"reactions": [
{ "emoji": null, "customEmojiId": "5305565863728918192", "count": 32800 },
{ "emoji": "🫑", "customEmojiId": null, "count": 9740 }
],
"scrapedAt": "2026-09-16T13:38:43.478Z"
}

Output fields

FieldDescription
channel, channelTitle, channelSubscribersChannel username, display name and subscriber count
messageId, urlMessage number and its public link
datePublication time, ISO 8601 in UTC
isEditedWhether the post was edited
text, textHtmlMessage text (line breaks preserved) and the original formatted HTML
authorAuthor signature, for channels that sign posts
viewsView count as shown by Telegram (e.g. "46.8K" becomes 46800)
reactionsEmoji and counts; premium custom emoji come with their customEmojiId
mediaPhotos, videos (file URL, thumbnail, duration), documents and polls
forwardedFrom, replyToOriginal source of forwarded posts and the message a post replies to
hashtags, mentions, links, linkPreviewEverything linked from the post

How much does it cost?

You pay only for the messages you get β€” see the pricing tab for the current price per message. Channels that are unavailable cost nothing, and the Actor stops as soon as it reaches the maximum cost you set for the run.

Limitations

  • Only public channels that have a web preview at t.me/s/<channel>. Private channels, groups, bots and user accounts are not accessible without logging in, and this Actor never logs in.
  • Comments under posts are not included (they are not part of the public preview).
  • View and reaction counts are as precise as Telegram shows them publicly ("46.8K").
  • Some large videos only have a thumbnail on the public page, so url is null for them.

This Actor only reads information that channel owners publish openly on the web, without logging in. Still, scraped data can include personal data protected by GDPR and similar laws. Make sure you have a legitimate reason to collect it, and consult a lawyer if unsure. Read more in Apify's blog post on the legality of web scraping.

Feedback

Found a channel that doesn't work or need another field? Open an issue in the Issues tab β€” they are answered quickly.