Telegram Keyword Search & Channel Scraper
Pricing
from $1.00 / 1,000 telegram posts
Telegram Keyword Search & Channel Scraper
Search public Telegram posts by keyword, collect public channel posts, and export verified structured data without Telegram credentials.
Pricing
from $1.00 / 1,000 telegram posts
Rating
0.0
(0)
Developer
Monkey D. Scraping
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share
Collect structured evidence from public Telegram channels in a single, stateless run. Search for publicly indexed posts by keyword, collect posts from public channels you already know, or combine both sources under one result limit.
No Telegram account, phone number, or Telegram API key is required.
At a glance
| Capability | What it means |
|---|---|
| Telegram keyword search | Discover publicly indexed Telegram posts for one or more terms. |
| Telegram channel scraper | Collect publicly available posts from channel usernames or public URLs. |
| Hybrid runs | Combine keywords and known channels without creating separate jobs. |
| Guided plans | Choose automatic, keyword-only, channel-only, or combined collection. |
| Predictable allocation | Set a global cap, optional per-channel cap, and source priority for hybrid runs. |
| Filters | Limit returned posts by absolute or relative dates, text phrases, optional patterns, country preference, and language preference. |
| Verified output | Every row has a canonical post URL; unavailable values are null, never inferred. |
| Media by choice | Public media references are included; downloading is disabled unless explicitly enabled. |
Quick start
You only need one source to begin: a keyword or a public channel. Leave the collection plan on Automatic and fill the source fields that match your task. Choose a focused plan only when you intentionally want the Actor to ignore the other source type.
| Your goal | Fill in | Recommended plan |
|---|---|---|
| Find public Telegram discussion about a topic | keywords | Automatic or Keyword discovery only |
| Archive or analyze sources you already know | channels | Automatic or Known public channels only |
| Research a topic while checking selected sources | both keywords and channels | Combine keywords and channels |
Set maxResults to control the total size of the dataset, then run the Actor. All other fields are optional.
When to use it
This Actor is designed for one-time public Telegram data extraction rather than ongoing monitoring. It is useful when you need a current, reproducible dataset for:
- Telegram brand monitoring and competitor research
- News, market, and policy research
- Public-source journalism and OSINT workflows
- Channel archiving for analysis, audit, or compliance research
- Crypto, finance, technology, and community research
- Multilingual topic discovery using country and language preferences
For a repeated, stateful “what is new since the last run?” workflow, use a dedicated monitoring Actor rather than treating this extractor as a scheduler.
Choose your collection path
1. Discover public posts by keyword
Add one or more keywords when the relevant channels are not yet known. The Actor finds publicly indexed Telegram posts and returns only results that literally contain the requested keyword. Country and language preferences help focus discovery, but they do not establish the author’s location or classify a post’s language.
2. Collect known public channels
Add a channel username such as cointelegraph, an @username, or a public Telegram channel URL. The Actor collects publicly accessible posts until the date boundary or the run’s global result cap is reached.
3. Combine both in one run
Use keywords and channels together when you need broad discovery alongside authoritative sources. Canonical post URLs are deduplicated, so the same public post is emitted at most once.
How a hybrid run uses the result cap
maxResults is always one global limit. If both sources are present, use Priority when both sources are used to make the allocation explicit:
| Priority | Use it when | Effect if the global cap is reached |
|---|---|---|
| Known channels first | Your selected sources are the most important evidence. | Direct channel collection gets capacity before keyword-discovered channels. |
| Keyword discovery first | Broad topic discovery matters more than source coverage. | Keyword-discovered channels get capacity before direct channel collection. |
You can also set an optional maxResultsPerChannel to prevent a high-volume channel from using all available capacity. Neither setting changes canonical deduplication.
Input guide
| Input | Use it for |
|---|---|
keywords | Topic, brand, product, organization, event, or phrase discovery across public Telegram content. |
channels | Direct collection from public channel usernames or URLs. |
collectionMode | Guided choice: automatic, keyword-only, channel-only, or hybrid. |
afterDate / beforeDate | Inclusive date boundaries: choose a date or use a relative value such as 7 days. |
countryCode | Optional ISO 3166-1 alpha-2 preference for keyword discovery. |
languageCode | Optional ISO 639-1 preference for keyword discovery. |
maxResults | One global maximum for unique posts from all sources in the run. |
sourcePriority | Explicit allocation choice for a combined run that reaches its global cap. |
maxResultsPerChannel | Optional fairness cap for one channel within the global maximum. |
includeKeywords / excludeKeywords | Simple phrase filters applied to public post text and public channel title. |
regexFilters | Optional advanced text filters using JavaScript-compatible regular expressions. |
downloadMedia | Off by default. Enable only when you need available public media files stored with the run. |
Country and language preferences
For keyword discovery, you can optionally enter a two-letter country code such as IT or US, and a two-letter language code such as it or en. These fields guide discovery toward a regional and linguistic context; they are not strict filters and do not prove a post’s country of origin or language.
Use them together when it helps your research. For example, countryCode: "IT" with languageCode: "it" is a reasonable starting point for Italian-language topic discovery. Direct collection from a known public channel does not depend on either preference.
Example inputs
Public Telegram keyword research
{"keywords": ["electric vehicle supply chain", "battery recycling"],"afterDate": "14 days","countryCode": "it","languageCode": "it","maxResults": 100,"downloadMedia": false}
Scrape known public channels
{"channels": ["cointelegraph", "https://t.me/example_public_channel"],"afterDate": "2026-07-01","maxResults": 250,"downloadMedia": false}
Combine discovery and direct collection
{"keywords": ["open source security"],"channels": ["example_public_channel"],"sourcePriority": "keywordsFirst","afterDate": "2026-07-01","includeKeywords": ["advisory", "patch"],"excludeKeywords": ["giveaway"],"maxResults": 150}
Dataset fields and data quality
The default dataset contains one row per canonical public Telegram post. Each record includes source-channel identity, public channel title and description when exposed, canonical channel and post URLs, message ID, publication time when exposed, post text or caption, public counters when reliably available, structured public reactions by emoji and displayed count, media references, links, tags, mentions, matched input keywords, and collection provenance.
The Actor deliberately distinguishes “not available” from “zero”:
nullmeans the public page did not reliably expose a value.- An empty array means no value was extracted from the public post representation; it is not a claim about private or deleted content.
- Textless posts retain
text: null; no author, engagement figure, date, or media type is invented.
The default key-value store also contains SUMMARY, with counts for collected and deduplicated posts, source coverage, and isolated non-sensitive errors. A successful run can validly return zero rows.
CLI, API, and MCP-ready contract
The input schema, output schema, dataset schema, and README use the same field names and meanings. This makes the Actor straightforward to configure in the Apify Console, API, CLI, and Apify MCP server. An agent can determine the required source inputs, inspect the expected dataset fields before a run, and retrieve the post dataset and SUMMARY after it finishes.
The Actor itself does not use an AI model. “MCP-ready” here means that external AI agents can discover and call a well-described Apify Actor tool.
Use results in your workflow
Read the default dataset and SUMMARY through the Apify API or webhooks. The standard Actor result format can also be consumed by compatible automation platforms such as n8n, Make, and Zapier, as well as your own JavaScript, TypeScript, Python, spreadsheet, or data-warehouse workflow.
The canonical public post URL makes downstream linking and deduplication straightforward. Integration availability and configuration remain the responsibility of the destination platform and the user’s account.
Coverage and responsible use
This Actor handles public material only. It cannot access private channels, invite-only channels, login-protected material, deleted posts, or content that is not publicly available. Keyword discovery depends on public indexing, so it is not a guarantee of complete, real-time, or exhaustive Telegram coverage.
Use the Actor in accordance with applicable law, platform rules, and your organization’s policies. Do not use it to infer identities, location, intent, or engagement values that the public source does not expose.
FAQ
Do I need a Telegram login or API key?
No. The Actor does not ask the user for Telegram credentials.
Can I search keywords and scrape channels at the same time?
Yes. Both sources can be included in one stateless run and are deduplicated by canonical post URL.
What does the country or language option do?
They are optional discovery preferences. They help focus keyword discovery, but do not certify where a post came from or which language it uses.
Can I use “7 days” instead of a calendar date?
Yes. The date fields accept a calendar date or a relative value such as 7 days, 2 weeks, 1 month, or 1 year.
What happens if keywords and channels both return more posts than the limit?
The Actor returns at most maxResults unique posts. Choose source priority to decide which source is processed first, and optionally add a per-channel cap for a more balanced dataset.
Why is a field null?
The value was not reliably available on the public source. The Actor does not guess missing metadata.
Are media files downloaded automatically?
No. The Actor returns public media references when available. Media download is disabled by default.
Does this Actor monitor new posts over time?
No. It is a stateless extractor for one-time collection. Use a stateful monitoring workflow when you need checkpoints and only-new-post detection.
Pricing
Pricing remains under review against measured cloud cost, latency, and result yield. The current private build is intended for validation; no commercial price is active yet.