Telegram OSINT Scraper - Public Channel Messages & Views avatar

Telegram OSINT Scraper - Public Channel Messages & Views

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Telegram OSINT Scraper - Public Channel Messages & Views

Telegram OSINT Scraper - Public Channel Messages & Views

Telegram OSINT scraper for any public channel via the t.me web preview - no API key, bot token, phone or login. Export Telegram channel messages and history: text, date, views, author, media type, links to CSV, JSON or Excel. Multiple channels, paginates history. Monitor crypto, news.

Pricing

from $2.00 / 1,000 results

Rating

5.0

(1)

Developer

Flash Scrape

Flash Scrape

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

an hour ago

Last modified

Share

Telegram Channel Scraper — public channel messages, no API key or bot token

Pull messages from any public Telegram channel into a clean, structured dataset — no API key, no bot token, no phone number, no login. This actor reads the official Telegram web preview (t.me/s/<channel>), the same public page anyone can open in a browser, and turns each post into a row: message text, date, view count, author/signature, media type, and every link. It scrapes channel messages only — not group members (see What it does not do).

Copy-paste input — this is the whole configuration:

{
"channels": ["telegram", "durov"],
"maxItemsPerChannel": 50
}

You get back one row per message with 10 columns (channel, message_id, message_url, text, date, views, author, media_type, has_links, links), exportable to CSV, JSON or Excel. Pricing is per message returned — $2 per 1,000 messages at the current rate (see cost).

What does it do?

Give it a list of public channel usernames or t.me links and how many recent messages you want per channel. The actor fetches each channel's public preview page, parses every post, and paginates backwards through the channel history to reach older messages until it hits your limit or the start of the channel. The result is a tidy, deduped, most-recent-first table — ready for a spreadsheet, a BI tool, or an LLM pipeline.

It reads public broadcast channels only — the kind that already show a public web preview. It does not log in, does not use a bot token, and cannot access private or invite-only channels or group chats. Because it uses plain HTTP against the public page, it runs fine on datacenter IPs with no proxy required.

Why use it / who's it for

  • Crypto & DeFi researchers monitoring announcement, signal, and project channels — track calls, listings, and sentiment over time without babysitting the app.
  • News & journalism teams archiving official channels from agencies, governments, and outlets that publish first (or only) on Telegram.
  • OSINT & threat-intelligence analysts collecting public-channel posts into a searchable, timestamped dataset — including data-leak-monitoring and war-monitoring channels that publish only on Telegram.
  • Community & competitor trackers watching a rival's or a niche's public channel — posting cadence, engagement (views), what links they push, what media they lean on.
  • Data scientists & ML teams building text datasets from public broadcast channels for topic modeling, trend detection, or fine-tuning.
  • Marketers & growth teams benchmarking which posts in a category get the most views, and mining the links a channel shares.

How do I export Telegram channel messages to CSV or Excel?

  1. Add one or more channels — usernames (telegram), @handles (@durov), or full links (https://t.me/durov). All three formats are normalized automatically.
  2. Set maxItemsPerChannel — how many of the most recent messages to pull from each channel (default 100, up to 1,000).
  3. Run it. Then export the dataset to CSV, JSON, or Excel from the Output tab, or read it straight from the dataset API.

Only channels matters — everything else has a sensible default, and the demo run works out of the box.

Input

FieldTypeDescription
channelsarray of stringsPublic channel usernames or t.me links. telegram, @durov, and https://t.me/durov all work. Required.
maxItemsPerChannelintegerMost-recent messages to pull per channel (default 100, max 1000).

Output

One row per message:

FieldDescription
channelChannel username the message came from
message_idNumeric message id within the channel
message_urlDirect link, https://t.me/<channel>/<id>
textMessage text, with line breaks preserved
datePublish time (ISO 8601, UTC)
viewsView count as shown by Telegram (e.g. 1.18M, 907K)
authorPost signature / author, when the channel signs posts
media_typephoto, video, voice, audio, document, poll, sticker, location, link, or none
has_linkstrue if the message text contains at least one link
linksList of URLs found in the message text

Example output row

{
"channel": "telegram",
"message_id": 448,
"message_url": "https://t.me/telegram/448",
"text": "AI Admins for Groups. Groups can now add AI bots as admins to process join requests with unique features like captcha support.",
"date": "2026-06-18T14:35:57+00:00",
"views": "1.06M",
"author": null,
"media_type": "video",
"has_links": true,
"links": ["https://t.me/telegram/449"]
}

How much does it cost?

This actor uses pay-per-event pricing: a flat rate per message returned. At the rate current on 2026-08-23 that is $0.002 per message — $2 per 1,000 messages — plus a $0.00005 actor-start event; this page's Pricing tab is always authoritative if the rate changes. You're charged only for messages actually returned — no subscription, and no charge for empty runs. New Apify accounts get platform free credits, so you can pull a mid-size backlog from several channels and test the output before paying anything.

What it does not do

  • No group members. It cannot scrape or export Telegram group member lists — the public web preview shows a channel's posts, not its subscribers. If you searched "scrape telegram group members", this is not that tool (and any keyless tool claiming to be should be treated with suspicion).
  • No private or invite-only channels (t.me/+... links), and no group chats. Public broadcast channels only.
  • No comments, reactions, or reply threads — the preview page exposes the posts themselves.
  • No media file downloads. You get each message's media_type and links, not the photo/video files.
  • No login, ever — which is exactly why there's no account to ban and no session to maintain.

FAQ

Do I need an API key, bot token, or phone number?

No. The actor reads the official public web preview at t.me/s/<channel> — the same page any browser can open without logging in. There is no Telegram API key, no bot token, no phone-number login, and no session string. That also means there's nothing to get banned: it never authenticates as a user.

Is this a Telethon / Pyrogram alternative?

For reading public channel messages, yes: you get the same message text, dates, views and links without registering a Telegram API id, without a phone number, and without risking an account. For anything that requires a logged-in session (private channels, group member lists, sending messages), no — no keyless tool can do that, this one included.

Can it scrape Telegram group members?

No — see What it does not do. Member lists are only visible to logged-in clients; the public preview this actor reads never shows them.

Can it read private channels or group chats?

No. It only reads public channels that expose a public web preview. Private channels, invite-only channels, and group chats are not accessible this way, by design. If a channel doesn't return public messages, the actor logs a warning and skips it — the run still finishes cleanly for the channels that do work.

How far back can it go?

It paginates backwards through the channel's public history using Telegram's ?before= parameter, so you can pull well beyond the latest page. In practice you're bounded by maxItemsPerChannel (max 1,000 per channel per run) and by how much history Telegram serves in the public preview. Very large historical pulls are best split across several runs.

Can I monitor a channel on a schedule?

Yes — run it on an Apify Schedule (hourly, daily, weekly) and each run delivers the channel's most recent messages at that moment, timestamped and deduped by message_id within the run. Note it has no "only new since last run" mode: a scheduled run re-pulls the latest maxItemsPerChannel messages, so dedupe across runs by message_url in your pipeline (or keep the per-run limit close to the channel's posting volume). This is how people track crypto announcement channels, war-monitor feeds and data-leak channels over time.

How fresh is the data?

It's fetched live at run time, so results reflect what the channel shows right now, including current view counts.

Why is a channel returning fewer messages than I asked for?

Either the channel simply has fewer public messages than your limit, or it reached the start of its public history. Service messages and some media-only edge cases may also be skipped. The actor de-duplicates by message id, so counts reflect unique messages.

Is scraping this data allowed?

The actor reads only publicly available data from Telegram's own public web preview — no login, no paywall, no private content. Use the collected data responsibly and in line with Telegram's terms and any laws that apply to your use case (privacy, copyright, etc.).

Use with AI agents & automation

Runs as a tool call through the Apify MCP server, so AI agents (Claude, ChatGPT, Cursor) can pull a channel's messages mid-conversation. Trigger runs and pipe rows into Make, n8n or Zapier, or sync the dataset to Google Sheets for a live channel archive.

  • Creator Leads Scraper — need creator/influencer leads with emails from TikTok, Instagram and YouTube instead of Telegram messages? Same publisher, one row per creator.
  • Twitter / X Leads Scraper — pull public X/Twitter profiles and posts into structured leads.
  • Wikipedia Scraper — extract clean article text and structured data from Wikipedia.

Questions or a channel that won't parse? Open an issue on the actor's Issues tab and we'll take a look.