Telegram Channel Scraper avatar

Telegram Channel Scraper

Pricing

from $11.25 / 1,000 result items

Go to Apify Store
Telegram Channel Scraper

Telegram Channel Scraper

Scrape messages, media, and metadata from public Telegram channels by username or URL. Returns each message as a flat row with text, reactions, and media links. No API key needed.

Pricing

from $11.25 / 1,000 result items

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

24

Total users

0

Monthly active users

14 days ago

Last modified

Share

ParseForge

Telegram Channel Scraper

Scrape messages, media, and metadata from any public Telegram channel, up to a million per run. Every message comes with its full text, reactions, media links, and channel subscriber count. No Telegram API key or bot token required. Export to CSV, JSON, Excel, or XML.

Telegram's official API requires a developer account, an app registration, and a bot token, and it rate-limits you quickly. This Actor reads the public channel preview pages directly, so you can archive messages from any number of channels at once. Filter by date range, message type, or media presence, and get a flat row for every matching post.

Who uses itWhat they scrape Telegram for
OSINT analystsArchiving a channel's full message history before it is deleted or made private.
Market researchersTracking product announcements, feature discussions, and sentiment in niche community channels.
JournalistsCollecting and verifying public statements and media shared in news and political channels.
Data scientistsBuilding a text corpus from channel discussions for NLP model training or trend analysis.

What it does

This Actor collects messages from public Telegram channels by username or URL and returns each one as a flat row with text, media links, reactions, and optional channel metadata.

  • ๐Ÿ“… Date-range filtering: set a From and To date to capture only messages posted in a specific window.
  • ๐Ÿ“Ž Media-only mode: skip text-only posts and return only messages that contain a photo, video, voice note, document, or sticker.
  • ๐Ÿท๏ธ Message-type filtering: restrict results to text, photos, videos, polls, forwarded messages, replies, and more.
  • ๐Ÿ“Š Channel metadata: optionally attach the channel title, description, subscriber count, and verified flag to every row.
  • ๐Ÿ”— Link preview extraction: capture the URL, site name, title, description, and image from any link preview card in a message.
  • ๐Ÿ“ Dual text output: get both the plain-text and the HTML-formatted version of every message body.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with Telegram data

๐Ÿ—„๏ธ Archive a channel before it disappears.

An OSINT investigator feeds a list of at-risk Telegram channels and sets a high maxItems to capture the complete message history for offline storage.

๐Ÿ“ˆ Monitor competitor product launches.

A market analyst scrapes a competitor's announcement channel weekly, filtering for photo and video messages to catch every new product reveal.

๐Ÿ“ฐ Collect public statements for a news story.

A journalist scrapes a political figure's channel with a date filter set to the last 30 days to gather all recent public statements and attached media.

๐Ÿง  Build a training dataset for a language model.

A data scientist scrapes several discussion channels, keeping only text messages, to create a clean corpus for fine-tuning a domain-specific NLP model.

Why choose this scraper

What you get
No API keyUses the public web preview, so you never register a bot or handle OAuth tokens.
Multi-channelScrape dozens of channels in a single run, with an optional per-channel message cap.
Reactions includedEvery message can carry its full reactions array with emoji and counts.
Fixed schemaEvery row has the same flat structure, ready for CSV, JSON, Excel, or XML export.

How it compares

This Actor focuses on scraping message content from public Telegram channels, while the alternatives below target member lists or general contact extraction from websites.

FeatureParseForgeTelegram Groups and Channel Member ScraperContact Details Scraper
Scrapes message text and media from channelsYesNot listedNot listed
Filters by message type (photo, video, poll, etc.)YesNot listedNot listed
Includes reactions on messagesYesNot listedNot listed
Extracts channel metadata (subscribers, description)YesNot listedNot listed
Scrapes member lists from groupsNot listedYesNot listed
Extracts emails and phone numbers from websitesNot listedNot listedYes

Configure the run

Drive the Actor from a list of channel usernames or URLs, and filters run as each message is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
"channels": [
"durov",
"telegram"
],
"maxItems": 10
}

A larger pull:

{
"channels": [
"durov",
"telegram"
],
"maxItems": 200
}

Pricing

Pay-per-result: $0.015 per result collected. You pay only for the results written to your dataset.

Results collectedApproximate cost
100 results$1.50
1,000 results$15.00
10,000 results$150.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the Telegram Channel Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to Telegram through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/telegram-channel-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results for a channel?

Check that the channel has a public preview enabled. Open its URL in an incognito browser window. If you cannot see the messages without logging in, the Actor cannot access them either.

Why are some old messages missing?

Telegram's public preview only shows a limited history for some channels. Very old messages may not be available through the web preview. Try setting a narrower date range to see what is reachable.

The run is taking a long time. Is that normal?

Yes, especially when scraping many channels or a high message count. The Actor respects Telegram's rate limits to avoid being blocked. You can reduce the maxItems or the number of channels to speed it up.

Why do I see fewer messages than my maxItems setting?

The channel may have fewer total messages than your maxItems value, or your date filter and message-type filters may be excluding many posts. Try widening the date range or clearing the message-type filter.

Why are media URLs returning a 404 when I try to download them?

Telegram media URLs can expire after some time. Download the files soon after the scrape completes. The Actor provides the direct URL as it appears at the time of scraping.

FAQ

QuestionAnswer
Do I need a Telegram API key or bot token?No. This Actor reads the public web preview of channels, so you do not need to register an app, create a bot, or handle any API credentials.
Can I scrape private channels or groups?No. The Actor can only access channels that have a public preview enabled. Private channels and groups are not accessible without a logged-in session.
How do I format the channel input?You can use a plain username like durov, an @username like @durov, or a full URL such as https://t.me/durov or https://t.me/s/durov.
What message types can I filter on?You can restrict results to text, photo, video, voice, document, sticker, poll, location, service messages, forwarded messages, or replies.
Does the Actor download the actual media files?No. It returns the URLs to the media files. You can download the files separately using the URLs in the dataset.
How many messages can I scrape in one run?You can set the maximum up to 1,000,000 messages per run. You can also set a per-channel cap to limit how many messages are taken from each channel.
Can I get the subscriber count of a channel?Yes. Enable the 'Include Channel Metadata' option, and every message row will include the channel title, description, subscriber count, and verified flag.
What output formats are supported?The Actor can export your dataset as CSV, JSON, Excel, or XML through the standard Apify output options.
Does it handle messages with link previews?Yes. When you enable 'Include Link Preview', the Actor extracts the URL, site name, title, description, and image from any link preview card attached to a message.
Can I get both plain text and HTML for each message?Yes. Set the Text Output Format to 'Both plain text and HTML', and each row will contain a text field and an html field.

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Telegram Messenger Inc. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.