Telegram Channel Scraper avatar

Telegram Channel Scraper

Pricing

from $0.35 / 1,000 post scrapeds

Go to Apify Store
Telegram Channel Scraper

Telegram Channel Scraper

Scrape posts, views, reactions, media and channel stats from public Telegram channels. No login, no API key, no phone number.

Pricing

from $0.35 / 1,000 post scrapeds

Rating

0.0

(0)

Developer

Solar G

Solar G

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

an hour ago

Last modified

Share

Scrapes posts and channel details from public Telegram channels using the public web preview at t.me/s/<channel>. No Telegram account, API key or phone number is needed.

Input

FieldDescription
channelsChannel usernames or links. durov, @durov and https://t.me/durov are all accepted.
maxPostsPerChannelMaximum posts per channel, newest first. Default 100.
postedAfterOptional. Stop at posts older than this date (YYYY-MM-DD).
searchQueryOptional. Keyword or #hashtag, matched using Telegram's in-channel search.
includeChannelInfoOutput one channel record per channel. Default true.
proxyConfigurationOptional. Not normally needed.
{
"channels": ["durov", "https://t.me/telegram"],
"maxPostsPerChannel": 200,
"postedAfter": "2026-01-01"
}

Output

Each dataset item has a type of post, channel or error.

Post

{
"type": "post",
"channel": "durov",
"id": 552,
"url": "https://t.me/durov/552",
"date": "2026-10-11T14:52:40+00:00",
"edited": false,
"author": "Pavel Durov",
"text": "Designers × AI ...",
"textHtml": "...",
"views": 1340000,
"reactions": [{ "emoji": "⭐", "customEmojiId": null, "paid": true, "count": 6070 }],
"photos": [],
"videos": [{ "url": null, "thumbnailUrl": "https://cdn4.telesco.pe/...", "duration": "1:15" }],
"documents": [],
"links": ["https://t.me/designers"],
"hashtags": [],
"forwardedFrom": null,
"replyTo": null,
"linkPreview": null
}

Channel

{
"type": "channel",
"channel": "durov",
"url": "https://t.me/durov",
"title": "Pavel Durov",
"description": "Founder of Telegram.",
"verified": true,
"subscribers": 10300000,
"photos": 102,
"videos": 47,
"files": null,
"links": 200,
"avatarUrl": "https://cdn4.telesco.pe/..."
}

Counts such as "1.2M" are converted to integers. The dataset includes Posts and Channels table views, and can be exported as JSON, CSV, Excel or HTML.

API usage

Run the Actor and get results in one request:

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

With the JavaScript client:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('solarg/telegram-channel-scraper').call({"channels": ["durov"], "maxPostsPerChannel": 100});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

With Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("solarg/telegram-channel-scraper").call(run_input={"channels": ["durov"], "maxPostsPerChannel": 100})
items = client.dataset(run["defaultDatasetId"]).list_items().items

You can also schedule runs in Apify Console and send results to Google Sheets, Slack, webhooks, Zapier, Make or n8n through Apify's integrations.

Pricing

  • $0.50 per 1,000 posts
  • $0.001 per channel record

Platform usage is included in the price.

Limitations

  • Only public channels with a web preview are supported. Private channels, groups and bots return an error item.
  • Post comments are not available in the web preview.
  • Some videos only expose a thumbnail. In that case url is null.
  • Custom emoji reactions are returned as customEmojiId, not as a character.

Notes

The data is publicly visible without logging in, but posts may contain personal data. You're responsible for using it in line with applicable law, such as GDPR.

Report problems in the Issues tab.