Telegram Keyword Search & Channel Scraper avatar

Telegram Keyword Search & Channel Scraper

Pricing

from $1.00 / 1,000 telegram posts

Go to Apify Store
Telegram Keyword Search & Channel Scraper

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

Monkey D. Scraping

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

3 days ago

Last modified

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

CapabilityWhat it means
Telegram keyword searchDiscover publicly indexed Telegram posts for one or more terms.
Telegram channel scraperCollect publicly available posts from channel usernames or public URLs.
Hybrid runsCombine keywords and known channels without creating separate jobs.
Guided plansChoose automatic, keyword-only, channel-only, or combined collection.
Predictable allocationSet a global cap, optional per-channel cap, and source priority for hybrid runs.
FiltersLimit returned posts by absolute or relative dates, text phrases, optional patterns, country preference, and language preference.
Verified outputEvery row has a canonical post URL; unavailable values are null, never inferred.
Media by choicePublic 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 goalFill inRecommended plan
Find public Telegram discussion about a topickeywordsAutomatic or Keyword discovery only
Archive or analyze sources you already knowchannelsAutomatic or Known public channels only
Research a topic while checking selected sourcesboth keywords and channelsCombine 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:

PriorityUse it whenEffect if the global cap is reached
Known channels firstYour selected sources are the most important evidence.Direct channel collection gets capacity before keyword-discovered channels.
Keyword discovery firstBroad 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

InputUse it for
keywordsTopic, brand, product, organization, event, or phrase discovery across public Telegram content.
channelsDirect collection from public channel usernames or URLs.
collectionModeGuided choice: automatic, keyword-only, channel-only, or hybrid.
afterDate / beforeDateInclusive date boundaries: choose a date or use a relative value such as 7 days.
countryCodeOptional ISO 3166-1 alpha-2 preference for keyword discovery.
languageCodeOptional ISO 639-1 preference for keyword discovery.
maxResultsOne global maximum for unique posts from all sources in the run.
sourcePriorityExplicit allocation choice for a combined run that reaches its global cap.
maxResultsPerChannelOptional fairness cap for one channel within the global maximum.
includeKeywords / excludeKeywordsSimple phrase filters applied to public post text and public channel title.
regexFiltersOptional advanced text filters using JavaScript-compatible regular expressions.
downloadMediaOff 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”:

  • null means 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.

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.