Telegram Keyword Search Scraper - Posts by Keyword, No Login avatar

Telegram Keyword Search Scraper - Posts by Keyword, No Login

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Telegram Keyword Search Scraper - Posts by Keyword, No Login

Telegram Keyword Search Scraper - Posts by Keyword, No Login

Finds public Telegram posts that mention your keywords: channels about each keyword are found for you, then Telegram's own search runs inside each. One row per post with text, date, views, reactions, media and links, plus channel subscribers, reach and a fake-subscriber hint. No account or API key.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

Ben

Ben

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

🔎 Telegram Keyword Search Scraper: Posts by Keyword, No Login

Find what public Telegram channels say about a keyword, a brand or a product. Give it words; it finds public channels about each word and runs Telegram's own search inside every one of them. You get one row per matching post with its text, date, views, reactions, media and links, plus the channel's subscribers, average post reach and a hint when the subscribers look bought. No Telegram account, no API key, no phone number. Export to JSON/CSV/Excel, run on a schedule, call via API, or connect to Make, Zapier or n8n.

Price: pay per post saved. Until 9 November 2026 a post costs $0.0025; from 10 November the Actor is free while the new price is announced; then $0.0015 per post on the Free plan, $0.00135 Bronze, $0.00128 Silver and $0.0012 from Gold up. A post found by two keywords is charged once. Channels without results, channels without a public preview and errors cost nothing.

🔎 What is the Telegram Keyword Search Scraper?

Telegram has no public search across channels for people without an account, and the app's global search shows only a handful of channels. This Actor does it in two steps:

  1. Find channels. For each keyword it reads TGStat's public channel directory (tgstat.com), which lists Telegram channels by topic. A visitor gets the first 30 channels per sort order, and seven orders (subscribers, reach, engagement, growth today, yesterday, this week, this month) give up to about 130 different channels per keyword.
  2. Search inside them. Each channel is searched with the search box Telegram itself puts on a channel's public web preview (t.me/s/<channel>?q=<keyword>). The matching is Telegram's, so word forms and other languages behave as they do in the app.

You can add your own channels, turn discovery off to search only those, filter by date and skip small channels.

What data does it extract?

  • The post: text with line breaks, date, link, edited flag, views, every reaction with its count, author signature
  • Media: photo links, video links and length, media types (photo, video, document, voice, poll, sticker)
  • Links: links in the text, link preview title and description, hashtags and @mentions
  • Context: forwarded from (name and link), reply-to link
  • Channel: name, title, subscribers (from Telegram), description
  • Directory stats (TGStat): subscribers, average views of one post, citation index, topic, and reach ratio (average reach divided by subscribers)
  • Which keyword found the post and how the channel was found

How it compares

What users of keyword search Actors on Telegram run into, and what this one does:

What you run into elsewhereThis Actor
Results come from a web search engine's index, so only pages Google happened to crawl appear, one post per pageTelegram's own search inside each channel: the newest matches, about 22 per channel and keyword
Channel discovery charged as a separate event on top of each messageDiscovery is free; you pay per post saved
A big channel with bought subscribers looks as important as a real onetgstat_reach_ratio shows it: 998,656 subscribers with 111 views per post gives 0.0001
No way to add the channels you already knowchannels adds them to every keyword, or alone with discovery off
Reruns return the same old postspostedAfter keeps a scheduled run to new posts

⬇️ Input

FieldTypeDefaultWhat it does
keywordsarraysample bitcoinWords to find, one per line. Each gets its own channel search.
channelsarraynonePublic channel names, @handles or t.me links to search for every keyword too.
discoverChannelsbooleantrueFind channels in TGStat's directory. Off: only channels are searched.
maxChannelsPerKeywordinteger30Found channels to search per keyword (up to 200; about 130 can be found).
maxPostsPerChannelinteger20Matching posts per channel, newest first.
maxResultsinteger50Posts in total; the run stops there.
postedAfterdatenoneOnly posts from this UTC date on.
minSubscribersintegernoneSkip found channels with fewer subscribers (your own channels are always searched).

Example input

{
"keywords": ["chatgpt", "openai"],
"maxChannelsPerKeyword": 100,
"maxPostsPerChannel": 20,
"maxResults": 2000,
"postedAfter": "2026-10-01",
"minSubscribers": 5000
}

⬆️ Output

{
"keyword": "bitcoin",
"id": "crypto_traders_altcoins/9828",
"message_id": 9828,
"url": "https://t.me/crypto_traders_altcoins/9828",
"channel": "crypto_traders_altcoins",
"text": "Michael Saylor's company, MSTR, achieved a remarkable 77.4% gain ...",
"posted_at": "2026-10-25T19:00:09+00:00",
"edited": true,
"views": 25000,
"reactions": [{"emoji": "🔥", "count": 222}, {"emoji": "❤", "count": 75}],
"reactions_total": 370,
"author": null,
"forwarded_from": null,
"media_types": [],
"photo_urls": [],
"video_urls": [],
"links": ["http://rainbet.com/"],
"hashtags": [],
"mentions": [],
"channel_title": "Crypto Traders — Altcoins | Bitcoin | Cryptocurrency",
"channel_subscribers": 293000,
"discovered_by": "tgstat:participants",
"tgstat_category": "Cryptocurrencies",
"tgstat_subscribers": 293308,
"tgstat_avg_post_reach": 29200,
"tgstat_citation_index": 0.0,
"tgstat_reach_ratio": 0.0996,
"scraped_at": "2026-10-26T10:02:11.418Z"
}

A run summary (keywords, channels searched, channels without a preview, posts saved, why it stopped) is stored as SUMMARY in the run's key-value store.

Speed (measured from a server, not yet on Apify): 40 posts in 6 s; 825 posts for two keywords over 120 channels in 23 s.

💡 Use cases

  • 📣 Brand monitoring: a daily scheduled run with postedAfter set to yesterday shows every new post that names your brand or product.
  • 🪙 Crypto and finance research: what channels say about a token, an exchange or a stock, with views and reactions per post.
  • 🕵️ Influencer and channel vetting: the reach ratio and citation index separate channels with an audience from channels with bought subscribers.
  • 🧠 Datasets for AI and analysis: post text with dates and engagement for sentiment, topic or trend analysis.

🤖 For AI agents

One input to copy:

{"keywords": ["your brand"], "maxResults": 100}

All inputs are optional; no credential is needed. Rows have the same fields every time; keyword says which word found the post.

Limits

  • About 22 posts per channel and keyword. That is what Telegram's preview search shows a visitor (the newest matches). More posts come from more channels or more keywords, not from deeper paging.
  • About 130 channels per keyword. TGStat shows a visitor the first page of each sort order; further pages need a TGStat account and are not read. Add channels you know through channels.
  • Public channels only. Groups, private channels and channels that turned off their web preview cannot be searched; they are counted in the summary and not charged.
  • Counts are rounded by Telegram (25K views). TGStat's numbers come from TGStat and can differ a little from Telegram's own count.
  • Discovery uses TGStat's directory, which covers many languages but not every channel.

❓ FAQ

Do I need a Telegram account or API key? No. Everything is read from public web pages: Telegram's channel previews and TGStat's directory.

How is a post matched? By Telegram's own channel search, the same one the app uses. A few results match a related word form rather than the exact word.

Why fewer posts than I asked for? Telegram shows about 22 matches per channel, and some channels have none. The status message and the SUMMARY record say how many channels were searched.

Can I search only my own list of channels? Yes: put them into channels and set discoverChannels to false.

Can I run it every day? Yes. Schedule it and set postedAfter to a recent date so each run pays only for new posts.

What does tgstat_reach_ratio mean? Average views of one post divided by subscribers. Healthy channels are often around 0.05 to 0.5; a value near 0 with many subscribers hints at bought subscribers.

Is a post charged twice when two keywords find it? No. It is saved and charged once, with the first keyword that found it.

What happens when the run is stopped or moved? Progress is saved; a resumed run skips the channels it finished and the posts already in the dataset.

Is it legal? It reads public posts that channel owners publish for anyone to see. You are responsible for how you use them: respect GDPR and other privacy laws when posts contain personal data, and do not use them for spam (CAN-SPAM).

🔗 You might also like

Keywords: telegram keyword search, telegram search scraper, search telegram channels, telegram post scraper, telegram brand monitoring, telegram mentions, telegram channel finder, tgstat channels, telegram crypto signals, telegram messages export, telegram scraper no login, telegram api alternative, telegram data, telegram monitoring, telegram csv export, telegram osint