Telegram Channel Scraper - Posts, Views, Media, No Login
Pricing
from $1.50 / 1,000 posts
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
Maintained by CommunityActor 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.2Kviews become1200. - 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
- Open the Actor on Apify and click Try for free (or call it through the API).
- Enter channel usernames,
@namesort.melinks in Channels and set a post limit. - 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:
| Event | Price per 1,000 | 1,000 | 10,000 | 100,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 ApifyClientclient = 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 showforwardedFrom: "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.