Telegram Channel Scraper - Posts, Views, Media
Pricing
from $2.00 / 1,000 posts
Telegram Channel Scraper - Posts, Views, Media
Extract posts from any public Telegram channel — text, dates, view counts, emoji reactions, photos, videos, and full channel profiles with subscriber counts. Filter by keyword or date range, no Telegram account or API keys needed.
Pricing
from $2.00 / 1,000 posts
Rating
0.0
(0)
Developer
VeroAPIs
Maintained by CommunityActor stats
0
Bookmarked
7
Total users
3
Monthly active users
a day ago
Last modified
Categories
Share
Telegram Channel Scraper — posts, views, reactions, and media from any public channel
Get the latest posts from any public Telegram channel as clean, structured data — text, dates, view counts, emoji reactions, photos, videos, and full channel profiles, ready to export. Run it on a list of channels, or call the built-in real-time API to pull a channel's posts on demand from your own app, bot, or AI agent.
What you can do
- Track announcements, news, and trends across the channels you care about
- Collect post history with view counts and emoji reactions for engagement analysis
- Search inside channels — only collect posts mentioning your keyword, product, or hashtag
- Scope the scrape to any date range — even years back in a channel's history, in seconds
- Capture photos, videos, and shared links alongside every post
- Get each channel's profile with every post: name, picture, verification badge, bio, and subscriber count
- Scrape several channels in a single run
How to use it
- Add one or more channels — usernames like
durovor links likehttps://t.me/telegram. - Choose how many of the latest posts you want per channel.
- Optionally add a search query to only get posts that mention it.
- Optionally set a date range with Posted after and Posted before.
- Click Start and download your results as JSON, CSV, or Excel.
What you get
One row per post — this is a real post from @durov:
{"channel": "durov","id": 527,"url": "https://t.me/durov/527","date": "2026-06-15T15:53:15+00:00","text": "🏆 Telegram is launching a $200,000 contest for content creators.\n\n🎬 Create a video about digital freedom using ideas and footage from this speech — plus any content or ideas of your own.\n\n📈 Pass 10,000+ organic views for a chance to win a share of the prize fund.\n\n📣 Full details in the @contest channel.","views": 22100000,"reactions": [{ "emoji": "⭐", "count": 24900 },{ "emoji": "https://cdn4.telesco.pe/file/ujjkJEZUPmyk…", "count": 318000 },{ "emoji": "https://cdn4.telesco.pe/file/gBnvufTNEISX…", "count": 88200 }],"forwardedFrom": null,"forwardedFromUrl": null,"photos": [],"videos": [],"linkPreview": null,"author": {"name": "Pavel Durov","username": "durov","photo": "https://cdn4.telesco.pe/file/OU2Buu-a4Nik….jpg","verified": true,"description": "Founder of Telegram.","subscribers": 11700000,"photos": 99,"videos": 45,"files": null,"links": 194}}
Reactions cover everything users can send: standard emoji like 🔥, ⭐ for paid star reactions, and image links for custom premium emoji.
Real-time API
Need posts on demand? Turn on Standby mode and call the scraper like a live API — one channel per request, its posts straight back in the HTTP response. Ideal for bots, dashboards, and AI agents that need a channel's latest posts the moment someone asks, instead of waiting on a run.
Every request needs your Apify token, passed as a Bearer token (or a ?token= query param).
curl "https://vero-api--telegram-channel-scraper.apify.actor/?channel=durov&maxPosts=5" \-H "Authorization: Bearer <APIFY_TOKEN>"
Query parameters
| Parameter | Required | Default | Description |
|---|---|---|---|
channel | yes | — | A channel username (durov) or link (https://t.me/durov). |
maxPosts | no | 20 | How many of the latest posts to return, up to 100. Start a normal run for more. |
q | no | — | Only return posts containing this text. Also accepted as searchQuery. |
postedAfter | no | — | Only return posts published on or after this date, e.g. 2026-01-01. |
postedBefore | no | — | Only return posts published up to this date. |
The response names the channel once, then lists its posts, newest first:
{"channel": {"name": "Pavel Durov","username": "durov","photo": "https://cdn4.telesco.pe/file/OU2Buu-a4Nik….jpg","verified": true,"description": "Founder of Telegram.","subscribers": 11700000,"photos": 99,"videos": 45,"files": null,"links": 194},"postsCount": 1,"posts": [{"id": 527,"url": "https://t.me/durov/527","date": "2026-06-15T15:53:15+00:00","text": "🏆 Telegram is launching a $200,000 contest for content creators.","views": 22100000,"reactions": [{ "emoji": "⭐", "count": 24900 }],"forwardedFrom": null,"forwardedFromUrl": null,"photos": [],"videos": [],"linkPreview": null}]}
When nothing matches your filters you get postsCount: 0 and a short message saying so.
Anything else comes back as a 4xx/5xx with an { "error", "errorMessage" } body — 404
ChannelNotFound for a channel that's private or doesn't exist, 400 for a bad parameter,
402 once the run's paid limit is spent.
Pricing
You pay only for the posts you get — no subscriptions, no surprises.
FAQ
Do I need a Telegram account or API keys? No. Just paste the channel name and start.
Which channels work? Any public channel. Works best with channels that have their post history visible on the web.
Can I get old posts? Yes — set a date range and the scraper jumps straight to it, even if it's years back in a channel's history.
Can I call it like an API? Yes — turn on Standby mode and request one channel at a time over HTTP. See Real-time API.
How fresh is the data? Every run fetches the channel live, so you always get the latest posts first.