Telegram Channel Message Scraper
Pricing
from $85.00 / 1,000 runs
Telegram Channel Message Scraper
Scrape Telegram channel messages and group chat posts with author profiles. Delivers Excel export via webhook for lead gen and conversation analysis.
Pricing
from $85.00 / 1,000 runs
Rating
5.0
(1)
Developer
akula.marketing
Maintained by CommunityActor stats
5
Bookmarked
67
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share
Telegram Channel Message & Comment Scraper
π¬ Questions, bulk pricing, or a custom solution? Talk to us on Telegram β @KoteamSupport.
Export messages from a public Telegram chat or the comments under a public channel's posts to Excel, together with each author's public profile. You get one file showing who wrote what and when, ready to filter in Excel or Google Sheets.
What it's for
- Community analysis: see who is active in a chat and what they talk about.
- Moderation: review message history and spot spam and bot accounts.
- Market and content research: find the questions and complaints that come up in a niche's discussions.
- Engagement tracking: see which channel posts get people commenting.
How it works
- Enter a channel or chat username.
- The Actor starts an export task through the public Telegram API method channels.getMessages and waits for it.
- In about 5 minutes the run's dataset gets a row with a link to the Excel file. Messages come newest first. No webhook needed.
- One export session runs for up to 10 minutes. To go further back in history, run it again from the last checkpoint (see the FAQ). There's no total limit on how many messages you can collect this way.
To get more functionality use akula.marketing
π‘οΈ Data & compliance
- Public channels and chats only. The Actor reads messages anyone can see in a public channel's comments or a public chat. Private chats and invite-only groups are not supported.
- Author data is the public profile. For each message author, it returns the profile fields Telegram shows publicly: ID, username, name, bio, Premium and online status. A phone number appears only if the user made it visible in their Telegram privacy settings; hidden fields stay hidden.
- Nothing to set up. You don't need a Telegram account, login, or API keys.
- Your responsibility. Use the data in line with Telegram's Terms of Service and the privacy laws that apply to you (for example, GDPR). Don't use it for unsolicited bulk messaging.
π₯ Input
| Field | Type | Description | Required | Default |
|---|---|---|---|---|
username | String | Public chat or channel username or link | Yes | devs |
webhookUrl | String | Optional URL that also receives progress updates | No | β |
max_message_id | Integer | Only messages older than this ID (exclusive). Use it to continue further back. | No | β |
min_message_id | Integer | Skip messages with this ID or lower. Use it to get only new messages. | No | β |
keep_duplicates | Boolean | Keep every message of an author instead of one row per author | No | false |
The username can be provided as @channelname, channelname, or a Telegram URL like https://t.me/channelname.
π€ Output
You don't need a webhook. The run waits for the export (usually about 5 minutes, up to 12) and pushes one row to its dataset with the result and download links:
| Field | Type | Description |
|---|---|---|
result | String | success, failed, or pending (the export is still running when the run ends) |
state | String | Task state: created, in_progress, completed, error |
channel | String | The channel you exported |
usersCount | Number | Message authors exported |
messagesCount | Number | Messages read |
usersWithUsernamesCount | Number | Authors who have a username |
xlsxUrl | String | Download link for the Excel file (temporary; open resultUrl for a fresh one) |
userIdsUrl | String | Download link for the username list (.txt) |
resultUrl | String | Status page for this export. Works without an API key, any time later |
downloadUrl | String | Opens the latest Excel file directly |
error | String | Error message, null on success |
The Excel file is also saved in the run's key-value store as result.xlsx.
You don't have to keep the run open: the status link appears in the log right after the export starts (and in the key-value store as task-result-link.json). Stop the run and open the link later if you like.
Example Output
{"result": "success","state": "completed","channel": "devs","usersCount": 412,"messagesCount": 1530,"usersWithUsernamesCount": 377,"xlsxUrl": "https://β¦/users.xlsx?X-Amz-β¦","userIdsUrl": "https://β¦/users.txt?X-Amz-β¦","resultUrl": "https://β¦/parsing-tasks/link/β¦","downloadUrl": "https://β¦/parsing-tasks/link/β¦/download","error": null}
Error Messages
If the output is restricted due to subscription limits:
Output is restricted. To use without limitations upgrade to a paid subscription.
File Output
The actor generates two output files:
- Text File: Contains a list of usernames, reusable in other software.
- Excel File: Includes detailed data for each discovered Telegram account:
Channel NameUser IDFirst NameLast NameUsernameHas Profile Photo (Yes/No)Phone NumberPremium Status (Yes/No)Online StatusLanguageBio (About)Message DateMessage Text
To refine the collected data, it is recommended to filter the database based on: Presence of a profile photo, Online status, Keywords in the "Bio" (About) field.
Usage
- Input Username: Provide a Telegram channel username (e.g.,
devs,@devs, orhttps://t.me/devs). - Run the Actor: Start the export.
- Get the file: When the run finishes, open the dataset row and download the Excel file from
xlsxUrl, or openresult.xlsxin the key-value store.
FAQ
Do I need to be an admin of the channel or chat?
No. The Actor reads messages anyone can see in a public chat or in the comments of a public channel. You don't need a Telegram account or admin rights. Private chats and invite-only groups are not supported.
Do I need a webhook URL?
No. The run waits for the export and puts the file links in its dataset. A webhook is optional: set webhookUrl if you also want progress updates sent to your own endpoint.
How do I collect more than one session's worth of messages?
Each session runs up to 10 minutes and goes from the newest messages back in time. To continue, run the Actor again with max_message_id set to the oldest message ID from the previous file. Only older messages are returned.
How do I get only new messages since my last export?
Set min_message_id to the newest message ID from your previous file. The run skips everything up to and including that ID.
What does keep_duplicates do?
By default, each author who posted several messages appears once in the results. Set keep_duplicates to true to keep every occurrence.
What does "Output is restricted" mean?
Your run hit the free output limit, so the file contains only part of the data. Message @KoteamSupport to get full exports.
Why use this instead of the Telegram API?
The Telegram API needs your own account, API keys, session handling, and flood-limit handling, and it gives you author IDs, not profiles. This Actor does all of that and returns one Excel file with messages and author profiles together.
π Run it on a schedule
Apify Schedules run this Actor for you: Console β Schedules β Create new β add this Actor or one of your saved tasks β set how often it runs.
Daily or weekly works for tracking a community. Each run should start where the last one ended: set min_message_id to the newest message ID you already have. A schedule always uses the same input, so if you want that ID to update by itself, start the Actor from Make, Zapier, or the Apify API instead. Each run's dataset row has the link to that export's Excel file.
π Automate with Zapier & Make
No code needed β trigger this Actor from your existing tools.
- Zapier: search for the "Apify" app β action Run Actor β select
akula.marketing/telegram-get-chat-messages-channel-commentsβ wait for the run to finish β use Get Dataset Items to get the row withxlsxUrland the counts. Docs - Make: add the Apify β Run an Actor module with "Run synchronously" set to
Yes, then chain a Get Dataset Items module to pull the row into your scenario. Docs
Example: scenario runs this Actor on a target channel β the Excel link and message count get posted into a Slack channel for monitoring.
π€ Use with AI agents (MCP)
This Actor works as a tool in Claude, ChatGPT, Cursor, and other MCP clients through the Apify MCP server. Add this server URL to your client:
https://mcp.apify.com?tools=akula.marketing/telegram-get-chat-messages-channel-comments
The first time you connect, the client asks you to sign in to Apify. Runs are billed to your Apify account, the same as runs from the Console.
Then ask in plain language, for example: "Export the last week of comments from @durov's channel to Excel". The agent reads the input schema, fills in the fields, and gets the result row with the file links back.
π§© Related Actors
| Next step | Actor |
|---|---|
| Find more channels and chats in the same niche | Telegram Similar Channels Finder |
| Get the channel's posts with views and reactions, delivered straight to the dataset | Telegram Channel Post & Media Scraper |
| Check a channel's subscriber count and description | Telegram Username Checker |
Support
Support 24/7 - @KoteamSupport. We also offer specialized solutions for Telegram-related tasks β contact us to learn more
β Found this useful? Leave a review β it helps others find this Actor and tells us what to build next.
π·οΈ Find This Tool When You Search For "telegram channel message scraper" - Archive posts and comments from any public channel "telegram chat history export" - Download full message history to Excel "telegram group message scraper" - Collect messages and their authors from chats "telegram comment scraper" - Extract channel comments with author profiles "telegram conversation analysis tool" - Analyze message activity and authorship "telegram content archiving" - Preserve channel posts and discussion history "telegram message export api" - Automate message collection via API "telegram engagement research" - Study posting activity and audience behavior π― Turn a channel's message history into structured, exportable data π See which topics drive discussion in a community