Telegram Posts Scraper - Channel History, Views & Media
Pricing
$0.30 / 1,000 per post returneds
Telegram Posts Scraper - Channel History, Views & Media
From $0.30 per 1,000 posts, no start fee. Scrape the full public history of any Telegram channel: post text, view count, publish date, photos, videos, outbound links, forwards and replies — plus channel subscribers and media counts. Date ranges, incremental runs, no login.
Pricing
$0.30 / 1,000 per post returneds
Rating
0.0
(0)
Developer
Scrapers Delight
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
10 days ago
Last modified
Categories
Share
Telegram Posts Scraper — Channel History, Views & Media
Exports the full public post history of any Telegram channel: post text, view count, publish date, photos, videos, outbound links, forwards and replies — plus the channel's own subscriber and media counts on every row.
No login. No phone number. No API key. No Telegram account of any kind.
What one row looks like
{"postId": 443,"channel": "telegram","postUrl": "https://t.me/telegram/443","datetime": "2026-05-14T16:08:31+00:00","text": "Telegram's new update brings…","textLength": 219,"views": 1730000,"isForwarded": false,"isReply": false,"hasLinkPreview": true,"photoCount": 0,"videoCount": 1,"hasMedia": true,"videoThumbUrls": ["https://cdn1.telesco.pe/file/…"],"links": ["https://telegram.org/blog/…"],"channelTitle": "Telegram News","subscribers": 9540000,"videosCount": 228}
| field | what it is |
|---|---|
postId | Telegram's own sequential id — the stable key, and the cursor for incremental runs |
datetime | Publish time, ISO 8601 with timezone |
views | A real number. Telegram renders "9.55M"; this expands it to 9550000 |
text · textLength | Post text with markup stripped and emoji kept. null on a media-only post |
photoCount · videoCount · hasMedia | Always present, whether or not you ask for media URLs |
photoUrls · videoUrls · videoThumbUrls | CDN links, when includeMedia is on |
links | Outbound URLs inside the post body |
isForwarded · forwardedFrom · isReply · isEdited | Post provenance |
subscribers · photosCount · videosCount · linksCount | Channel totals — free, read off the same page, no extra request |
Input
| input | default | what it does |
|---|---|---|
channels | ["telegram"] | Handles or links — telegram, @telegram, https://t.me/telegram all work |
maxPosts | 200 | Cap across all channels on delivered — and charged — posts |
maxPostsPerChannel | 0 | Per-channel cap, for an even sample across many channels |
maxPagesPerChannel | 0 | Telegram serves 20 per page; a safety stop for very long channels |
sinceDate · untilDate | — | ISO dates. Paging stops once a page is entirely older than sinceDate, so a narrow window is cheap |
afterPostId | 0 | Fetch only posts newer than an id you already hold |
onlyNewSinceLastRun | false | Remembers the highest id per channel between runs — a monitor without you tracking ids |
includeMedia | true | Adds media URLs. Counts are included either way |
includeChannelInfo | true | Channel title, description and counts on every row |
includeRawHtmlSnippet | false | Original markup, capped at 20 KB per post |
Public channels only
This reads t.me/s/<channel>, the preview Telegram serves to anyone with a browser. If a channel
has no public preview — private, or preview disabled by its owner — the run says so and charges
nothing for it. Groups, direct messages and member lists are not accessible this way and this
Actor does not attempt them.
Why a run either completes or fails
A page that isn't HTTP 200 is treated as a transport failure, not the end of the channel. That distinction is the difference between an honest result and an expensive lie: a scraper that stops "when a page returns nothing" will end a third of the way through a long channel, report success, and bill you for a partial history.
The Actor also checks its own parsing. Telegram serves exactly 20 posts per page, and if the number of posts decoded doesn't match the number of message blocks on the page, the run fails rather than delivering a quietly short history.
Pricing
Pay per event: $0.0003 per post, and no run-start fee.
The start fee is where this category hides its cost. A 100-post run here is $0.03. The same run is about $0.045 at one competitor ($0.00035/post + $0.01 start) and about $0.05 at another ($0.00045/post + $0.005 start). Channel details ride along on every row at no extra charge.
Filters — date range, post id, per-channel caps — are applied before delivery, so posts they exclude are never charged, and a run that returns nothing costs nothing.
Every run writes a RUN_SUMMARY with, per channel: subscriber count, pages read, posts delivered,
the highest post id reached, and exactly why paging stopped.
Source
t.me/s/<channel> is Telegram's own public web preview, served to any visitor. The host publishes
no robots.txt at all. Posts in a public channel are published by the channel owner to be read
publicly; you are responsible for what you do with them, which for outreach means the relevant
marketing and data-protection rules wherever you are sending from.