BORG Telegram channel scraper avatar

BORG Telegram channel scraper

Pricing

from $1.20 / 1,000 results

Go to Apify Store
BORG Telegram channel scraper

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

Daniel Yates

Maintained by Community

Actor stats

1

Bookmarked

135

Total users

20

Monthly active users

3 days ago

Last modified

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

  1. Open the Actor or one of the published example tasks.
  2. Enter a public Telegram channel, group, or profile URL. Examples: telegramtips, @telegramtips, or https://t.me/telegramtips.
  3. Set messageLimit. Start with a small run such as 25 or 50 rows, then increase it after checking the output.
  4. Keep includeMedia enabled if you want media references and thumbnails when Telegram exposes them publicly.
  5. Use dateRange only when you need to filter visible posts by date.
  6. Click Start and wait for the run to finish.
  7. Open the dataset to preview, download, or export the results.

Published examples:

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:

FieldDescription
channelUsernameTelegram channel or profile handle
messageIdMessage identifier from the public Telegram URL
urlPublic Telegram message URL
dateMessage timestamp when visible
textMessage text
authorPublic display name when available
viewsPublic view count shown by Telegram
forwardsForwarded-from information when visible
replyToReply reference when visible
mediaPublic media references such as photo, video, document, voice, sticker, or poll metadata
linksOutbound links found in the post text or preview
linkPreviewPublic 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

InputUse it for
telegramChannelOrProfileThe main target. Accepts a public handle or URL.
messageLimitMaximum number of message rows to return. Higher limits cost more because pricing is per result row.
modeChoose the workflow shape. Most users can leave this as historical_archive.
includeMediaInclude media references when publicly visible.
includeRepliesInclude reply references when publicly visible.
dateRangeFilter returned posts by visible timestamp. This does not unlock private or hidden history.
channels, maxMessages, dateFrom, dateToLegacy 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 rowsApproximate 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

ModeBest for
historical_archiveExporting visible public channel history as normalized message rows.
research_dataset_exportCreating a bounded Telegram dataset for analysis, indexing, or enrichment.
media_link_inventoryFinding posts that contain media or outbound links.
recent_monitorChecking the newest public posts for monitoring workflows.
channel_summaryReturning public profile metadata and channel counters.
message_probeRunning a tiny sample before a larger export or integration.
legacy_channel_scraperSupporting 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.