Telegram Channel Scraper (Public Posts, No Login) avatar

Telegram Channel Scraper (Public Posts, No Login)

Pricing

from $1.00 / 1,000 message scrapeds

Go to Apify Store
Telegram Channel Scraper (Public Posts, No Login)

Telegram Channel Scraper (Public Posts, No Login)

Scrape public Telegram channel posts: text, date, views, links, hashtags, media URLs. No login or API keys. Pay per message.

Pricing

from $1.00 / 1,000 message scrapeds

Rating

0.0

(0)

Developer

Andok

Andok

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Telegram Channel Scraper

Scrape posts from any public Telegram channel without a Telegram account, API ID, or login. Give it channel usernames or t.me links and get structured JSON: post text, date, view count, links, hashtags, mentions, photo/video URLs, forward and reply info, and link previews. Built for OSINT, crypto and news monitoring, brand mentions, and feeding RAG / LLM pipelines.

It reads Telegram's public web preview (t.me/s/<channel>), so only channels with the preview enabled can be scraped. Private channels, groups and chats are not supported.

Features

  • No login, no API keys — plain HTTP, fast and cheap
  • Flexible input — durov, @durov, https://t.me/durov, https://t.me/s/durov
  • Deep history — paginates back up to 5,000 messages per channel
  • Date and keyword filters — stop at sinceDate; keyword-filtered messages are never billed
  • Rich output — views, links, hashtags, mentions, media URLs, forwards, replies, polls flag, link previews
  • Channel info record — title, description, subscribers, photo/video/link counts (free)
  • Pay per message — see pricing below

Input

FieldTypeRequiredDefaultDescription
channelsstring[]Yes—Usernames, @handles, or t.me links
maxMessagesPerChannelintegerNo100Newest-first cap per channel (1–5000)
sinceDatestringNo—Stop at posts older than this (YYYY-MM-DD or ISO 8601)
keywordsstring[]No—Only return messages containing any keyword (case-insensitive)
includeChannelInfobooleanNotrueAdd one free channel record per channel
includeHtmlbooleanNofalseInclude the formatted HTML of each message
{
"channels": ["telegram", "https://t.me/durov"],
"maxMessagesPerChannel": 200,
"sinceDate": "2026-01-01",
"keywords": ["bitcoin", "airdrop"]
}

Output

Every dataset item has a recordType: message, channel, or error.

{
"recordType": "message",
"channel": "telegram",
"messageId": 460,
"url": "https://t.me/telegram/460",
"date": "2026-08-26T19:12:34+00:00",
"text": "For all the info from today's update ...",
"views": 1960000,
"isForwarded": false,
"forwardedFrom": null,
"replyToMessageId": null,
"links": ["https://telegram.org/blog/welcome-messages-buttons-TG-13"],
"hashtags": [],
"mentions": [],
"photoUrls": [],
"videoUrls": [],
"linkPreview": { "url": "https://telegram.org/blog/...", "title": "Welcome Messages, ...", "description": "...", "siteName": "Telegram" }
}

channel records contain title, description, subscribers, photosCount, videosCount, linksCount. error records explain why a channel could not be read (private, no web preview, not found).

Pricing

Pay per event: $0.001 per message scraped plus a $0.001 start fee. Channel info and error records are free.

Example: 5 channels x 200 messages = 1,000 messages = about $1.00.

Limitations

  • Only public channels with web preview enabled (t.me/s/<name>); no groups, private chats, comments or reactions
  • View counts are rounded by Telegram for large numbers (e.g. 1.58M)
  • Media is returned as CDN URLs; files are not downloaded
  • Telegram may rate limit very aggressive use; the Actor retries with backoff

Scrapes only publicly visible data. You are responsible for complying with Telegram's Terms of Service and applicable privacy law (e.g. GDPR) when processing the data.

If this Actor saves you time, a quick review on the Store page helps a lot.