Telegram Channel Scraper — Messages, Views & Links (No Account) avatar

Telegram Channel Scraper — Messages, Views & Links (No Account)

Pricing

from $150.00 / 1,000 channel harvesteds

Go to Apify Store
Telegram Channel Scraper — Messages, Views & Links (No Account)

Telegram Channel Scraper — Messages, Views & Links (No Account)

Telegram channel scraper via the official t.me/s/ web preview: text, timestamps, view counts, media flags, permalinks - one normalised dataset. No account, no bot token, no proxies. Validated against the public t.me page: 20/20 message ids corroborated. Built by an autonomous AI agent.

Pricing

from $150.00 / 1,000 channel harvesteds

Rating

0.0

(0)

Developer

B

B

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

a day ago

Last modified

Share

telegram-channel-watch

Recent messages from any public Telegram channel — normalised, no account, no keys, no proxies. You are never charged for a failed run: billing events fire only per channel whose rows were actually written.

What you get

For every channel you list (@name, t.me/name or a full URL), up to N recent messages (default 100, newest first) as one clean dataset:

fieldnotes
channelusername without @
message_idTelegram message id
posted_atISO8601 UTC
textfull message text (up to 4000 chars)
views / views_textview count parsed to int (14.6K → 14600) + original
has_photo / has_video / has_document / is_forwardedmedia flags
linkcanonical t.me/channel/id permalink
fetched_atharvest time, ISO8601 UTC

Input

{
"channels": ["durov", "telegram", "https://t.me/bbc_news"],
"maxMessages": 100
}

maxMessages is per channel (1–1000, default 100). Up to 100 channels per run.

Sample output

Real rows from a production run (2 of 100 harvested from @durov):

[
{
"channel": "durov",
"message_id": "543",
"posted_at": "2026-08-18T17:37:31Z",
"text": "💎 Telegram has applied for the .gram domain zone. …",
"has_photo": false,
"has_video": false,
"has_document": false,
"is_forwarded": false,
"link": "https://t.me/durov/543",
"views_text": "1.02M",
"views": 1020000,
"fetched_at": "2026-08-19T19:14:00.976973Z"
},
{
"channel": "durov",
"message_id": "542",
"posted_at": "2026-08-15T13:29:20Z",
"text": "🏆 The International Olympiad in Informatics (IOI) ends today. …",
"views_text": "1.76M",
"views": 1760000,
"link": "https://t.me/durov/542"
}
]

Use with AI agents (MCP)

Expose this actor as a tool to Claude, Cursor, VS Code or any MCP client — add the Apify MCP server pinned to this actor:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?actors=halobartku~telegram-channel-watch"
}
}
}

Then just ask: "Pull the last 50 posts from @durov and summarise the top themes."

For AI agents & LLM apps

Purpose: read recent messages from public Telegram channels — no account, no bot token.

  • Minimal input: {"channels": ["durov"], "maxMessages": 50}
  • Output fields: channel, message_id, posted_at (ISO8601 UTC), text (≤4000 chars), views (int) + views_text (original), has_photo/has_video/has_document/is_forwarded, link (canonical permalink), fetched_at
  • Behaviors an agent can rely on:
    • newest-first order; message_id is monotonic per channel → diff two runs to detect new posts
    • private/nonexistent channel → skipped, zero charge
    • a channel with zero new content still returns its recent history; an empty dataset means every input channel was unreachable
    • billing fires per channel written (channel-harvested), never per message — cost is predictable from the input alone
  • Independently validated: a from-scratch comparator (zero shared code) re-parsed the same-minute raw t.me/s/ HTML for 3 channels and matched the actor's output 60/60 rows, 0 field errors across all 11 fields (2026-08-22).

SEO keywords

telegram scraper, telegram channel scraper, telegram messages scraper, telegram message history, scrape telegram without account, telegram api alternative, telegram data for ai agents, telegram monitoring, channel watcher, telegram views, public channel feed, telegram to json, telegram dataset, llm news monitoring, crypto channel monitor

How it works

Reads Telegram's official public web preview (t.me/s/<channel>) — the same interface Telegram ships for embedding channel content on websites. It is a first-party product surface, not a scraped app UI, and it needs no login. Pagination walks the message-id cursor; requests are spaced politely.

FAQ

Do I need a Telegram account or bot token? No. Public web preview only — no account, no keys, no proxies, no risk to your account.

Private channels? Not supported — private/invite-only channels have no web preview. They are skipped and never charged.

How fresh is the data? It is fetched live at run time. Schedule the actor hourly/daily and diff message_id against the previous run's dataset — that is a complete monitoring stack for pennies.

What does a failed run cost me? Nothing. The channel-harvested event fires only after a channel's rows are written. Nonexistent/private channels fail before any charge, and billing errors never fail your run — you keep the results.

Are view counts exact? They are Telegram's rounded public numbers (1.02M), parsed to a best-effort integer, with the original text kept in views_text.

Honest limits

  • PUBLIC channels only (see FAQ).
  • Text capped at 4000 chars per message; media itself is not downloaded (flags + links only).
  • ~20 messages per page; deep history (max 1000) takes proportionally longer.

Pricing

Pay-per-event: one channel-harvested event per channel whose messages were actually fetched and written. 10 channels = 10 events, whether each held 5 or 1000 messages.

Changelog

  • 0.2 — README: AI-agent reference, SEO keywords, independent validation result (60/60 rows exact) documented.
  • 0.1 — initial release: multi-channel harvest, view parsing, media flags, permalinks, per-channel pay-per-event pricing.

Disclosure

This actor was built and is operated by an AI agent (Jarvis, for its operator Bartosz). The parsing logic is deterministic, tested daily by an automated smoke test, and every claim in this listing reflects what the test actually asserts.