Telegram Channel Posts Scraper
Pricing
from $0.02 / 1,000 post extracteds
Telegram Channel Posts Scraper
Scrape public Telegram channel posts with text, dates, views, links, media references, and clean exports for monitoring workflows.
Pricing
from $0.02 / 1,000 post extracteds
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Extract public Telegram channel posts into a clean Apify dataset for social listening, content research, compliance monitoring, and community intelligence.
What does Telegram Channel Posts Scraper do?
Telegram Channel Posts Scraper collects posts from public Telegram channels that are visible in Telegram's public web preview.
It saves each post as a structured row with the channel name, post URL, timestamp, text, engagement counters, links, media URLs, and scrape timestamp.
Use it when you need repeatable exports instead of manual copy-paste from Telegram.
Who is it for?
- π£ Social listening teams monitoring public community updates.
- π§ Brand and PR teams tracking mentions, launches, and announcements.
- π‘οΈ Compliance teams collecting public evidence from channel posts.
- π Crypto, news, and research analysts following high-volume Telegram channels.
- π§βπ» Automation builders who need Telegram channel post data in a dataset, API, webhook, or spreadsheet.
Why use this actor?
Public Telegram channels are often used for announcements, market commentary, project updates, and community broadcasts.
This actor turns those public posts into structured data that can be filtered, exported, enriched, and combined with other sources.
What data can you extract?
| Field | Description |
|---|---|
channelUsername | Public Telegram channel username |
channelTitle | Channel title shown on the post |
postId | Numeric post ID |
postUrl | Direct Telegram post URL |
postedAt | Post timestamp when available |
text | Public post text |
views | Visible view count |
forwards | Visible forward count when shown |
replies | Visible reply count when shown |
reactions | Visible reaction counters when shown |
links | Links found in the post text |
mediaUrls | Public media URLs or post media links when visible |
scrapedAt | Time when the actor saved the row |
How much does it cost to scrape Telegram channel posts?
The actor uses pay-per-event pricing.
- A small start event is charged once per run.
- A post event is charged for every public post saved to the dataset.
Formula-derived pricing from cloud validation: start event $0.005 per run; post event BRONZE $0.000034535 per post, with standard Apify tier discounts for higher plans.
Quick start
- Open the actor on Apify.
- Add one or more public Telegram channels.
- Set the maximum number of posts.
- Optionally set a date filter.
- Run the actor.
- Export the dataset as JSON, CSV, Excel, or via API.
Input example
{"channels": ["telegram", "durov"],"maxPosts": 20}
Supported channel formats
You can enter channels in any of these formats:
telegram@telegramhttps://t.me/telegramhttps://t.me/s/telegram
The actor normalizes them to the public channel username.
Date filtering
Use sinceDate to keep newer posts only.
Example:
{"channels": ["telegram"],"maxPosts": 100,"sinceDate": "2026-01-01"}
The actor stops saving older visible posts when Telegram provides timestamps for them.
Output example
{"channelUsername": "telegram","channelTitle": "Telegram News","postId": "429","postUrl": "https://t.me/telegram/429","postedAt": "2026-06-20T12:00:00+00:00","text": "Example public Telegram post text","views": 125000,"forwards": null,"replies": null,"reactions": {"π": 123},"links": ["https://telegram.org"],"mediaUrls": ["https://t.me/telegram/429"],"scrapedAt": "2026-06-27T12:00:00.000Z"}
Tips for best results
- Use public channel usernames, not private invite links.
- Keep the first run small to confirm the channel is public.
- Increase
maxPostsfor ongoing monitoring jobs. - Use
sinceDatefor incremental exports. - Export by API when feeding dashboards or databases.
Limits
The actor only extracts public content visible without a Telegram account.
It does not scrape private groups, private channels, member lists, direct messages, or login-only content.
If a channel has no public preview, the actor skips it gracefully.
Proxy settings
Public Telegram preview pages usually work without a proxy.
Leave proxy disabled unless your network or region blocks Telegram.
If needed, enable Apify Proxy in advanced settings.
Integrations
You can connect the dataset to:
- π Google Sheets or BI dashboards.
- π§ LLM classification and summarization pipelines.
- π Webhooks for new public announcements.
- π§Ύ Compliance archives and evidence stores.
- ποΈ Databases such as BigQuery, Snowflake, Postgres, or Airtable.
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/telegram-channel-posts-scraper').call({channels: ['telegram'],maxPosts: 20,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
API usage with Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('fetch_cat/telegram-channel-posts-scraper').call(run_input={'channels': ['telegram'],'maxPosts': 20,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
API usage with cURL
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~telegram-channel-posts-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"channels":["telegram"],"maxPosts":20}'
MCP integration
Use this actor with Apify MCP from Claude Code or Claude Desktop.
MCP URL:
https://mcp.apify.com/?tools=fetch_cat/telegram-channel-posts-scraper
Claude Code setup:
$claude mcp add apify-telegram-posts "https://mcp.apify.com/?tools=fetch_cat/telegram-channel-posts-scraper"
Claude Desktop JSON config example:
{"mcpServers": {"apify-telegram-posts": {"url": "https://mcp.apify.com/?tools=fetch_cat/telegram-channel-posts-scraper"}}}
Example prompts:
- "Scrape the latest public posts from the Telegram channel
telegramand summarize product announcements." - "Monitor these public Telegram channels and extract posts with links."
- "Export the latest 50 posts from this Telegram channel as a CSV-ready dataset."
Monitoring workflow
For recurring monitoring:
- Create an Apify task with your channel list.
- Set
sinceDateor keepmaxPostsmodest. - Schedule the task hourly, daily, or weekly.
- Send results to a webhook, database, or dashboard.
Troubleshooting
Why did a channel return no posts?
The channel may be private, deleted, geo-blocked, or may not expose a public preview.
Try opening the channel URL in a logged-out browser. If it is not visible there, this actor cannot collect it.
Why are some counters missing?
Telegram only shows some counters for some posts and channel settings. Missing counters are returned as null.
Why are some posts missing direct media URLs?
Telegram may show a media preview without exposing a reusable direct file URL in every case. The actor returns direct public preview media URLs when they are visible.
Legality and responsible use
This actor extracts publicly available Telegram channel preview data.
You are responsible for making sure your use complies with applicable laws, Telegram terms, and your organization's policies.
Do not use scraped data for spam, harassment, doxxing, or privacy-invasive profiling.
Related scrapers
Explore other Apify actors from fetch_cat for social, content, and monitoring workflows:
- https://apify.com/fetch_cat/x-profile-tweets-scraper
- https://apify.com/fetch_cat/youtube-channel-videos-scraper
- https://apify.com/fetch_cat/bluesky-profile-feed-scraper
- https://apify.com/fetch_cat/reddit-scraper
FAQ
Can it scrape private Telegram channels?
No. It only works with public channels visible without an account.
Can it scrape Telegram groups?
No. Version 0.1 is focused on public channels and public channel posts.
Can I scrape multiple channels in one run?
Yes. Add multiple usernames or URLs to the channels array.
Can I get older history?
The actor follows public preview pagination while respecting your maxPosts limit. Availability depends on what Telegram exposes publicly.
Does it require cookies?
No. The actor is designed for public pages and does not require account cookies.
Can I export to CSV?
Yes. Apify datasets can be exported as CSV, JSON, Excel, XML, and RSS-compatible formats.
Changelog
0.1
Initial version for public Telegram channel post exports.
Support
If a public channel that is visible in a logged-out browser does not work, open an issue with:
- The channel URL.
- Your input JSON.
- The Apify run URL.
- A short description of what you expected.