Telegram Scraper avatar
Telegram Scraper

Pricing

$9.99/month + usage

Go to Apify Store
Telegram Scraper

Telegram Scraper

Developed by

codemaster devops

codemaster devops

Maintained by Community

Seamlessly extract public messages from any Telegram channel and gain valuable insights. Perfect for researchers, marketers, and data analysts.

5.0 (1)

Pricing

$9.99/month + usage

11

607

78

Last modified

a day ago

πŸš€ Telegram Channel Scraper

Scrape public Telegram channels with enterprise-friendly flexibility. The actor now supports post ID ranges, date ranges, configurable post limits, and optional comment harvesting, all while capturing richer post metadata such as reactions and attachments.


πŸ”§ Input Example

{
"channels": ["mediumcom"],
"postsFrom": 1,
"postsTo": 0,
"maxPostsPerChannel": 200,
"fromDate": "2024-01-01T00:00:00Z",
"toDate": "2024-02-01T00:00:00Z",
"includeComments": true,
"maxCommentsPerPost": 50,
"proxy": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
},
"requestHandlerTimeoutSecs": 60
}

πŸ“ Input Parameters

ParameterTypeDescription
channelsarrayList of public channel usernames (e.g. ["mediumcom"]).
postsFrominteger(Optional) Minimum post ID to consider (channels start at 1).
postsTointeger(Optional) Maximum post ID (set to 0/omit to ignore).
maxPostsPerChannelintegerCaps the number of posts processed per channel (default 200).
fromDatestring(Optional) ISO timestamp – collect posts on/after this moment.
toDatestring(Optional) ISO timestamp – collect posts on/before this moment.
includeCommentsbooleanWhen enabled, fetches the public comment thread for each post (if available).
maxCommentsPerPostintegerMaximum number of comments captured per post (default 100).
proxyobjectProxy settings – RESIDENTIAL proxies strongly recommended/required.
requestHandlerTimeoutSecsintegerTimeout per request in seconds (default 60).

You can mix-and-match ID ranges, date filters, and maximum post counts to control the crawl scope precisely.


πŸ“€ Output Example

[
{
"id": 18,
"channelName": "mediumcom",
"channelTitle": "Medium",
"authorName": "Medium / Medium.com",
"authorTelegram": "https://t.me/mediumcom",
"date": "2024-01-05T12:24:33+00:00",
"viewsCount": "15",
"text": "https://journal.thriveglobal.com/look-for-people...",
"linkPreview": "Thrive Global\n\nβ€œLook For People Who Need You...”",
"reactions": [
{
"emoji": "πŸ‘",
"count": 42,
"countDisplay": "42"
}
],
"attachments": [
{
"type": "tgme_widget_message_photo",
"caption": "Image caption",
"url": "https://t.me/..."
}
],
"commentsCount": "3",
"commentsCollected": 3,
"comments": [
{
"authorName": "Jane Doe",
"authorTelegram": "https://t.me/janedoe",
"date": "2024-01-05T13:00:00+00:00",
"text": "Great update!"
}
]
}
]

πŸ“‹ Output Fields

FieldTypeDescription
idintegerMessage ID.
channelNamestringChannel username.
channelTitlestringChannel title (when available).
channelDescriptionstringChannel description text (first listing hit).
subscribersTextstringSubscriber counter text from Telegram (if visible).
authorNamestringAuthor display name.
authorTelegramstringLink to the author/channel.
datestringISO 8601 timestamp.
viewsCountstringView counter displayed by Telegram.
textstringMessage body text.
linkPreviewstringLink preview text.
reactionsarrayEmoji reactions with numeric counts.
attachmentsarrayMetadata for attached media (type, caption, url).
commentsCountstringComment counter Telegram shows on the post.
commentsarrayCollected comments (author, link, date, text) when enabled.
commentsCollectedintegerHow many comments were captured for this post.

πŸ’‘ How to Use

  1. Specify channels – supply the public usernames you want to scrape.
  2. Choose your range strategy – mix ID limits, date filters, and maxPostsPerChannel to bound the crawl.
  3. Toggle comments – enable includeComments (and tune maxCommentsPerPost) to add discussion threads.
  4. Configure proxies – use Apify RESIDENTIAL or your own high-quality proxies for consistent access.
  5. Run the actor – monitor the logs for skipped/blocked content and adjust parameters as needed.

πŸ› οΈ Tips & Tricks

  • Combine date filters with maxPostsPerChannel to collect recent activity without guessing IDs.
  • When you do rely on IDs, start with humane limits (e.g. first 50 posts) and expand gradually.
  • A handful of messages require the official Telegram app and will be skipped – the actor logs them.
  • Respect Telegram policies: throttling retries and using residential IPs dramatically improves success rates.

πŸ”— Connect With Us

πŸ†˜ Support

Happy scraping! 😎🧹✨