Telegram Channel Scraper — Posts, Views & Media avatar

Telegram Channel Scraper — Posts, Views & Media

Pricing

from $2.00 / 1,000 message scrapeds

Go to Apify Store
Telegram Channel Scraper — Posts, Views & Media

Telegram Channel Scraper — Posts, Views & Media

Scrape public Telegram channels without login or API key: message text, dates, view counts, forwards, photos, videos and links. Just pass channel usernames. Ideal for monitoring, research, OSINT and trend analysis.

Pricing

from $2.00 / 1,000 message scrapeds

Rating

0.0

(0)

Developer

Oaida Adrian

Oaida Adrian

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

3 days ago

Last modified

Share

Scrape public Telegram channels without login, API keys, phone numbers or proxies. Pass one or more channel usernames and get structured JSON with every post: text, timestamps, view counts, forwards, photos, videos and links.

Built for OSINT researchers, growth teams and analysts who need clean, structured channel history — no api_id/api_hash, no bot token, no phone number to burn.

Why this Actor

  • No Telegram account needed — reads the public web preview (t.me/s/<channel>), so there is nothing to authenticate or configure.
  • No API key, no api_id/api_hash, no bot token, no proxy budget.
  • Rich per-post data — text, exact timestamp, view count, forward source, reply target, photos, video, and external links, all on one JSON row.
  • Channel metadata included — title and subscriber count attached to every message, so a single dataset is self-describing.
  • Cheap and fast — pay only per message scraped, plus a one-time start fee.

How it works

Give it a list of public channel usernames (@durov, durov) or links (t.me/telegram, t.me/s/telegram). For each channel the Actor pages through the public web preview newest-first and outputs one dataset item per message, up to maxPostsPerChannel. Private channels and groups have no web preview and cannot be scraped.

Input

{
"channels": ["@durov", "https://t.me/telegram"],
"maxPostsPerChannel": 100
}
FieldTypeDescription
channelsarrayPublic channel usernames (@name, name) or links (t.me/name, t.me/s/name) — required
maxPostsPerChannelintegerRecent posts to fetch per channel, newest first (default 50)

Output (one item per message)

{
"channelUsername": "durov",
"channelTitle": "Pavel Durov",
"channelSubscribers": 11700000,
"messageId": 530,
"postUrl": "https://t.me/durov/530",
"date": "2026-07-09T12:31:00+00:00",
"text": "…",
"links": ["https://example.com"],
"views": 245300,
"isForwarded": false,
"forwardedFrom": null,
"replyToMessageId": null,
"photoUrls": [],
"hasVideo": false,
"videoUrl": null,
"linkPreviewUrl": null,
"linkPreviewTitle": null
}

Use cases

  • 📰 Monitoring & alerting — track announcements, news channels or competitor channels and pipe new posts into Slack/webhooks.
  • 🕵️ OSINT & research — archive public channel history with view counts and forward chains for investigations.
  • 📊 Trend analysis — measure post frequency, reach (views) and topic mix over time.
  • 🔗 Lead generation — extract external links and domains shared by niche communities.
  • 🤖 AI / datasets — build labeled text corpora of real-world messaging for classification and summarization.

Run it from the API

Trigger the Actor and get results in one call:

curl -X POST "https://api.apify.com/v2/acts/darknezz~telegram-channel-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"channels":["@durov","telegram"],"maxPostsPerChannel":50}'

Scheduling: attach an Apify Schedule (e.g. every 15 minutes) to keep a dataset continuously topped up with new posts from the channels you monitor.

Limitations

  • Only public channels with the web preview enabled can be scraped. Private channels and groups are not accessible.
  • View counts are approximate (Telegram rounds them, e.g. 245.3K245300).
  • Very old messages require many pagination requests; keep maxPostsPerChannel reasonable for faster, cheaper runs.

Pricing

Pay per event: a small fee for each message scraped, plus Apify's standard platform events (actor start + dataset item). No subscription — you pay only for what you run.

FAQ

Do I need a Telegram account, bot token or api_id? No — the Actor reads the public web preview, so there is nothing to authenticate.

Can it scrape private channels or groups? No. Only public channels that expose a t.me/s/<name> web preview can be scraped.

How far back can I go? As far as the channel's public history allows — raise maxPostsPerChannel. Deep history costs more pagination requests, so runs take longer.

Why are view counts rounded? Telegram itself only exposes rounded counts (e.g. 245.3K) on the public preview; the Actor parses them back to integers.

Do I need a proxy? No. The public preview is reachable directly over HTTPS — no proxy or residential IP budget required.

Is scraping this legal? The web preview is public and unauthenticated. You are responsible for complying with Telegram's terms and any privacy laws (e.g. GDPR) that apply to how you store and use the data.