Telegram Channel Scraper — Posts, Views & Media
Pricing
from $2.00 / 1,000 message scrapeds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
3 days ago
Last modified
Categories
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}
| Field | Type | Description |
|---|---|---|
channels | array | Public channel usernames (@name, name) or links (t.me/name, t.me/s/name) — required |
maxPostsPerChannel | integer | Recent 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.3K→245300). - Very old messages require many pagination requests; keep
maxPostsPerChannelreasonable 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.