Telegram Scraper avatar

Telegram Scraper

Pricing

Pay per event

Go to Apify Store
Telegram Scraper

Telegram Scraper

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Telegram Channel Scraper

Scrape public Telegram channels without an API key, Telegram account, or any login. Extract messages, view counts, reactions, media URLs, and channel metadata from any public channel.

What does Telegram Channel Scraper do?

This actor scrapes public Telegram channels via their web preview pages (t.me/s/). It extracts:

  • Messages with full text, HTML formatting, timestamps, and permalink URLs
  • View counts parsed as integers (not raw strings like "5.29M")
  • Reactions with emoji identifiers and counts (including paid Telegram Stars)
  • Media — photo thumbnails, video CDN URLs with duration
  • Link previews — URL, site name, title, description, preview image
  • Channel metadata — title, description, subscriber count, photo/video/link counts, verified badge
  • Message context — edited flag, forwarded-from source, reply-to message ID, author signature

Why use this scraper instead of others?

  • Zero credentials — no Telegram API key, no api_id/api_hash, no phone number, no login. Just enter a channel username and go. Most competing scrapers require Telegram developer credentials.
  • Reactions data — the only Apify Telegram scraper that extracts reaction emoji and counts, including paid Telegram Stars.
  • Parsed view counts — views returned as integers (5290000), not raw strings ("5.29M"). Ready for analysis without post-processing.
  • Media URLs — actual photo and video CDN URLs, not just text content.
  • Rich message context — edited flag, forwarded-from, reply-to chains, author signatures, link previews with images.
  • Pay per result — transparent per-message pricing. No monthly subscription.

Use cases

  • Brand monitoring — track mentions and discussions in public Telegram channels.
  • Crypto/DeFi intelligence — monitor token announcements, pump channels, and project updates.
  • Media monitoring — scrape news channels for breaking stories and sentiment analysis.
  • Competitive research — analyze competitor Telegram channels for content strategy and engagement.
  • Academic research — collect public discourse data from Telegram communities.
  • OSINT — gather open-source intelligence from public channels.

What data can you extract?

Channel metadata

FieldExample
titlePavel Durov
descriptionFounder of Telegram.
subscriberCount10.5M
verifiedtrue
avatarUrlhttps://cdn4.telesco.pe/...

Messages (25+ fields per message)

FieldExample
messageId455
textSomeone made a game about me...
date2025-10-31T14:12:20+00:00
views5290000
authorPaul Du Rove
mediaTypevideo
videoUrlhttps://cdn4.telesco.pe/...
reactions[{emoji: "⭐", count: "39.3K", isPaid: true}]
isEditedtrue
isForwardedfalse
replyToMessageId442
urlhttps://t.me/durov/455

How much does it cost to scrape Telegram?

This actor uses pay-per-event pricing — you only pay for what you scrape. No monthly subscription.

EventCost
Actor start$0.005
Per channel info$0.002
Per message$0.001

Real-world cost examples:

QueryMessagesCost
1 channel, 20 messages20$0.005 + $0.002 + 20 × $0.001 = $0.027
1 channel, 100 messages100$0.005 + $0.002 + 100 × $0.001 = $0.107
5 channels, 50 messages each250$0.005 + 5 × $0.002 + 250 × $0.001 = $0.265

With the Apify Free plan, you get $5 of free usage per month — enough to scrape ~4,900 messages.

How to scrape a Telegram channel

  1. Go to the actor's input page.
  2. Enter one or more channel usernames (e.g., durov, telegram).
  3. Set max messages per channel (default: 100, prefill: 20).
  4. Optionally toggle Include channel info to get metadata.
  5. Click Start and wait for the run to finish.
  6. Download your data in JSON, CSV, Excel, or connect via API.

Input parameters

FieldTypeDescriptionDefault
channelsstring[]Public Telegram channel usernames
maxMessagesintegerMax messages per channel (1–5,000)100
includeChannelInfobooleanInclude channel metadata as separate itemtrue

Finding channel usernames

A channel username is the part after t.me/ in the channel URL:

  • https://t.me/durov → username is durov
  • https://t.me/telegram → username is telegram

You can also use the @ prefix — the actor strips it automatically.

Output example

{
"messageId": 455,
"channelUsername": "durov",
"channelTitle": "Pavel Durov",
"url": "https://t.me/durov/455",
"date": "2025-10-31T14:12:20+00:00",
"text": "Someone made a game about me escaping a French prison...",
"views": 5290000,
"viewsRaw": "5.29M",
"author": "Paul Du Rove",
"isEdited": true,
"isForwarded": false,
"mediaType": "video",
"videoUrl": "https://cdn4.telesco.pe/file/...",
"videoDuration": "0:18",
"reactions": [
{"emoji": "⭐", "count": "39.3K", "isPaid": true},
{"emoji": "", "emojiId": "5265077361648368841", "count": "86K", "isPaid": false}
],
"scrapedAt": "2026-03-05T21:00:39.599Z"
}

Tips for best results

  • Start small — use maxMessages: 20 to preview data before large runs.
  • Public channels only — this actor scrapes t.me/s/ public preview pages. Private channels and groups are not accessible.
  • Rate limiting — the actor paginates politely. For very large channels (5,000+ messages), expect runs to take a few minutes.
  • Reactions availability — reactions appear in the HTML for recent messages. Very old messages may not include reaction data.
  • Media URLs — video and photo CDN URLs are temporary. Download media promptly if you need to archive it.

Integrations

Connect Telegram Channel Scraper to hundreds of apps:

  • Webhooks — trigger actions when a run finishes.
  • Google Sheets — export messages directly to a spreadsheet.
  • Slack — get notifications with scraped messages.
  • Zapier / Make — automate workflows with Telegram data.
  • API — programmatic access via REST API or client libraries.

Using the Apify API

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('YOUR_USERNAME/telegram-scraper').call({
channels: ['durov', 'telegram'],
maxMessages: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("YOUR_USERNAME/telegram-scraper").call(run_input={
"channels": ["durov"],
"maxMessages": 100,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
for item in items:
if "messageId" in item:
print(f"[{item['date']}] {item['views']} views: {item['text'][:80]}")

This actor only accesses publicly available data from Telegram's own public web preview pages (t.me/s/). It does not:

  • Access private channels or groups
  • Require authentication or user credentials
  • Extract personal data like phone numbers
  • Bypass any access controls

Always review Telegram's Terms of Service and comply with applicable data protection laws (GDPR, CCPA) when processing scraped data.

FAQ

Q: Do I need a Telegram account or API key? No. This actor scrapes public web pages — no Telegram credentials needed.

Q: Can I scrape private channels or groups? No. Only public channels with a t.me/s/ preview page are supported.

Q: How many messages can I get? Up to 5,000 per channel per run. The actor paginates automatically through the channel history.

Q: Why are some reaction emojis empty? Custom Telegram emojis are identified by emojiId rather than a Unicode character. The standard emojis (thumbs up, heart, etc.) show the Unicode emoji.

Q: How is this different from other Telegram scrapers on Apify? Most competitors require Telegram API credentials (api_id/api_hash). This actor needs zero credentials — just enter a channel username. It also extracts reactions, parsed view counts, and media URLs that competitors miss.