Telegram Keyword Search & Alerts Scraper avatar

Telegram Keyword Search & Alerts Scraper

Pricing

from $2.00 / 1,000 telegram results

Go to Apify Store
Telegram Keyword Search & Alerts Scraper

Telegram Keyword Search & Alerts Scraper

Unofficial public-source Telegram scraper. Search posts by keyword, monitor known public channels, receive only new matches, cluster reposts, and export structured Telegram data. No Telegram account required; optional AI relevance.

Pricing

from $2.00 / 1,000 telegram results

Rating

0.0

(0)

Developer

i-Scraper

i-Scraper

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Search public Telegram posts by keyword, monitor selected public channels, and turn Telegram data into structured alerts — without a Telegram account or session string.

Telegram Keyword Search & Alerts Scraper is built for Telegram monitoring, OSINT, brand intelligence, lead discovery, market research, news tracking, and narrative analysis. It combines public web discovery with direct polling of known public channel preview pages, removes duplicate messages, groups reposts, and can return only new matches on scheduled runs.

Unofficial tool: This Actor is not affiliated with, endorsed by, or sponsored by Telegram. It accesses only publicly available pages and search results.

What can this Telegram keyword search Actor do?

  • Search indexed public Telegram posts using one or more keywords.
  • Monitor up to 100 known public Telegram channels by username or t.me link.
  • Match an exact phrase, all words, any word, a safe regular expression, or a semantic intent.
  • Add required terms, excluded terms, synonyms, spelling variants, and Cyrillic transliteration.
  • Filter Telegram messages by channel, date, language, views, and reactions.
  • Save only new or edited matches across scheduled runs with a stable monitor ID.
  • Deduplicate messages found through multiple discovery paths.
  • Cluster identical and near-duplicate posts while preserving every source link.
  • Generate an optional digest of the most active narratives.
  • Add optional OpenAI relevance scoring, evidence quotes, lead detection, sentiment, and intent matching.
  • Export structured Telegram data to JSON, CSV, Excel, XML, or RSS through the Apify dataset.
  • Connect results to webhooks, Zapier, Make, Google Sheets, Slack, a database, or your own API workflow.
  • Brand monitoring: find public mentions of a company, product, executive, or campaign.
  • Lead generation: detect messages asking for product recommendations, alternatives, vendors, or help.
  • OSINT and investigations: collect public evidence with source URLs, timestamps, and channel metadata.
  • News and crisis monitoring: watch known channels and discover indexed posts about a developing event.
  • Crypto and financial research: track public narratives, token mentions, market commentary, and repost velocity.
  • Competitor intelligence: monitor product launches, pricing discussions, customer complaints, and migrations.
  • Content research: group repeated stories and identify which public channels are amplifying them.

Quick start: search public Telegram posts

Enter one or more search rules and click Start:

{
"queries": [
{
"text": "CRM alternative",
"mode": "allWords",
"includeTerms": ["recommend"],
"excludeTerms": ["course", "job"],
"synonyms": ["CRM replacement"]
}
],
"languages": ["en"],
"maxResultsPerQuery": 100,
"clusterResults": true
}

The Actor searches bounded public web results for Telegram post links, verifies the matching public posts where possible, applies your filters, and saves the results to the default dataset.

Quick start: monitor public Telegram channels

Use knownChannels when you already know which public channels matter. Results are limited to those channels by default. Enable onlyNew and keep the same monitorId on every scheduled run:

{
"queries": [
{
"text": "artificial intelligence",
"mode": "allWords"
}
],
"knownChannels": [
"durov",
"https://t.me/example_public_channel"
],
"onlyNew": true,
"monitorId": "ai-news-daily",
"generateDigest": true,
"maxResultsPerQuery": 100
}

For continuous Telegram monitoring, save this input as an Apify Task and attach a schedule. The first run creates the checkpoint; later runs with the same monitorId skip previously delivered message versions. If a public post is edited and its text changes, the new version can be delivered again.

To combine selected-channel monitoring with global public web discovery, set searchGlobalWeb to true. Selected channels are processed first, so global matches cannot consume their result quota before they are evaluated.

Search modes

ModeBest forExample
exactA phrase in the same word order"funding round"
allWordsAll keywords in any orderCRM alternative
anyWordsBroad discoveryoutage downtime incident
regexControlled text patternsSeries\\s+[A-E]
semanticIntentRetrieval plus optional AI intent scoringcompanies looking to replace their CRM

Deterministic matching is always applied before results are stored. AI is optional and does not replace the original public message text or source URL.

Input parameters

FieldTypeDescription
queriesarrayUp to 20 keyword rules with match mode, include/exclude terms, synonyms, and transliteration.
intentstringNatural-language monitoring goal used for semantic retrieval and AI relevance.
knownChannelsarrayUp to 100 public usernames or t.me links. When present, search is limited to these channels by default.
searchGlobalWebbooleanAlso run global public web discovery when knownChannels is present. Global discovery runs automatically when no channels are supplied.
includeChannelsarrayOptional allowlist of public channels.
excludeChannelsarrayPublic channels to ignore.
fromDate, toDatedateUTC publication-date filters.
languagesarrayISO language codes such as en, es, or ru.
minViewsintegerMinimum known view count. Posts without a visible count remain eligible.
minReactionsintegerMinimum known reaction count. Posts without visible reaction data remain eligible.
maxResultsPerQueryintegerMaximum retained matches per original query; default is 100.
onlyNewbooleanReturn only message versions not delivered by the same monitor before.
monitorIdstringStable checkpoint name; required when onlyNew is enabled.
webSearchProviderstringauto, duckduckgo, or bing; automatic mode can fall back between providers.
clusterResultsbooleanGroup exact and near-duplicate messages; enabled by default.
generateDigestbooleanAdd a compact digest record for the largest clusters.
proxyConfigurationobjectOptional Apify Proxy configuration for public HTTP requests.

At least one query, monitoring intent, or known public channel is required.

Optional AI relevance and lead detection

Set aiMode to openai to enrich deterministic matches. Your OpenAI API key is accepted as a secret input and is used only for the OpenAI requests made by this Actor.

{
"queries": [
{
"text": "CRM",
"mode": "anyWords"
}
],
"intent": "Find companies actively asking for a CRM replacement",
"aiMode": "openai",
"openaiApiKey": "YOUR_OPENAI_API_KEY",
"openaiModel": "gpt-4.1-mini",
"alertMode": "relevantOnly",
"relevanceThreshold": 75,
"maxAiItems": 100,
"aiBudgetUsd": 1
}

AI output can include relevanceScore, matchedIntent, relevanceReason, evidenceQuote, isActionableLead, and sentiment. Evidence quotes are accepted only when they occur verbatim in the original message. The maxAiItems and aiBudgetUsd settings bound the amount of AI enrichment attempted during a run. OpenAI API usage is billed separately by OpenAI to the supplied key.

Telegram data output

Each message is stored as a flat, API-ready dataset record:

{
"recordType": "message",
"monitorId": "crm-leads-hourly",
"discoverySource": "public_preview",
"coverage": "recent_public_channel_preview",
"matchedQuery": "CRM alternative",
"channelUsername": "example_public_channel",
"channelTitle": "Example Public Channel",
"channelUrl": "https://t.me/example_public_channel",
"messageId": 1842,
"messageUrl": "https://t.me/example_public_channel/1842",
"publishedAt": "2026-08-10T09:15:00+00:00",
"text": "Can anyone recommend a CRM alternative for a small support team?",
"language": "en",
"views": 12400,
"forwards": 37,
"reactions": 86,
"mediaType": null,
"isNew": true,
"relevanceScore": 94,
"evidenceQuote": "recommend a CRM alternative",
"isActionableLead": true,
"clusterId": "cluster-9a2b...",
"retrievedAt": "2026-08-10T09:20:00+00:00"
}

The dataset may also contain:

  • cluster records summarizing a group of at least two related or reposted messages;
  • one digest record when generateDigest is enabled;

Unique messages do not create single-message clusters and keep clusterId: null. The recordType field makes message, cluster, and digest records easy to separate in downstream workflows.

Run-level metadata is stored separately in the default Key-Value Store under OUTPUT. It includes coverage, request counts, duplicate counts, AI usage, checkpoint status, and incomplete-provider details without adding a technical row to the message dataset.

Run with the Apify API

Start the Telegram scraper from any application with the Apify API:

curl -X POST \
"https://api.apify.com/v2/acts/i-scraper~telegram-keyword-search/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"queries": [{"text": "product launch", "mode": "allWords"}],
"knownChannels": ["example_public_channel"],
"maxResultsPerQuery": 50
}'

After the run finishes, read the default dataset through the API or export it from the Output tab. You can also use the official Apify API clients for JavaScript and Python.

Automate Telegram alerts

For a recurring alert workflow:

  1. Create an Apify Task with your queries, knownChannels, onlyNew: true, and a stable monitorId.
  2. Schedule the Task hourly, daily, or at another interval.
  3. Add a webhook or integration that runs after a successful Actor run.
  4. Forward message records to Slack, email, Google Sheets, a CRM, a database, or your own endpoint.

Use a different monitorId for each logically separate watchlist. Reusing one monitor ID intentionally shares its delivered-message checkpoint.

Pricing and cost control

This Actor uses transparent pay-per-event pricing. You pay a small run-start fee plus one telegram-result event for every matching Telegram post saved to the dataset. Cluster, digest, and run-summary records are not charged as results.

EventFreeBronzeSilverGold
Actor start$0.001$0.001$0.0008$0.00065
1,000 Telegram results$3.00$2.50$2.25$2.00

For example, a Bronze run returning 100 matching messages costs $0.251: a $0.001 start plus 100 × $0.0025. A run that finds no matching posts is charged only the start event. Platform usage is included in these prices. You can set a maximum run charge in Apify to control spending.

AI enrichment is optional. When enabled, OpenAI usage is charged separately to your OpenAI account. Use maxAiItems and aiBudgetUsd to keep the attempted enrichment within a predictable bound. The Actor preserves deterministic raw matches if the AI budget is exhausted or an AI request fails.

Coverage and responsible use

This Actor deliberately works without a Telegram account. That makes setup simple, but it also defines the coverage:

  • It can discover Telegram posts exposed by public web search providers.
  • It can inspect recent public preview pages for known public channels.
  • It does not provide a complete index of Telegram.
  • It does not access private channels, private groups, deleted posts, or content hidden behind membership or login.
  • Public web indexes can be delayed, incomplete, region-dependent, or temporarily unavailable.
  • Older messages may fall outside a channel's current public preview page.
  • Views, forwards, reactions, edit timestamps, and media types are returned only when visible in the public source.

Provider gaps are not silently presented as complete results. Check the OUTPUT run summary, especially coverage and incompleteProviders, when completeness matters to your workflow.

You are responsible for using public Telegram data in accordance with applicable laws, platform terms, privacy requirements, and the rights of content authors. Avoid collecting or republishing personal data without a valid purpose.

Troubleshooting

ProblemWhat to check
No messages foundTry broader match mode, fewer required terms, no date/language filter, and one known public channel.
A channel returns no dataConfirm it is public and that https://t.me/s/CHANNEL opens without login.
Older posts are missingPublic preview pages expose a recent window; web search indexes are not complete archives.
onlyNew returns zeroThe current message versions were already delivered by this monitorId; use a new ID only if you want a fresh checkpoint.
Some providers are incompleteInspect incompleteProviders in the OUTPUT run summary and retry later or enable Apify Proxy.
AI fields are emptyConfirm aiMode: openai, a valid secret API key, positive AI limits, and available OpenAI budget.
Too many irrelevant resultsUse exact or allWords, add includeTerms/excludeTerms, restrict channels, or enable AI relevance.

FAQ

Can I search Telegram without an account?

Yes. This Actor uses public Telegram preview pages and public web search results, so it does not require a phone number, Telegram API ID, API hash, login code, or session string. The trade-off is partial public-source coverage rather than complete Telegram history.

Can it monitor a Telegram channel for new messages?

Yes, if the channel has a public preview page. Add it to knownChannels, set onlyNew to true, choose a stable monitorId, and schedule the run. The Actor stores its checkpoint between runs.

Can it search private Telegram groups or channels?

No. It does not join groups, authenticate a Telegram account, or access private content.

Is this a Telegram scraper or a Telegram API client?

It is a public-source Telegram scraper and monitoring Actor. It produces structured Telegram data through the Apify API, but it does not use an authenticated Telegram account or promise full MTProto/API coverage.

How are reposts and duplicate messages handled?

The Actor deduplicates the same message discovered more than once and can group exact or near-duplicate text into a shared clusterId. Cluster records retain counts and source relationships for narrative analysis.

Does AI change the original Telegram message?

No. AI enrichment adds separate relevance fields. The original text, channel, timestamp, and source URL remain unchanged, and evidence must be copied from the source message.

What export formats are available?

Apify datasets can be downloaded as JSON, JSONL, CSV, Excel, XML, or RSS. You can also read results using the Apify API and client libraries.

Support

If a run behaves unexpectedly, share the public run URL or run ID, the non-secret input, and the OUTPUT run summary. Never include your OpenAI or Apify API token in a support request.