Telegram Channel Posts Scraper avatar

Telegram Channel Posts Scraper

Pricing

from $0.02 / 1,000 post extracteds

Go to Apify Store
Telegram Channel Posts Scraper

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

Hanna Nosova

Maintained by Community

Actor 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?

FieldDescription
channelUsernamePublic Telegram channel username
channelTitleChannel title shown on the post
postIdNumeric post ID
postUrlDirect Telegram post URL
postedAtPost timestamp when available
textPublic post text
viewsVisible view count
forwardsVisible forward count when shown
repliesVisible reply count when shown
reactionsVisible reaction counters when shown
linksLinks found in the post text
mediaUrlsPublic media URLs or post media links when visible
scrapedAtTime 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

  1. Open the actor on Apify.
  2. Add one or more public Telegram channels.
  3. Set the maximum number of posts.
  4. Optionally set a date filter.
  5. Run the actor.
  6. 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
  • @telegram
  • https://t.me/telegram
  • https://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 maxPosts for ongoing monitoring jobs.
  • Use sinceDate for 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 ApifyClient
import os
client = 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().items
print(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 telegram and 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:

  1. Create an Apify task with your channel list.
  2. Set sinceDate or keep maxPosts modest.
  3. Schedule the task hourly, daily, or weekly.
  4. 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.

Explore other Apify actors from fetch_cat for social, content, and monitoring workflows:

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.