Telegram Channel Scraper - Posts, Views, Media, No Login avatar

Telegram Channel Scraper - Posts, Views, Media, No Login

Pricing

from $1.50 / 1,000 posts

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

Telegram Channel Scraper - Posts, Views, Media, No Login

Telegram channel scraper for public channels: export posts, view counts, reactions, media links, forwards and replies as JSON/CSV. No Telegram login, API key or phone number needed. For media monitoring, crypto research, OSINT and competitor tracking.

Pricing

from $1.50 / 1,000 posts

Rating

0.0

(0)

Developer

Ha Phan Thanh Hai

Ha Phan Thanh Hai

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Telegram Channel Scraper

Scrape public Telegram channel posts (text, views, reactions, media, links) without a Telegram account, API key or phone number. No login, no API key.

What does Telegram Channel Scraper do?

  • Extract posts from any public channel with web preview enabled (t.me/s/<channel>).
  • Get text, ISO date, direct link, view count, edited flag, forwarded-from and reply-to id.
  • Get media type (photo, video, voice, document, poll...) and media URLs, plus links found in the post.
  • Get reactions with counts, including custom emoji ids.
  • Optionally add one free channel-info record: title, description, subscribers.
  • Filter by date range and keywords.

Why use it

  • No login: no Telegram account, bot token, API id or phone number.
  • Many channels per run with date and keyword filters.
  • Clean numbers: 1.2K views become 1200.
  • Low price: $1.50 per 1,000 posts; channel info records are free.
  • Plain HTTP: no browser, no proxy to configure.

Use cases

  • Media and brand monitoring across news channels.
  • Crypto and market-news research (signals, announcements) with keyword filters.
  • Competitor channel analytics: views and reactions per post.
  • OSINT and content archiving of public channels.
  • Feeding Telegram posts into LLM pipelines or dashboards.

How to use

  1. Open the Actor on Apify and click Try for free (or call it through the API).
  2. Enter channel usernames, @names or t.me links in Channels and set a post limit.
  3. Click Start, then download the dataset as JSON, CSV, Excel or HTML, or read it through the API.

Input example

{
"channels": ["durov", "https://t.me/telegram"],
"maxPostsPerChannel": 40,
"fromDate": "2026-09-01",
"toDate": "2026-10-21",
"includeChannelInfo": true,
"keywords": ["update"]
}

Channels accept a username, @username, t.me/... or t.me/s/... URL. Posts come newest first (~20 per page, paginated with ?before=).

Output example

{
"type": "post", "channel": "durov", "postId": 552, "url": "https://t.me/durov/552",
"date": "2026-10-11T14:52:40+00:00", "text": "...", "views": 1250000,
"forwardedFrom": null, "replyTo": null, "hasMedia": true, "mediaType": "video",
"mediaUrls": ["https://cdn4.telesco.pe/file/..."], "links": ["https://t.me/designers"],
"reactions": [{"emoji": "star", "count": 5980}, {"emoji": "custom:5936157098181135162", "count": 13600}],
"edited": false
}

Channel info records have "type": "channel" and are not charged.

Pricing

Pay per event, no subscription. You pay only for what is returned:

EventPrice per 1,0001,00010,000100,000
post$1.50$1.50$15.00$150.00

Example: 1,000 posts cost $1.50; 10,000 cost $15.00.

Platform usage (compute) is included in the event price; there is nothing else to pay for.

Integrations & API

Run it from code with the Apify API. Replace <APIFY_TOKEN> with your API token.

Python (pip install apify-client)

from apify_client import ApifyClient
client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("bachiembmt/telegram-channel-posts-scraper").call(run_input={"channels": ["durov", "telegram"], "maxPostsPerChannel": 40, "keywords": ["update"]})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

cURL (run synchronously and get dataset items)

curl -X POST "https://api.apify.com/v2/acts/bachiembmt~telegram-channel-posts-scraper/run-sync-get-dataset-items?token=<APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"channels": ["durov", "telegram"], "maxPostsPerChannel": 40, "keywords": ["update"]}'

Works with:

  • Make and Zapier: use the Apify app/module to run this Actor and pass the dataset on.
  • n8n: use the Apify node or an HTTP Request node with the API call above.
  • Google Sheets: export the dataset as CSV, or use the Apify integration to append rows automatically.
  • Webhooks: trigger your own endpoint when a run finishes; combine with Apify schedules for recurring jobs.
  • AI agents: expose the Actor as a tool through the Apify MCP server.

FAQ

Can it scrape private channels or groups? No. Only public channels with web preview enabled; others return nothing and a warning is logged.

Does it return member lists or phone numbers? No. Only what is visible on the public channel preview.

Do I need an account or API key for the source? No. The Actor needs no login or source API key. You only need an Apify account to run it.

Is it legal to scrape this data? Only public channel content is read. Respect Telegram's Terms of Service, copyright and privacy law (GDPR) when storing or republishing posts. This is general information, not legal advice.

Limitations

  • Only public channels with web preview enabled. Private channels, groups, and channels that disabled preview return nothing (a warning is logged).
  • Public data only: no member lists, phone numbers, or comments threads.
  • Normal reactions are returned as the emoji text; custom emoji appear as custom:<id>. Hidden-name forwards show forwardedFrom: "hidden".
  • Reaction/view counts are a snapshot at scrape time. Media URLs are Telegram CDN links and may expire.
  • Polite rate: at most 1 request per second per run.