Telegram Channel Scraper — Messages, Views & Media | from $3/1K avatar

Telegram Channel Scraper — Messages, Views & Media | from $3/1K

Pricing

Pay per usage

Go to Apify Store
Telegram Channel Scraper — Messages, Views & Media | from $3/1K

Telegram Channel Scraper — Messages, Views & Media | from $3/1K

Scrape public Telegram channel messages with text, view counts, timestamps, media type, links, forwards, and reply threading — no API key, no login, no proxy required. Structural HTML parser (not class-name fragile) with parse_confidence drift signal. Paginates backwards via cursor.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Vitalii Bondarev

Vitalii Bondarev

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 hours ago

Last modified

Share

Telegram Channel Scraper — Messages, Views & Media

Scrape messages from any public Telegram channel — no API key, no Telegram account, no proxy required. This Telegram channel scraper extracts message text, view counts, timestamps, media type, links, forward source, and reply threading from public channels accessible via t.me.

Use it for brand monitoring, crypto/news signal aggregation, competitive intelligence, or feeding Telegram content into LLM pipelines.

How the Telegram scraper works

Uses the public Telegram web preview at https://t.me/s/{channel} — the same URL anyone can open in a browser. Paginates backwards via ?before={message_id} to collect historical messages going as far back as the channel's public web history allows.

No unofficial MTProto API, no bot token, no phone number verification. Just HTTP + structural HTML parsing.

Why this Telegram scraper is more reliable than alternatives

Most Telegram scrapers use the MTProto API (requires a phone number and Telegram account) or depend on CSS class names that break on every Telegram web redesign. This actor uses structural XPath parsing on the semantic HTML structure — data-* attributes and element structure, not fragile class names. When Telegram updates its web UI, parse_confidence drops below 0.8 and warnings flag the affected fields — you get a drift signal, not silent wrong data.

Input

{
"channels": ["telegram", "@durov", "https://t.me/cointelegraph"],
"maxMessages": 200
}
FieldTypeDescription
channelsstring[]Public channel usernames, @handles, or t.me URLs
maxMessagesintegerMax messages per channel (default: 100)
beforeIdintegerOptional cursor — only collect messages before this ID

Output

One row per message:

FieldTypeDescription
channelstringChannel username
message_idintegerTelegram message ID
textstring|nullMessage text content
viewsstring|nullView count (e.g. "1.5M", "42K")
datetimestringISO-8601 UTC timestamp
has_mediabooleanWhether the message contains media
media_typestring|null"photo", "video", "document", "sticker", "audio", "poll"
linksstring[]HTTP/HTTPS links in message text
is_forwardedbooleanWhether forwarded from another channel
forward_fromstring|nullSource channel/user name if forwarded
reply_tointeger|nullMessage ID being replied to
message_urlstringFull https://t.me/{channel}/{id} URL
parse_confidencefloat0.0–1.0 quality signal; below 0.8 check warnings
warningsstring[]Parse quality warnings (e.g. "missing_datetime")
scraped_atstringISO-8601 UTC scrape timestamp

What it does NOT support

  • Private channels — only public channels accessible via t.me/s/{channel}
  • Comments/replies within posts — web preview shows channel messages only
  • Media downloads — returns media type detection only, not URLs to media files
  • Real-time streaming — pulls historical messages, not a live feed

Competitive edge

FeatureThis actor@maximedupre/telegram-channel-messages-scraper
parse_confidence field
Pagination cursor input (beforeId)
Forward source name
Reply-to message ID
Structural parser (not class-name fragile)
PricePPE $3/1K messages~$50/mo fixed

Frequently asked questions

Can I scrape a private Telegram channel?

No. This actor only works on public channels accessible via t.me/s/{channel}. Private channels, groups, and direct messages are not supported.

Does this require a Telegram bot token or phone number?

No. The actor scrapes the public Telegram web preview (t.me/s/*) — no account, no bot token, no API credentials needed.

How far back can I scrape?

As far back as Telegram's public web preview stores. Most active channels have several years of history available. Use maxMessages and beforeId cursor to control the range.

Does it download media files?

No. The actor detects media type (photo, video, document, sticker, audio, poll) and returns the type flag, but does not download or return media URLs. This keeps the output lean and the cost low.

How is pricing calculated?

Pay-per-result (PPE) at $3.00 per 1,000 messages ($0.003/message). One charge (message-scraped event) per message pushed to the dataset. Failed fetches, retries, and pagination probes are not charged.

Integrations

Built for brand monitors, crypto-signal aggregators, and LLM-pipeline builders ingesting public Telegram channel content — the JSON/dataset output drops into the tools you already run, no glue code:

  • n8n / Make / Zapier — trigger a run or pipe every new dataset item into 500+ apps (Google Sheets, Airtable, Slack, HubSpot, your database) with no code: n8n, Make, Zapier.
  • Webhooks — fire your own endpoint the moment a run finishes, to push results straight into your pipeline (docs).
  • MCP server — expose this actor as a tool to Claude, Cursor, or any MCP client so an AI agent can pull this data mid-conversation (guide).
  • API & SDKs — fetch the dataset as JSON, CSV, or Excel through the Apify REST API or the Python / JS SDKs.

See all Apify integrations.

This actor scrapes the publicly accessible web preview of Telegram channels (t.me/s/*). This is identical to what a browser sees when visiting the URL. Only public channels (already freely accessible to anyone on the internet) are scraped.

Not affiliated with Telegram.