Telegram Channel Scraper — Messages, Views, Keyword Search avatar

Telegram Channel Scraper — Messages, Views, Keyword Search

Pricing

from $0.70 / 1,000 messages

Go to Apify Store
Telegram Channel Scraper — Messages, Views, Keyword Search

Telegram Channel Scraper — Messages, Views, Keyword Search

Get messages from any public Telegram channel — text, view counts, dates, media & forwards — plus subscriber stats. Search inside channels by keyword, filter by date for monitoring. No API key, no login, no phone number. Clean rows for Sheets, dashboards & AI agents.

Pricing

from $0.70 / 1,000 messages

Rating

0.0

(0)

Developer

Anton DataScout

Anton DataScout

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 hours ago

Last modified

Share

Telegram Channel Scraper

Scrape messages from any public Telegram channel — text, views, dates, media, forwards — and search inside channels by keyword. No API key, no login, no phone number.

Point it at one or more public channels and get every message back as a clean, structured row: full text, view counts as real numbers, post dates, media flags and URLs, forward sources, replies, link-preview cards, hashtags and mentions — plus a profile row per channel with subscriber and media stats.

The wedge that turns scraping into monitoring: pass a keyword and the Actor searches inside each channel (t.me/s/channel?q=keyword) and collects only matching messages — something the "dump the latest 20 posts" scrapers can't do. Combine it with a date filter and a schedule, and you have a standing watch on any brand, token, or competitor mention across public Telegram. It also ships the richest per-message output in the niche, so one run is enough for reporting, dashboards, or an LLM pipeline.

You give it → you get back

You give itYou get back
Channel usernames or t.me links (durov, @telegram, https://t.me/durov)Every public message as a structured JSON row
A keyword (airdrop, a ticker, a brand name)Only the messages that match — across the channel's history
A postedAfter dateOnly messages newer than that date — perfect for scheduled runs
includeChannelInfo: trueOne profile row per channel: title, description, subscribers, media counts

What does the Telegram Channel Scraper do?

It reads Telegram's public web preview pages (t.me/s/<channel>) — the same pages anyone can open in a browser without an account — and turns them into structured data. For each channel you list, it:

  • Collects the latest messages, or only messages matching a keyword when you provide one.
  • Paginates deep into history using ?before=<messageId>, so you can reach thousands of past messages, not just the first page.
  • Filters by date (postedAfter) and stops once it crosses your cutoff — ideal for "what's new since yesterday" runs.
  • Extracts rich per-message fields: text, views (as a number), author, forward source, reply text, photo/video flags and URLs, video duration, link-preview cards, hashtags, and @mentions.
  • Adds a channel profile row (subscribers, description, media counts) unless you turn it off.

No browser is launched — it's a lightweight HTTP-only scraper, which keeps runs fast and cheap. Optional proxy rotation is built in.

Who is it for?

AudienceWhat they pull
Crypto & market intelligenceAirdrop, listing, and partnership announcements; token mentions; sentiment across signal channels — filtered by keyword so you skip the noise
Brand monitoringEvery mention of your product or campaign across public channels, on a schedule
Competitor watchingWhat rivals post, when, and which posts pull the most views
OSINT & researchersClean, structured export of public channel history for analysis and archiving
AI / data pipelinesTyped JSON rows ready for LLM summarization, classification, and RAG ingestion

Why use this scraper?

  • Keyword search inside channels — collect only messages that mention what you care about, across the whole history, not just the latest page. This is the feature most Telegram scrapers don't have.
  • Date filter for monitoringpostedAfter plus an Apify schedule turns a one-off scrape into a recurring watch that returns only fresh matches.
  • Deep pagination — walks back through history via ?before=id; thousands of messages are reachable, capped by maxMessagesPerChannel.
  • Views as numbers3980000, not "3.98M" — so you can sort, filter, and do math without cleaning strings first.
  • No API key, no login, no phone number — nothing to register, nothing that can get an account banned.
  • Richest fields in the niche — text, media URLs, forwards, replies, link previews, hashtags, and mentions, all in one row.

What data do you get?

Each message is one dataset item:

{
"type": "message",
"channel": "durov",
"messageId": 512,
"url": "https://t.me/durov/512",
"date": "2026-05-15T18:14:32+00:00",
"text": "Telegram's new update brings…",
"views": 3980000,
"author": null,
"isForwarded": false,
"forwardedFrom": null,
"isReply": false,
"replyToText": null,
"hasPhoto": true,
"hasVideo": false,
"videoDuration": null,
"photoUrls": ["https://cdn4.telegram-cdn.org/file/…"],
"videoUrls": [],
"linkPreviewUrl": null,
"linkPreviewSite": null,
"linkPreviewTitle": null,
"linkPreviewDescription": null,
"hashtags": ["#update"],
"mentions": ["@telegram"]
}
FieldDescription
channelChannel username the message came from
messageIdNumeric Telegram message ID
urlDirect permalink to the post
dateISO 8601 publish timestamp
textFull message text
viewsView count as a number (3980000)
authorPost author signature, if the channel uses one
isForwarded / forwardedFromWhether the post is a forward, and the source name
isReply / replyToTextWhether it replies to another post, and that post's text
hasPhoto / hasVideoMedia flags
videoDurationVideo length string, when present
photoUrls / videoUrlsDirect media URLs from the post
linkPreviewUrl / linkPreviewSite / linkPreviewTitle / linkPreviewDescriptionThe link-preview card for any article/site shared in the post
hashtags / mentions#hashtags and @mentions parsed from the text

Unless you set includeChannelInfo: false, each channel also produces one channelInfo row: title, description, subscribers, photos, videos, links counts, photoUrl, and the channel url. The dataset ships two ready-made views in the Apify UI — Messages and Channel profiles — so you can browse each stream cleanly or export them separately.

How to scrape a Telegram channel

  1. Open the Actor and add one or more channels to channels — a username (durov), an @handle, or a full https://t.me/… link all work.
  2. Set maxMessagesPerChannel to how many messages you want per channel (default 100, up to 50000).
  3. Run it. Messages come back newest-first as structured rows, plus a profile row per channel.
  4. Export from the Dataset tab as JSON, CSV, or Excel, or pull them via the Apify API.

Only public channels with a web preview are supported — see the FAQ below.

How to monitor Telegram channels for keywords

This is the core workflow:

  1. Set keyword to the term you want to track — a brand, product, ticker, or phrase.
  2. Set postedAfter to your last-checked date (e.g. 2026-07-01) so you only get new matches.
  3. Save the run as a task and attach an Apify schedule (hourly, daily, whatever you need).
  4. Wire the dataset to Slack, a webhook, email, or Google Sheets so new matches land where your team already looks.

Because keyword filtering happens inside Telegram's own search, you download and pay for matching messages only — not the whole feed.

How to track crypto mentions on Telegram

Crypto is where the keyword wedge pays off most. List the signal, announcement, and community channels you follow, then set keyword to a token symbol, project name, or event term like airdrop, listing, or presale. Add postedAfter and schedule it, and you get a running log of every mention — with views as numbers so you can rank posts by reach, linkPreview* fields to capture the sites being shared, and isForwarded / forwardedFrom to see how a call is spreading between channels. Feed the rows straight into a sentiment or alerting pipeline.

How much does it cost to scrape Telegram

You pay for Apify platform usage while the run executes, and the design keeps that low: it's HTTP-only (no headless browser), and both the keyword and postedAfter filters mean you only collect the messages you actually want instead of paying to download and process an entire channel. Use maxMessagesPerChannel as a hard cap so a run never scrapes more than you intend — you're effectively billed per collected message, so a tight keyword plus a date cutoff is the cheapest way to run continuous monitoring.

How to export Telegram messages to CSV or Google Sheets

Every run writes to an Apify dataset, which you can export straight to CSV, JSON, Excel, or XML from the Dataset tab or the API — no extra tooling. For Google Sheets, connect the Apify Google Sheets integration to push results into a spreadsheet automatically after each run, so a scheduled monitoring task keeps a live sheet up to date. The two dataset views (Messages and Channel profiles) export independently, so you can keep message-level data and channel stats in separate tabs.

Telegram API alternative (no phone number)

Telegram's official Bot API and MTProto client API both require registering credentials tied to a phone number, and a bot only sees channels it has been added to. This Actor is a different route entirely: it reads the same public preview pages any visitor can open, so there's no phone number, no login, no API token, and no account to get rate-limited or banned. If your goal is to read public channel content — not to post or manage a bot — this is the simpler, safer alternative to the API.

This Actor only reads publicly available channel pages that require no login. Public data scraping is broadly permissible, but you are responsible for how you use the results: comply with Telegram's Terms of Service and applicable law (including GDPR and similar regimes), and don't collect or process personal data without a legitimate basis. When in doubt, consult your own legal counsel for your specific use case.

Input configuration

FieldTypeDefaultDescription
channelsarray (required)Public channel usernames or links — durov, @telegram, https://t.me/durov. Mix freely. Only public channels with a web preview are supported.
keywordstringSearch inside each channel and collect only matching messages (e.g. airdrop, a ticker, a brand). Leave empty to collect the latest messages.
maxMessagesPerChannelinteger100Upper limit per channel (1–50000). The Actor paginates deep into history; you're billed per collected message.
postedAfterstringOnly collect messages newer than this ISO date (e.g. 2026-07-01). Great for scheduled monitoring runs.
includeChannelInfobooleantrueAdd one profile row per channel with title, description, subscriber count, and media stats.

FAQ

Which channels work? Any public channel that has a web preview (t.me/s/<channel>). Private channels, private/public groups, and anything that requires login are not accessible — the Actor never touches anything behind authentication.

Can I get reactions or comments? Telegram's public preview doesn't expose reactions or the comment thread, so those aren't available. What is included: full text, view counts, forwards and forward source, replies and the replied-to text, media flags and URLs, link previews, hashtags, and mentions.

Do I need a Telegram account, API key, or phone number? No. There's nothing to register and nothing that can get an account banned — it reads public pages only.

How far back can it go? As far as the channel's public history allows, capped by maxMessagesPerChannel. It paginates backward through history until it hits your limit, your postedAfter cutoff, or the start of the channel.

Integrations

Connect the Actor to the tools you already use through Apify integrations:

  • Telegram → Google Sheets — auto-append matched messages into a live mention log.
  • Telegram → Slack / Discord — get pinged the moment your keyword is mentioned in a tracked channel.
  • Telegram → Make / Zapier — route mentions into a CRM, an alert, or a moderation queue.
  • Telegram → BigQuery / Snowflake — warehouse channel data via Airbyte for large-scale analysis.
  • Scheduled runs & webhooks — run hourly/daily for standing monitoring, or POST results the moment a run completes.

Use with AI agents via MCP

The structured, typed rows this Actor returns are made for LLM pipelines — no HTML parsing or pagination logic on your side. You can run it from an AI agent through Apify's MCP (Model Context Protocol) server, letting a Claude- or GPT-based agent trigger a scrape, monitor channels for a keyword, and read back the results as part of a larger workflow.

  • App Store Reviews Scraper — Apple App Store reviews across 175 storefronts with rating and keyword filters.
  • Google Play Reviews Scraper — structured Google Play reviews for any Android app.
  • YouTube Outlier Finder — surface breakout videos on small and new channels before they blow up.
  • Google Trends Scraper — reliable interest-over-time data for any search term.

Disclaimer

This Actor is not affiliated with, endorsed by, or connected to Telegram. It collects public data only from pages that require no login. You are responsible for using it in compliance with Telegram's Terms of Service, GDPR, and any other applicable laws and regulations. Do not scrape personal data without a legitimate reason and lawful basis.

SEO Keywords

telegram scraper, telegram channel scraper, scrape telegram channel, telegram message scraper, telegram keyword search, monitor telegram channels, telegram monitoring tool, telegram crypto scraper, track crypto mentions telegram, telegram brand monitoring, telegram osint tool, telegram data export, export telegram messages csv, telegram to google sheets, telegram api alternative, scrape telegram without api, telegram no phone number, telegram public channel data, telegram views scraper, telegram channel analytics, telegram competitor monitoring, telegram scraper apify, telegram scraper no login, telegram web preview scraper, telegram message history export