Telegram Channel Scraper & Keyword Monitor avatar

Telegram Channel Scraper & Keyword Monitor

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Telegram Channel Scraper & Keyword Monitor

Telegram Channel Scraper & Keyword Monitor

Scrape public Telegram channels and monitor them for keywords — no API key, no phone, no login. Get posts, views, reactions, media & subscriber counts as clean JSON. Reliable retries, multi-channel keyword alerts, MCP-ready output for brand monitoring, crypto, OSINT & AI agents.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Alexandr Maier

Alexandr Maier

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Scrape public Telegram channels and monitor them for keywords — no API key, no phone number, no login. Built for reliability and for AI agents: clean, flat, predictable JSON on every run.

This actor reads Telegram's public web preview (t.me/s/<channel>), the same data any browser sees when you open a channel without an account. It never logs in, never touches your Telegram account, and never asks for a phone number.

Why this one

Most Telegram actors do the same basic dump. Two things break them in production, and this actor fixes both:

  • They crash on rate limits. This actor retries every request with exponential backoff and can fall back to Apify Proxy, so a long run finishes instead of dying at channel #7.
  • They only scrape, they don't watch. Monitor mode remembers the last post it saw per channel and returns only new posts on each scheduled run — turn any channel list into a keyword alert feed.

What you get per message

{
"channel": "durov",
"channelTitle": "Pavel Durov",
"channelSubscribers": 11700000,
"id": 510,
"url": "https://t.me/durov/510",
"datetime": "2026-05-12T17:28:39+00:00",
"text": "🌍 With 400 validators across 6 continents, TON is one of the most…",
"views": 3440000,
"reactions": [{ "emoji": "🔥", "count": 12045 }],
"media": ["photo"],
"forwardedFrom": null,
"links": ["https://ton.org"],
"matchedKeywords": ["ton"],
"scrapedAt": "2026-07-10T12:00:00.000Z"
}

Input

FieldTypeDescription
channelsarray (required)@name, name, or https://t.me/name
keywordsarraySave only posts containing a keyword (case-insensitive). Empty = save all
keywordMatchsubstring | wordSubstring (default) or whole-word matching
modescrape | monitorscrape = history; monitor = only new posts since last run
maxPostsPerChannelintegerCap on posts scanned per channel (default 100)
postsNewerThanISO dateStop paging once older posts are reached
minViews / minReactionsintegerSkip low-engagement posts
useProxybooleanRoute via Apify Proxy (only needed for large jobs)

Example: monitor three news channels for a brand

{
"channels": ["telegram", "durov", "bloomberg"],
"keywords": ["bitcoin", "regulation", "SEC"],
"keywordMatch": "word",
"mode": "monitor"
}

Schedule this every 15 minutes and the dataset fills only with new, on-topic posts.

Use cases

  • Brand & crypto monitoring — alert when your project, ticker, or competitor is mentioned across channels.
  • OSINT & news — track announcements from public channels into a structured feed.
  • AI agents (MCP) — flat JSON output plugs straight into a RAG pipeline or an MCP tool call ("what did channel X post about Y this week?").
  • Research & analytics — export engagement (views, reactions) over a channel's history.

Pricing (pay-per-event)

EventPrice
Actor start$0.005
Message saved$0.0002

You pay only for messages that pass your filters. Scraping 1,000 matching posts costs about $0.20 + $0.005 = $0.205. No monthly subscription; the Apify free tier covers testing.

Limits & honest notes

  • Works only with public channels that have web preview enabled. Private channels, groups, and comments are not accessible (and scraping them would require an account — out of scope by design).
  • t.me/s/ serves ~20 posts per page; the actor paginates backward through history up to your limit.
  • Reads public preview data only. This actor does not use MTProto, does not collect member lists, and does not require your credentials.
  • You are responsible for complying with Telegram's Terms and applicable law in your use of the data.

Local development

npm install
apify run -p # requires apify-cli and Docker/Node 18+

src/parser.js isolates all HTML parsing — if Telegram ever changes its preview markup, that single file is the only thing to update.