Telegram Channel Scraper icon

Social media · News & feeds

Telegram Channel Scraper

Export post history from any public Telegram channel via the no-login web preview — text, media, view counts, forwards, and channel metadata, with pagination and retries handled for you.

Free Apify credit covers a first run. No credit card to try.

What we handle for you

  • What we handle for you: browser fingerprint rotation, exponential back-off on rate limits, pagination cursor walking, and Pydantic-validated rows.
  • Works on any public channel — no login, no bot token, no MTProto setup.
  • Detects private/nonexistent channels and skips them with a clear warning instead of failing the whole run.
  • Pay only for results that land — no data means no result charges (only the small actor-start warm-up fee).
  • Clean, typed dataset rows — Pydantic-validated on the way out, so downstream tools never choke on a malformed field.

Use cases

  • OSINT analysts tracking a watchlist of political/activist channels for narrative shifts, without opening a Telegram account.
  • Crypto researchers archiving trading-signal channels to backtest signal accuracy after the fact.
  • News teams backfilling a monitoring dashboard with a channel's full history on day one, instead of only capturing posts going forward.
  • Compliance / trust-and-safety teams pulling a channel's public post history as evidence before it goes dark or gets banned.

Input

Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.

FieldTypeRequiredWhat it does
usernames array yes Public Telegram channel usernames, with or without an @ or t.me/ prefix (e.g. durov, @durov, https://t.me/durov). Normalized, deduped, and fetched one channel at a time.
maxPostsPerChannel integer no Cap on posts fetched per channel. The Actor walks backward in time via the ?before= pagination cursor until this cap, the cursor, or Since date (if set) is reached.
sinceDate string no Optional ISO-8601 date or datetime (e.g. 2026-01-01). The Actor stops paginating once it reaches a post older than this date. Leave empty to walk back as far as Max posts per channel allows.
{
  "usernames": [
    "durov"
  ],
  "maxPostsPerChannel": 100,
  "sinceDate": null,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}

Output

One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.

row_typechannelpost_iddatetimetextview_countmedia_typemedia_urloutbound_linksforwarded_fromreply_countpermalink

{
  "row_type": "post",
  "channel": "durov",
  "post_id": 522,
  "datetime": "2026-05-20T09:12:03+00:00",
  "text": "New update for Telegram...",
  "view_count": 4510000,
  "media_type": "photo",
  "media_url": "https://cdn4.telesco.pe/file/....jpg",
  "outbound_links": [
    "https://telegram.org/blog/watch-apps-and-more"
  ],
  "forwarded_from": null,
  "reply_count": null,
  "permalink": "https://t.me/durov/522"
}

Pricing

EventPriceWhen
Actor start$0.20Once per run, covers warm-up and proxy session setup.
Post row emitted$0.0020Per result written to the dataset.

You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.

Limitations

  • Private / invite-only channels have no public preview and are out of reach by design.
  • Comment threads / linked discussion groups are not scraped.
  • Reply/comment counts are not exposed on the public preview surface and stay null.

FAQ

Do I need a Telegram account to use this Actor?
No. The /s/{channel} preview is Telegram's own no-login, search-engine-facing surface. You run the Actor; we handle the rest.
Can I scrape private or invite-only channels?
No, the /s/{channel} preview only exists for public channels; private channels have no public preview to fetch, by design.
How far back can I go in a channel's history?
As far as the channel's public history goes, up to the Max posts per channel cap (up to 5000) or the Since date cutoff, whichever comes first.
Will I get charged for channels that don't exist or are private?
No. The Actor detects empty/nonexistent previews and skips them with a run-log warning — only the one-time actor-start fee plus result charges for post rows that actually land apply.
Can I get comment/reply counts on posts?
Not from this surface; reply_count is always null (see Limitations).

Ready to run it?

Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.

Related Actors

Teams that run this also run