Telegram Channel Scraper Goat
Pricing
Pay per usage
Telegram Channel Scraper Goat
Scrape messages from public Telegram channels in bulk. Returns one clean row per message with id, date, text, views, media flags, media URLs, forwards, and links, plus an optional channel info summary.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Goutam Soni
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Telegram Channel Scraper
Scrape messages from public Telegram channels in bulk. Give it a list of channel handles or links and it returns one clean row per message, newest first, with the text, date, view count, media flags, media URLs, forwards, and links. It can also return a short channel info summary (title, subscriber count, description, photo).
No login. No API key. No cookies. Public channels only.
What you get
For every message:
channelandmessageIdurl(direct link to the message)datetime(ISO 8601, with timezone)views(parsed to a number)text(cleaned, line breaks preserved)hasPhoto,hasVideo,hasDocument,hasVoiceflagsphotoUrls,videoUrls(media URLs where the channel exposes them)forwardedFrom,forwardedFromUrl(when the message is a forward)links(outbound links found in the message text)
When channel info is enabled, you also get one summary row per channel:
title,subscribers,description,photoUrlphotoCount,videoCount,fileCount,linkCount
Input
| Field | Type | Description |
|---|---|---|
channels | array | Channel handles or URLs. Accepts example_channel, @example_channel, or https://t.me/example_channel. |
maxMessagesPerChannel | integer | Cap on messages returned per channel, newest first. Default 50. |
includeChannelInfo | boolean | Also return a channel info summary row per channel. Default true. |
concurrency | integer | Channels processed in parallel. Default 4. |
delayBetweenRequests | number | Seconds to wait between page fetches inside one channel. Default 1.0. |
proxyConfiguration | object | Optional proxy. Works without a proxy by default. |
Example input
{"channels": ["example_channel","@another_example","https://t.me/one_more_example"],"maxMessagesPerChannel": 100,"includeChannelInfo": true,"concurrency": 4}
Example output row
{"channel": "example_channel","messageId": 1234,"url": "https://t.me/example_channel/1234","datetime": "2026-02-10T17:43:45+00:00","views": 1740000,"text": "Big news today. Read the full post here.","hasPhoto": false,"hasVideo": true,"hasDocument": false,"hasVoice": false,"photoUrls": [],"videoUrls": ["https://example.com/video.mp4"],"forwardedFrom": null,"forwardedFromUrl": null,"links": ["https://example.com/full-post"]}
Use cases
- Track announcements and news from public channels.
- Archive a channel's message history with dates and view counts.
- Build a dataset of posts for analysis, alerting, or reporting.
- Track channels in your space.
Notes
- Only public channels are supported. Private channels and ones that hide their message preview return no messages.
- View counts and media availability depend on what the channel exposes publicly.
- The scraper pages backwards through a channel's history until your limit is reached or the channel runs out of messages.