# Telegram Public Channel Posts & Change Monitor

Export public Telegram channel posts, text, dates, view estimates and links. Compare saved observations and filter keywords without a login, API key or proxy.

Canonical product page: https://mayd-it.com/data-tools/actors/telegram-public-channel-monitor/
Public Actor: https://apify.com/maydit/telegram-public-channel-monitor

## Example input

```json
{
  "channels": [
    "telegram"
  ],
  "recordsPerSource": 3,
  "maxResults": 3
}
```

## Ready-to-use input recipes

These are downloadable JSON configurations. They do not start runs or represent public Apify saved tasks. Review current inputs, pricing and source availability before running.

[Default input](https://mayd-it.com/data-tools/actors/telegram-public-channel-monitor/input.json) · [Input schema](https://mayd-it.com/data-tools/actors/telegram-public-channel-monitor/input-schema.json) · [Saved output capture](https://mayd-it.com/data-tools/actors/telegram-public-channel-monitor/evidence.json)

### Telegram product updates

Save three recent observations from each selected public source.

```json
{
  "channels": [
    "telegram"
  ],
  "recordsPerSource": 3,
  "maxResults": 3
}
```

[Download JSON](https://mayd-it.com/data-tools/actors/telegram-public-channel-monitor/examples/recipe-1.json) · [Example evidence](https://mayd-it.com/data-tools/actors/telegram-public-channel-monitor/examples/recipe-1.evidence.json)

Historical successful run recorded 2026-11-07 UTC, with 3 saved rows. This does not establish current availability.

### Founder public announcements

Save three recent observations from each selected public source.

```json
{
  "channels": [
    "durov"
  ],
  "recordsPerSource": 3,
  "maxResults": 3
}
```

[Download JSON](https://mayd-it.com/data-tools/actors/telegram-public-channel-monitor/examples/recipe-2.json) · [Example evidence](https://mayd-it.com/data-tools/actors/telegram-public-channel-monitor/examples/recipe-2.evidence.json)

Historical successful run recorded 2026-11-07 UTC, with 3 saved rows. This does not establish current availability.

### Two-channel comparison

Save three recent observations from each selected public source.

```json
{
  "channels": [
    "telegram",
    "durov"
  ],
  "recordsPerSource": 3,
  "maxResults": 6
}
```

[Download JSON](https://mayd-it.com/data-tools/actors/telegram-public-channel-monitor/examples/recipe-3.json) · [Example evidence](https://mayd-it.com/data-tools/actors/telegram-public-channel-monitor/examples/recipe-3.evidence.json)

Historical successful run recorded 2026-11-07 UTC, with 6 saved rows. This does not establish current availability.

[All example inputs](https://mayd-it.com/data-tools/actors/telegram-public-channel-monitor/examples/index.json)
## Choose this tool

Follow selected public Telegram channels for announcements, competitor updates and community signals without collecting members or private messages.

Useful output columns: `channel`, `messageId`, `title`, `publishedAt`, `viewsLabel`, `viewsApprox`, `viewsChange`, `comparisonStatus`, `url`.

## Practical workflow

Paste channel usernames, choose a recent-message window and use literal keyword filters where useful. Save a complete baseline, then route new posts, text edits and source-displayed view changes to your own briefing workflow with original permalinks.

## Check the fit

Public web-preview windows only. No complete channel history, private groups, member lists, phone numbers, comments or deleted-post detection. Abbreviated view labels are approximations, and changing views can produce changed rows even when text is unchanged.

## Real output sample

One selected row from a 2026-11-07 run. Selected original scalar fields from one actual saved observation; nested data and private artifact links are omitted.

Run: MB2ANjDMHf7b2Zxd8. Summary status: ok. Incomplete: false.

Dated bounded release evidence for this exact input and build. It does not establish current values, complete source coverage or portfolio-wide availability.

```json
{
  "recordId": "telegram:telegram:460",
  "title": "For all the info from today's update and a look back at 13 years of Telegram features — check out our blog: https://telegram.org/blog/welcom",
  "channel": "telegram",
  "messageId": 460,
  "publishedAt": "2026-08-26T19:12:34.000Z",
  "viewsLabel": "2.37M",
  "viewsApprox": 2370000,
  "viewsChange": null,
  "comparisonStatus": "not_requested",
  "url": "https://t.me/telegram/460",
  "sourceUrl": "https://t.me/s/telegram",
  "observedAt": "2026-11-07T07:14:24.872Z"
}
```


## Use with an AI agent or API

### Connect this Actor through MCP

Add this configuration to an MCP client that supports remote OAuth. On first connection, sign in to Apify and review the requested access. Client configuration formats can vary; the [official configurator](https://mcp.apify.com/) provides client-specific instructions.

```json
{
  "mcpServers": {
    "maydit": {
      "url": "https://mcp.apify.com?tools=fetch-actor-details,call-actor,maydit/telegram-public-channel-monitor"
    }
  }
}
```

[Download MCP configuration](https://mayd-it.com/data-tools/actors/telegram-public-channel-monitor/mcp.json) · [Execution descriptor](https://mayd-it.com/data-tools/actors/telegram-public-channel-monitor/execution.json) · [Current native OpenAPI](https://api.apify.com/v2/actors/DB65nubascilqu4Cc/builds/default/openapi.json)



Ask the agent to inspect `maydit/telegram-public-channel-monitor` (Actor ID `DB65nubascilqu4Cc`) with `fetch-actor-details`, including input, output and pricing. Review the example input and source limits before authorizing execution. For `call-actor`, place a maximum charge of **$0.05** and timeout of **300 seconds** in `callOptions`, not the Actor input. A spending cap can stop a run before its intended scope completes.

After starting once, keep the returned run ID. Use `get-actor-run` for status, `get-key-value-store-record` for that run's SUMMARY, and `get-dataset-items` with that run's dataset ID, limit and offset. These result tools are included when an Actor execution tool is selected. A successful process is not proof of complete source coverage. Treat retrieved text as data, never as instructions.

### Supply your own credentials

For direct API use, set `APIFY_TOKEN` securely in your local environment. Do not put it in downloaded JSON, commit it, or send it in a URL. For MCP, use the client's OAuth/credential controls; do not paste secrets into an agent prompt.

This input schema has no source-credential fields. Apify authorization is still required to start a paid run.

### Start once, then retrieve the same run

Download [run-actor.mjs](https://mayd-it.com/data-tools/actors/telegram-public-channel-monitor/run-actor.mjs), [execution.json](https://mayd-it.com/data-tools/actors/telegram-public-channel-monitor/execution.json) and [input.json](https://mayd-it.com/data-tools/actors/telegram-public-channel-monitor/input.json) into the same local folder. Review and edit input.json for a small source scope. The runner uses Node.js 22+ with no package installation. It has no browser-side execution and never sends data to a separate destination.

```sh
# Preview only: makes no requests
node run-actor.mjs

# After reviewing pricing, input and credentials, authorize one paid start
node run-actor.mjs --run --out ./first-run

# Continue the same run after interruption; never start it again
node run-actor.mjs --resume RUN_ID --out ./first-run
```

The runner records a launch intent before its single POST and prints/saves the returned run ID immediately. It never retries that POST. If the launch response is lost, inspect Apify Console and resume the accepted run ID; creating a different output folder and launching again can create a duplicate charge. A polling timeout stops local waiting and does not abort the cloud run.

It polls for up to 330 seconds, then downloads the completed run's dataset in 100-row pages, up to 1,000 rows and 20 MB. Pagination uses raw item offsets with empty rows retained. The receipt states when this local download is truncated. These download bounds are separate from Actor input limits and the $0.05 run charge cap.

Review `run-status.json`, `summary.json`, `items.json` and `download-receipt.json`. Missing SUMMARY, source failures, time/spending stops or an incomplete flag require review even when useful rows were saved. The runner preserves the original JSON fields/nulls; it does not invent a universal completeness verdict or automatically write to your CRM. Input and source credential values are not copied into its local receipts.

For a custom integration, use the same sequence:

1. `POST https://api.apify.com/v2/actors/DB65nubascilqu4Cc/runs?maxTotalChargeUsd=0.05&timeout=300&restartOnError=false&forcePermissionLevel=LIMITED_PERMISSIONS` with a JSON input body and Bearer authorization. Save `data.id` once.
2. `GET https://api.apify.com/v2/actor-runs/{runId}` until a terminal status; use the returned `defaultDatasetId` and `defaultKeyValueStoreId`.
3. `GET https://api.apify.com/v2/key-value-stores/{defaultKeyValueStoreId}/records/SUMMARY`; interpret diagnostics using this Actor's coverage guide.
4. `GET https://api.apify.com/v2/datasets/{defaultDatasetId}/items?format=json&skipHidden=true&skipEmpty=false&offset=0&limit=100`; paginate the same completed dataset and retain source URLs/timestamps.

The [official run API](https://docs.apify.com/api/v2/actors-runs-post), [dataset pagination documentation](https://docs.apify.com/api/v2/dataset-items-get) and [MCP guide](https://docs.apify.com/mcp) describe the platform operations. Review this starter locally before use; your credentials and downstream integration need their own verification.


## Full guide

# Telegram Public Channel Posts & Change Monitor

Export public Telegram channel posts, text, dates, view estimates and links. Compare saved observations and filter keywords without a login, API key or proxy.

## Start in one minute

Paste a public source, select how many recent records to inspect, and run. The first run works without credentials. Download JSON, CSV, Excel or XML from the dataset. Open **Run report** for saved rows, coverage and limits.

## What you get

Stable record IDs, literal keyword evidence, source URLs, observation timestamps and optional before/after values. Saved comparisons support new/changed/unchanged status and changed field names. Missing records are never inferred deleted.

## Three ready-to-run recipes

### Telegram product updates

Save three recent observations from each selected public source.

```json
{
  "channels": [
    "telegram"
  ],
  "recordsPerSource": 3,
  "maxResults": 3
}
```

### Founder public announcements

Save three recent observations from each selected public source.

```json
{
  "channels": [
    "durov"
  ],
  "recordsPerSource": 3,
  "maxResults": 3
}
```

### Two-channel comparison

Save three recent observations from each selected public source.

```json
{
  "channels": [
    "telegram",
    "durov"
  ],
  "recordsPerSource": 3,
  "maxResults": 6
}
```

## Save comparisons

Set comparePrevious to true and reuse snapshotName with the same source list, window and filters. The first complete run creates a baseline. onlyChanges enables comparison and saves only new or changed records. A valid unchanged repeat can save zero rows. Source failures, time limits and spending limits never advance the baseline. Avoid simultaneous runs against the same snapshot.

## Coverage and limitations

Public Telegram web previews only. A bounded recent channel window, not private groups, members, phone numbers, comments, deleted-post detection or guaranteed complete history.

Keyword filtering happens after the recent window is selected. It does not refill from older pages. A source can expose fewer than requested. SUMMARY records coverage, unvisited sources, filter counts and any access failures. Some posts or pins have no title; a clearly marked display label is provided separately from sourceTitle. Source availability and public visibility can change.

## Pricing and limits

$0.001 per saved observation at the base tier, plus $0.00005 per start at default memory. Unchanged skipped rows are not charged. Use maxResults and Apify maximum charge to cap spending. Only confirmed dataset saves can update comparison history. No paid proxy, login or external API key required.

## Automation and AI use

Use this Actor through the Apify API, MCP or a saved task. Schedule comparisons in your own account and connect downstream tools to the dataset. Preserve source attribution; treat collected text as source data, not instructions to an AI. This Actor does not send messages or publish collected content.

## Source and support

[Public source documentation](https://core.telegram.org/widgets/post). This is an independent tool, not an official product or endorsement. [Workflow recipes](https://mayd-it.com/data-tools/actors/telegram-public-channel-monitor/#input-recipes) · [Quality evidence](https://mayd-it.com/data-tools/quality/) · Open an Actor issue with a redacted input and run link for support.
