BORG Telegram channel scraper
Pricing
from $1.20 / 1,000 results
BORG Telegram channel scraper
Scrape public Telegram channel posts and profile metadata without login. Export messages, timestamps, views, media, links, and channel counters for research, monitoring, archives, and lead intelligence.
Pricing
from $1.20 / 1,000 results
Rating
0.0
(0)
Developer
Daniel Yates
Maintained by CommunityActor stats
1
Bookmarked
135
Total users
20
Monthly active users
3 days ago
Last modified
Categories
Share
What is BORG Telegram channel scraper?
BORG Telegram channel scraper extracts public Telegram channel posts and public profile metadata without a Telegram account, API key, cookies, or private-channel access. Give it a public Telegram URL or handle, choose how many posts you want, and export a structured dataset with message text, timestamps, views, media references, outbound links, and channel counters.
Use it when you need to scrape Telegram data for market research, content monitoring, community intelligence, lead research, competitive analysis, archiving, or enrichment workflows. The easiest way to try it is to run one of the public example tasks or paste a channel like https://t.me/telegramtips into the input form and start with 25-100 results.
Main features:
- ✅ Scrape public Telegram channel posts without login
- ✅ Export message text, dates, views, links, media references, replies, and forwards when publicly visible
- ✅ Extract public channel profile fields such as name, description, counters, and availability
- ✅ Run from the Apify Console, API, schedules, webhooks, or integrations
- ✅ Save results to Apify datasets for download as JSON, CSV, Excel, HTML, or RSS
- ✅ Use small schema-probe runs before larger paid exports
Because this Actor runs on Apify, you also get run logs, monitoring, saved tasks, scheduling, API access, dataset storage, and integrations with tools such as Make, Zapier, Google Sheets, Python, or your own backend.
How to scrape Telegram channel data
- Open the Actor or one of the published example tasks.
- Enter a public Telegram channel, group, or profile URL. Examples:
telegramtips,@telegramtips, orhttps://t.me/telegramtips. - Set
messageLimit. Start with a small run such as 25 or 50 rows, then increase it after checking the output. - Keep
includeMediaenabled if you want media references and thumbnails when Telegram exposes them publicly. - Use
dateRangeonly when you need to filter visible posts by date. - Click Start and wait for the run to finish.
- Open the dataset to preview, download, or export the results.
Published examples:
- Export Telegram channel posts
- Monitor recent Telegram channel posts
- Get a Telegram channel profile
- Probe a Telegram message schema
What Telegram data can you extract?
The Actor returns normalized message and channel records. Depending on what Telegram exposes publicly for the channel, message rows can include:
| Field | Description |
|---|---|
channelUsername | Telegram channel or profile handle |
messageId | Message identifier from the public Telegram URL |
url | Public Telegram message URL |
date | Message timestamp when visible |
text | Message text |
author | Public display name when available |
views | Public view count shown by Telegram |
forwards | Forwarded-from information when visible |
replyTo | Reply reference when visible |
media | Public media references such as photo, video, document, voice, sticker, or poll metadata |
links | Outbound links found in the post text or preview |
linkPreview | Public link preview metadata when available |
Channel rows can include the public channel name, description, subscriber or member counter, public preview URL, and a completeness/availability status.
Input example
{"telegramChannelOrProfile": "https://t.me/telegramtips","messageLimit": 50,"mode": "historical_archive","includeMedia": true,"includeReplies": true,"dateRange": {"start": "2024-01-01","end": "2099-12-31"}}
Important input fields
| Input | Use it for |
|---|---|
telegramChannelOrProfile | The main target. Accepts a public handle or URL. |
messageLimit | Maximum number of message rows to return. Higher limits cost more because pricing is per result row. |
mode | Choose the workflow shape. Most users can leave this as historical_archive. |
includeMedia | Include media references when publicly visible. |
includeReplies | Include reply references when publicly visible. |
dateRange | Filter returned posts by visible timestamp. This does not unlock private or hidden history. |
channels, maxMessages, dateFrom, dateTo | Legacy aliases kept for older integrations. |
Output example
{"type": "message","channelUsername": "telegramtips","messageId": "1234","url": "https://t.me/telegramtips/1234","date": "2026-01-15T12:30:00+00:00","text": "Example public Telegram post text","author": "Telegram Tips","views": "25.1K","media": [],"mediaCount": 0,"links": ["https://example.com"],"linkCount": 1,"mode": "historical_archive","taskName": "Telegram Historical Channel Archive","transport": "public_preview_html","scrapedAt": "2026-08-17T01:00:00.000Z"}
The dataset includes views for Messages, Media & Links, and Channels. A compact run summary is written to the default key-value store under OUTPUT, including targets, counts, status, and scrape timestamp.
How much does it cost to scrape Telegram data?
This Actor is priced per result row. At the current base price, each dataset result costs $0.006 before Apify plan discounts and any available account credits. Paid Apify plans may receive lower per-result pricing; check the Pricing tab before running a large job.
Typical examples at the base price:
| Requested result rows | Approximate Actor charge |
|---|---|
| 50 rows | $0.30 |
| 100 rows | $0.60 |
| 1,000 rows | $6.00 |
| 10,000 rows | $60.00 |
There is also a very small Actor-start charge. For normal runs, the result-row charge is the meaningful cost driver. To control spend, start with messageLimit: 25 or messageLimit: 50, inspect the dataset, then increase the limit.
If your Apify account includes platform credits, those credits may cover Actor charges. For example, $5 in credits covers roughly 833 result rows at $0.006/result before the tiny Actor-start charge.
Competitor-compatible input aliases
This Actor accepts the common Telegram scraper fields exposed by other Apify actors, so existing task templates can often be moved over without redesigning the input. Supported aliases include channels, maxMessagesPerChannel, oldestMessageDate, newestMessageDate, includeChannelInfo, includeReactions, extractEmails, and extractLinks. Outputs include both Borg-native fields and compatibility aliases such as extractedEmails, extracted_emails, extractedLinks, extracted_links, and mediaUrls.
Telegram scraping modes
| Mode | Best for |
|---|---|
historical_archive | Exporting visible public channel history as normalized message rows. |
research_dataset_export | Creating a bounded Telegram dataset for analysis, indexing, or enrichment. |
media_link_inventory | Finding posts that contain media or outbound links. |
recent_monitor | Checking the newest public posts for monitoring workflows. |
channel_summary | Returning public profile metadata and channel counters. |
message_probe | Running a tiny sample before a larger export or integration. |
legacy_channel_scraper | Supporting older tasks that use channels and maxMessages. |
Use the Telegram scraper with API, Python, schedules, and integrations
After a successful run, Apify stores the results in a dataset that can be downloaded or consumed programmatically. You can:
- run the Actor from the Apify API or API client libraries
- schedule recurring Telegram monitoring jobs
- attach webhooks to trigger downstream processing when a run finishes
- export datasets to CSV, JSON, Excel, HTML, or RSS
- connect results to Make, Zapier, Google Sheets, BI tools, or your own backend
For recurring monitoring, save a task with recent_monitor, a small messageLimit, and the target channel you want to check.
Public-only limitations
This Actor reads only Telegram content that is publicly visible without logging in. It cannot access:
- private channels or members-only groups
- direct messages
- deleted posts
- hidden member lists
- content that requires a Telegram account
- more history than Telegram exposes on the public preview surface
If a channel exposes fewer rows than requested, the Actor returns the rows it can see. If a target is private, unavailable, blocked, or malformed, check the run summary and logs for the reason.
FAQ and troubleshooting
Can this scrape private Telegram channels?
No. The Actor is public-only. It does not use Telegram accounts, sessions, cookies, or credentials.
Why did I get fewer results than messageLimit?
Telegram may expose only part of a channel's history on the public preview surface. Filters such as dateRange, media-only mode, or a very new/empty channel can also reduce the number of rows.
Why did my run return no messages?
Common causes are a private channel, unavailable profile, typo in the handle, a date range that filters out every visible post, or a public preview page with no visible message widgets. Try a known public channel first and run a small schema probe.
Can I monitor a Telegram channel over time?
Yes. Create a saved task using recent_monitor, set a small messageLimit, and schedule it in Apify. Use webhooks if you want another service to process the dataset when each run finishes.
Is this a Telegram API replacement?
No. It is a public Telegram web-data scraper. It is useful when you want public channel data without setting up Telegram API credentials, but it cannot do account-only Telegram API operations.
How should I report a problem?
Include the Apify run ID, the target channel, your input JSON, and what result you expected. Do not send Telegram credentials; this Actor does not need them.