Telegram Channel Scraper avatar
Telegram Channel Scraper

Pricing

Pay per usage

Go to Apify Store
Telegram Channel Scraper

Telegram Channel Scraper

Pricing

Pay per usage

Rating

5.0

(1)

Developer

D

D

Maintained by Community

Actor stats

1

Bookmarked

4

Total users

3

Monthly active users

7 days ago

Last modified

Categories

Share

Scraper for Telegram channels via public interface t.me/s/ with residential proxy rotation.

Features

Channel Metadata

  • Channel name
  • Username (@channel)
  • Channel description
  • Avatar/photo URL
  • Subscriber count
  • Numeric channel ID
  • Statistics: photos, videos, files, links

Post Data

  • Post ID
  • Author
  • Message text
  • Publication date and time
  • View count
  • Forwards from other channels
  • Replies to posts
  • Media: photos, videos (URLs)
  • Links in text

Input Parameters

{
"channels": [
"telegram",
"https://t.me/s/ShrikeNews",
"shtuchka_intelekt"
],
"max_posts": 100,
"proxy_configuration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
},
"rotate_proxy_per_request": true
}

Parameters:

  • channels (required): Array of Telegram channels to scrape. Accepts:
    • Username (e.g., "telegram")
    • Full URL (e.g., "https://t.me/ShrikeNews")
    • Public URL (e.g., "https://t.me/s/channel")
  • max_posts (default: 100): Maximum number of posts to scrape per channel
  • proxy_configuration (default: RESIDENTIAL): Apify Proxy settings
    • By default uses residential proxy
  • rotate_proxy_per_request (default: true): Rotate proxy for each request

Output Data

The actor returns an array of channel objects, one for each channel scraped. Each object contains:

  • Channel metadata
  • Array of posts (last_posts)

Example output (array with 2 channels):

[
{
"url": "https://t.me/s/ShrikeNews",
"channel_username": "ShrikeNews",
"channel_id": 1505028797,
"channel_title": "Shrike News",
"channel_description": "News that I find interesting...",
"subscribers": 94500,
"photos_count": 12100,
"videos_count": 4090,
"last_posts": [
{
"channel": "ShrikeNews",
"post_id": "26982",
"author": "Shrike News",
"text": "Don't get confused...",
"datetime": "2025-12-03T19:25:46+00:00",
"views": 39900,
"photos": ["https://cdn4.telesco.pe/file/..."],
"links": ["https://t.me/ShrikeNews/26981"]
}
]
},
{
"url": "https://t.me/s/telegram",
"channel_username": "telegram",
"channel_id": 1234567890,
"channel_title": "Telegram",
"subscribers": 500000,
"last_posts": [...]
}
]

Memory Settings

Recommended: 128 MB

The actor is optimized for minimal memory usage. When running via CLI or API use:

$apify run --memory-mbytes=128

Usage

Via Apify Console

  1. Open the actor in Apify Console
  2. Enter channel list in channels field (e.g., ["telegram", "ShrikeNews"])
  3. Configure other parameters as needed (residential proxy enabled by default)
  4. Click Start

Via CLI

# Run locally
apify run --memory-mbytes=128
# Run on Apify platform
apify push
apify call <ACTOR_ID> --memory-mbytes=128

Via API

from apify_client import ApifyClient
client = ApifyClient('YOUR_API_TOKEN')
run_input = {
"channels": ["ShrikeNews", "telegram", "https://t.me/s/shtuchka_intelekt"],
"max_posts": 50
}
run = client.actor('<ACTOR_ID>').call(
run_input=run_input,
memory_mbytes=128
)
# Get results
dataset = client.dataset(run["defaultDatasetId"])
items = dataset.list_items().items

Key Features

  • Residential proxies by default - bypasses blocking
  • Proxy rotation - new IP for each request
  • Realistic headers - mimics real browser
  • Complete data extraction - all available content
  • Low memory footprint - runs on 128 MB
  • Numeric channel ID extraction - extracts real Telegram channel ID

Limitations

  • Scrapes only public channels
  • Post limit determined by max_posts parameter
  • Requires Apify Residential Proxy for stable operation