Telegram Scraper – Channel Posts, Views & Reactions avatar

Telegram Scraper – Channel Posts, Views & Reactions

Pricing

from $0.80 / 1,000 results

Go to Apify Store
Telegram Scraper – Channel Posts, Views & Reactions

Telegram Scraper – Channel Posts, Views & Reactions

Scrape public Telegram channels: posts, text, views, reactions, media, links, hashtags + channel info (subscribers, verified). Date range, keyword filter & search. No login or API key.

Pricing

from $0.80 / 1,000 results

Rating

0.0

(0)

Developer

ninhothedev

ninhothedev

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Share

Telegram Scraper extracts posts from any public Telegram channel – full text, date, views, reactions, photos, videos, files, links, hashtags, mentions, forwards and replies – plus channel info such as subscribers, description and verified badge. It reads Telegram's public web preview (t.me/s/<channel>), so you need no Telegram account, no phone number and no API key. Scrape one channel or hundreds, go back through the whole history, filter by date range or keywords and export to JSON, CSV, Excel or Google Sheets.

What data can you extract?

FieldExampleDescription
channeldurovChannel username
post_id / id552 / durov/552Message ID and stable unique ID
urlhttps://t.me/durov/552Direct link to the post
date2026-10-11T14:52:40+00:00Publish time (ISO 8601, UTC)
textDesigners × AI …Full post text with line breaks and emoji
views912000View count
reactions_total / reactions25330 / [{"emoji":"👍","count":74900}]Total and per-emoji reactions (incl. paid ⭐ stars)
media_typephoto, video, album, file, audio, pollType of attached media
photos, videos, video_thumbnails, documentsURLs / objectsMedia URLs, video thumbnails & durations, file titles
links, hashtags, mentions["https://telegram.org/blog"], ["news"], ["durov"]Everything extracted from the text
link_preview_*title, description, site, imageRich link preview of the post
is_forwarded, forwarded_from_name, forwarded_from_urltrue, TelegramForward source
is_reply, reply_to_post_idtrue, 78557Reply-to message
is_editedtruePost was edited
author_signaturePavel DurovAdmin signature (if the channel signs posts)
channel_title, channel_subscribersPavel Durov, 10400000Channel context on every post

Channel info row (type = "channel"): title, description, subscribers, photos / videos / files / links counts, verified, scam / fake flags, avatar URL. Public groups return title, member count, online count and description.

How to use

  1. Add one or more channels – durov, @telegram, https://t.me/durov or https://t.me/s/durov all work.
  2. Set Max posts per channel (0 = full history) and optional filters: date range (since / until, e.g. "7 days" or "2026-01-01"), keyword filter or Telegram search query.
  3. Click Start and download the results as JSON, CSV, Excel, XML or HTML – or fetch them via API.
{
"channels": ["durov", "https://t.me/telegram", "@breakingmash"],
"maxPostsPerChannel": 200,
"since": "30 days",
"keywords": ["ai", "crypto"],
"includeChannelInfo": true
}

Modes

  • Channel history – newest posts first, paging backwards 20 posts per request until your limit or date is reached.
  • Date range – since / until with absolute or relative dates; scraping stops as soon as older posts appear.
  • Keyword filter – whole-word, case-insensitive, any/all match; matched words in matched_keywords.
  • Search across channels – searchQuery runs Telegram's own in-channel search on every channel in your list.
  • Media only – skip text-only posts.

Output example

Real post from a test run:

{
"type": "post",
"id": "durov/552",
"channel": "durov",
"post_id": 552,
"url": "https://t.me/durov/552",
"date": "2026-10-11T14:52:40+00:00",
"text": "✨ Designers × AI\n\n🆕 The mockup era is over. Today’s AI tools give every designer a superpower: you can now craft your ideas, not just draw them. \n\nThe gap between “what if…?” and “look, it works!” has never been smaller,",
"views": 913000,
"reactions_total": 25350,
"reactions": [
{
"emoji": "⭐",
"count": 5410,
"paid": true
},
{
"emoji": "custom:5936157098181135162",
"count": 11300,
"paid": false
},
{
"emoji": "custom:5399847211989246390",
"count": 4940,
"paid": false
}
],
"media_type": "video",
"media_count": 1,
"photos": [],
"videos": [
{
"url": null,
"thumbnail": "https://cdn4.telesco.pe/file/OiJcyAExOKYdCDKh5YmkrTUa3_9poHu…",
"duration": "1:15",
"post_url": "https://t.me/durov/552"
}
],
"video_thumbnails": [
"https://cdn4.telesco.pe/file/OiJcyAExOKYdCDKh5YmkrTUa3_9poHu…"
],
"documents": [],
"poll": null,
"links": [],
"hashtags": [],
"mentions": [
"designers"
],
"link_preview_url": null,
"link_preview_title": null,
"link_preview_description": null,
"link_preview_site_name": null,
"link_preview_image": null,
"is_forwarded": true,
"forwarded_from_name": null,
"forwarded_from_url": null,
"is_reply": false,
"reply_to_post_id": null,
"reply_to_url": null,
"is_edited": false,
"is_service_message": false,
"author_signature": "Pavel Durov",
"sender_name": "Pavel Durov",
"sender_url": "https://t.me/durov",
"channel_title": "Pavel Durov",
"channel_subscribers": 10400000,
"channel_url": "https://t.me/durov",
"matched_keywords": [],
"search_query": null,
"input": "durov",
"scraped_at": "2026-10-15T19:58:14+00:00"
}

Channel info row:

{
"type": "channel",
"id": "channel:durov",
"channel": "durov",
"url": "https://t.me/durov",
"title": "Pavel Durov",
"description": "Founder of Telegram.",
"subscribers": 10400000,
"photos_count": 102,
"videos_count": 47,
"files_count": null,
"links_count": 200,
"verified": true,
"scam": false,
"fake": false,
"avatar_url": "https://cdn4.telesco.pe/file/MULwMfcgvO-kscu6vwzjmymEfId90Vg…",
"online_count": null,
"entity_type": "channel",
"preview_available": true,
"input": "durov",
"scraped_at": "2026-10-15T19:58:14+00:00"
}

A run summary (posts per channel, errors, requests) is stored in the key-value store record RUN_SUMMARY.

Pricing

Pay per result: $0.80 per 1,000 results ($0.0008 per post or channel row) plus a tiny start fee. Scraping 1,000 posts costs about $0.80, 10,000 posts about $8. No monthly rental, no proxy needed for normal use. The scraper is HTTP-only and very fast (≈ 20 posts per request), so runs finish in seconds.

Use cases

  • Media monitoring & news tracking – follow news, crypto and politics channels and pipe new posts into dashboards or alerts.
  • Lead generation – find active channels in your niche, extract links, @mentions and contact handles from posts and descriptions.
  • Market & competitor research – benchmark views, reactions and posting frequency of competitor channels.
  • Influencer & ad sales – compare subscribers, average views and engagement before buying ads.
  • OSINT & research – archive public channel history with dates, forwards and edits for analysis.
  • AI / NLP datasets – build clean text corpora with hashtags and metadata for sentiment or topic models.

Integrations

Use the scraper from the Apify API, the Apify Python/JS clients, Make, Zapier, n8n, Google Sheets, Slack, webhooks or schedule it to run hourly/daily.

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("ninhothedev/telegram-scraper").call(run_input={
"channels": ["durov", "telegram"],
"maxPostsPerChannel": 100,
"since": "7 days",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["url"], item.get("views"), item.get("text", "")[:80])
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('ninhothedev/telegram-scraper').call({ channels: ['durov'], maxPostsPerChannel: 50 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

FAQ

Is it legal to scrape Telegram? The scraper only reads public channels that anyone can view in a browser at t.me/s/… without logging in. It does not access private chats or groups. Make sure your use of personal data complies with GDPR and applicable laws.

Do I need a Telegram account or API key? No. No login, no phone number, no api_id/api_hash.

Can I scrape groups or private channels? Private channels and invite links (t.me/+…) are not supported. Public groups (and channels with the web preview disabled) return their profile info (title, members, online, description) – Telegram does not publish their messages on the web.

Are comment counts and forward counts available? Telegram's public web preview does not show comment or forward counts, so they are not included. Views, reactions, forward source and reply-to are included.

How far back can I go? The entire public history – set Max posts per channel to 0. Use Start before post ID to resume big scrapes.

Do I need a proxy? Normally not. For very large scrapes (thousands of pages) enable Apify Proxy to avoid rate limits; the scraper retries with backoff and rotates sessions automatically.

Media URLs expire? Telegram CDN links (cdn*.telesco.pe) are signed and can expire after some time – download media soon after the run if you need it.

Support – open an issue on the actor's Issues tab; feature requests are welcome.