Telegram Channel Scraper
Pricing
from $11.25 / 1,000 result items
Telegram Channel Scraper
Archive messages, media, reactions, and metadata from any public Telegram channel - 35 fields per message, no phone or API key required.
Pricing
from $11.25 / 1,000 result items
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share

๐จ Telegram Channel Scraper
๐ Archive entire Telegram channels in seconds. Pull messages, photos, videos, link previews, reactions, view counts, and channel stats from any public channel. No login, no MTProto, no API key.
๐ Last updated: 2026-05-09 ยท ๐ 35 fields per record ยท No auth required ยท Pagination back to message #1 ยท Multi-channel batches
Telegram is one of the largest open broadcast networks on the internet, with public channels covering crypto markets, breaking news, government communications, fan communities, and developer announcements. The platform's web preview at t.me/s/{channel} exposes a full archive of any channel that has enabled public preview, but it is paginated, HTML-rendered, and rate-sensitive. Pulling a clean dataset out of it by hand means stitching dozens of pages, parsing fragile DOM, and handling every media type Telegram supports.
This actor handles all of that. Point it at one channel or a hundred, set a maximum, and it walks the public preview newest-first, parses every supported message type (text, photo, video, voice, document, sticker, poll, location, forwarded, reply, service), normalizes view counts and reaction tallies, and ships 35 structured fields per message. Every record includes the source channel's title, description, subscriber count, and verified status, so single records stand on their own without needing a join. Channels that do not expose a public preview are flagged with an error record rather than failing the whole run.
| ๐ฅ Target Audience | ๐ฏ Primary Use Cases |
|---|---|
| Crypto researchers tracking project announcements | Build longitudinal datasets of token launch posts and community sentiment |
| Compliance and risk teams archiving public chatter | Snapshot regulated entities' public messaging for retention requirements |
| Investigative journalists documenting sources | Capture an immutable copy of public channel posts before they are edited |
| OSINT and threat-intel analysts | Monitor activity, view counts, and reaction signals at scale |
| Academic researchers studying online communities | Collect reproducible corpora of public channel discourse |
๐ What the Telegram Channel Scraper does
- ๐ก Multi-channel input. Accepts channel usernames,
@handles, or fullhttps://t.me/...URLs. Each channel is paginated independently with its own per-channel cap. - ๐งพ Full message body. Returns both plain text and Telegram's original HTML, including emoji, formatting, and outbound
<a>links. - ๐ผ๏ธ Every media type. Photos, videos (including round videos), voice notes, documents, stickers, polls, locations, plus link preview cards.
- ๐ Forwards and replies. Captures the original channel name and link for forwards, the parent message for replies, and the snippet of the message being replied to.
- ๐ Engagement signals. View counts and full reaction tallies (including paid Star reactions) parsed into clean integers (no
1.2Kstrings). - ๐๏ธ Date-bounded archival. Optional
fromDate/toDatefilters stop pagination at the right point so you do not pay to scrape outside the window.
Each record carries channelTitle, channelDescription, channelSubscribers, and channelVerified from the channel's profile page so a single message can be analyzed without joining a separate channels table. Reaction blocks include both the unicode emoji (when standard) and the Telegram custom-emoji ID for branded reactions, and paid Star reactions are flagged with isPaid: true.
๐ก Why it matters: Telegram's MTProto API requires a registered application, a phone number, and a session that can be flagged or banned. The public preview is anonymous and rate-friendly. This actor turns it into a clean dataset without any of that overhead.
๐ฌ Full Demo
๐ง Coming soon: a 3-minute walkthrough showing how to scrape multiple channels, filter by date, and route results to a Google Sheet via integrations.
โ๏ธ Input
| Field | Type | Required | Description |
|---|---|---|---|
channels | array of strings | yes | Channel usernames, @handles, or https://t.me/... URLs. Channel must have public preview enabled. |
maxItems | integer | no | Total cap across all channels. Free plan: 10. Paid plan: up to 1,000,000. |
maxItemsPerChannel | integer | no | Per-channel cap. Useful when scraping many channels but you only want recent activity from each. |
fromDate | date string | no | ISO 8601 date. Pagination stops once the page's oldest message is older than this. |
toDate | date string | no | ISO 8601 date. Messages newer than this are skipped. |
messageTypes | array | no | Restrict to selected types: text, photo, video, voice, document, sticker, poll, location, service, forwarded, reply. |
onlyWithMedia | boolean | no | Skip text-only messages. |
includeChannelMetadata | boolean | no | Attach channel title, description, subscriber count, and verified flag to every record. Default true. |
includeReactions | boolean | no | Include the reactions array. Default true. |
includeLinkPreview | boolean | no | Include link preview metadata when present. Default true. |
outputFormat | string | no | text, html, or both. Controls whether the message body returns plain text, original Telegram HTML, or both. |
proxyConfiguration | object | no | Standard Apify proxy configuration object. |
Example: scrape the latest 100 posts from one channel.
{"channels": ["durov"],"maxItems": 100}
Example: scrape three channels, last 30 days, photos and videos only.
{"channels": ["cointelegraph", "crypto", "tginfo"],"maxItems": 5000,"maxItemsPerChannel": 2000,"fromDate": "2026-04-09","messageTypes": ["photo", "video"]}
โ ๏ธ Good to Know: Only channels with a public web preview are scrapeable. Private channels and groups, and channels whose owners have disabled the preview, return an error record. Telegram's public preview is anonymous; we do not authenticate, do not impersonate a user, and do not access any non-public data.
๐ Output
Each record represents one message and carries channel-level fields for joinless analysis.
๐งพ Schema
| Field | Type | Example |
|---|---|---|
๐ผ๏ธ imageUrl | string | https://cdn4.telesco.pe/file/K9wOaBteN... |
๐ channel | string | cointelegraph |
๐ channelUrl | string | https://t.me/cointelegraph |
๐ท๏ธ channelTitle | string | Cointelegraph |
๐ channelDescription | string | The Future of Money. Trusted crypto & Web3 media since 2013. |
โ
channelVerified | boolean | true |
๐ฅ channelSubscribers | integer | 374535 |
๐ messageId | integer | 69568 |
๐ url | string | https://t.me/cointelegraph/69568 |
๐
date | string | 2026-05-08T18:16:01+00:00 |
โ๏ธ edited | boolean | false |
๐ค author | string | Cointelegraph |
๐ฌ text | string | ๐ฅ LATEST: $TON now ranks as the highest yielding... |
๐งฑ htmlText | string | <b>๐ฅ LATEST: </b>$TON now ranks as... |
๐๏ธ views | integer | 4670 |
๐ฐ isPaid | boolean | false |
๐ท๏ธ type | string | photo |
โฉ๏ธ forwardedFrom | string | Pavel Durov |
๐ค forwardedFromAuthor | string | Pavel Durov |
๐ forwardedFromUrl | string | https://t.me/durov/503 |
๐ replyTo | string | tginfo/4282 |
๐ replyToUrl | string | https://t.me/tginfo/4282 |
๐ค replyToAuthor | string | Telegram Info |
๐ฌ replyToText | string | Telegram ัะฐะทะผะตััะธะป ะพะฑะปะธะณะฐัะธะธ ะฝะฐ $1.7 ะผะปัะด |
๐ผ๏ธ photos | array | [{url, aspectRatio}] |
๐ฌ videos | array | [{url, thumbnailUrl, duration, durationSeconds}] |
๐๏ธ voice | object | {url, duration, durationSeconds} |
๐ documents | array | [{url, title, extra}] |
๐ sticker | object | {url} |
๐ poll | object | {question, type} |
๐ location | object | {url} |
๐ช linkPreview | object | {url, siteName, title, description, image} |
๐ reactions | array | [{emoji, isPaid, count}] |
๐ข totalReactions | integer | 55 |
๐ scrapedAt | string | 2026-05-09T00:23:38.901Z |
๐ฆ Sample records
โจ Why choose this Actor
| Capability | |
|---|---|
| ๐ชช | No authentication. No phone number, no MTProto, no app registration. Anonymous scraping of public previews only. |
| ๐งฑ | Schema stability. 35 documented fields, every one named in the output schema, with consistent typing across runs. |
| ๐ฌ | Full media coverage. Photos, videos, round videos, voice notes, documents, stickers, polls, locations, link previews, paid media flags. |
| ๐ | Provenance preserved. Forwards keep the original channel name and link; replies keep the parent ID, author, and snippet. |
| ๐ | Date-bounded pagination. fromDate stops the crawl at the right point so big channels do not run forever. |
| ๐ | Numeric engagement. 1.2K and 2.6M parsed to 1200 and 2600000; reactions summed into totalReactions. |
| ๐ฐ๏ธ | Apify Proxy ready. Works direct or through Apify residential / datacenter proxy groups for hardened runs. |
๐ In sample crawls across
durov,cointelegraph,crypto, andtginfo, the actor pulled 50 messages in 4 seconds with zero retries.
๐ How it compares to alternatives
| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| โญ Telegram Channel Scraper (this Actor) | Pay per usage | Any public channel with web preview | On-demand | channels, dates, types, media | Paste channels and click run |
| MTProto API clients | Free, but requires phone + session | Full Telegram surface (private chats too) | Real-time | Custom code | App registration, phone, session management |
| Browser automation against Telegram Web | High (browser cost) | Anything you can see logged in | Real-time | Custom code | Headless setup, login, anti-bot handling |
| Generic web crawlers | Low | Whatever HTML they parse | Periodic | Limited | DOM selectors break each Telegram update |
| Manual copy and paste | Free | A handful of messages | Whenever you bother | None | Free time |
This actor sits between "free but operationally heavy" (MTProto) and "shallow web crawlers": authenticated-quality data, anonymous-grade simplicity.
๐ How to use
- โจ Sign up. Create an Apify account at console.apify.com/sign-up. Free tier covers 10 messages so you can preview the output before upgrading.
- ๐ Open the actor. Find Telegram Channel Scraper in the ParseForge collection and click Try for free.
- ๐ฏ Pick channels. Paste channel usernames or
t.me/...URLs into the Telegram Channels field. Add as many as you like. - ๐๏ธ Tune limits and filters. Set
maxItems,maxItemsPerChannel, optional date window, and message types. Defaults pull the latest 10 messages per channel. - ๐พ Run and download. Click Start. Stream results to JSON, CSV, Excel, RSS, or pipe directly into Google Sheets, S3, or your warehouse via Apify integrations.
โฑ๏ธ Total time: under 60 seconds from sign-up to first dataset row.
๐ผ Business use cases
๐ Beyond business use cases
Data like this powers more than commercial workflows. The same structured records support research, education, civic projects, and personal initiatives.
๐ Automating Telegram Channel Scraper
Run the scraper from your own code or pipelines using the Apify API or SDKs.
- Node.js client for triggering runs and streaming dataset items.
- Python client for notebooks, ETL jobs, and ML pipelines.
- Apify API reference for raw HTTP integration in any language.
For recurring archival jobs, use Apify Schedules to run the actor on a cadence (hourly, daily, weekly) and write the dataset to your destination. Each scheduled run captures the messages added since the previous run, so storage stays bounded.
โ Frequently Asked Questions
๐ Integrate with any app
- Zapier - trigger downstream automations from each new dataset row.
- Make - visual workflow builder for routing scraped messages.
- n8n - self-hosted automation for sensitive Telegram archives.
- Google Sheets - one-click export of the dataset to a sheet.
- Airbyte - ELT pipeline into Snowflake, BigQuery, Redshift, Postgres.
- Apify API - direct HTTP integration in any language.
๐ Recommended Actors
- ๐จ Reddit Posts Scraper - companion archive tool for Reddit communities.
- ๐ฆ X.com (Twitter) Post Scraper - the Twitter equivalent of this actor, no auth required.
- ๐ธ Instagram Posts Scraper - structured Instagram post archives.
- ๐ฌ YouTube Scraper - channel and video metadata at scale.
- ๐ฌ Youtube Comments Scraper - comment threads with replies and AI sentiment.
๐ก Pro Tip: browse the complete ParseForge collection for more social, marketplace, and public-records scrapers.
๐ Need Help?
Open our contact form and we will respond within one business day.
โ๏ธ Disclaimer: This actor only accesses public Telegram channel previews exposed by Telegram itself. It does not authenticate, impersonate users, or access private chats, groups, or content. Users are responsible for compliance with Telegram's terms of service and applicable law in their jurisdiction.