Telegram Channel Scraper - Posts, Views, Media avatar

Telegram Channel Scraper - Posts, Views, Media

Pricing

from $2.00 / 1,000 posts

Go to Apify Store
Telegram Channel Scraper - Posts, Views, Media

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

VeroAPIs

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

3

Monthly active users

a day ago

Last modified

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

  1. Add one or more channels — usernames like durov or links like https://t.me/telegram.
  2. Choose how many of the latest posts you want per channel.
  3. Optionally add a search query to only get posts that mention it.
  4. Optionally set a date range with Posted after and Posted before.
  5. 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

ParameterRequiredDefaultDescription
channelyesA channel username (durov) or link (https://t.me/durov).
maxPostsno20How many of the latest posts to return, up to 100. Start a normal run for more.
qnoOnly return posts containing this text. Also accepted as searchQuery.
postedAfternoOnly return posts published on or after this date, e.g. 2026-01-01.
postedBeforenoOnly 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.