Skip to content
Eden Engine

Telegram Channel Posts (Recent, by Username)

omnial/telegram-web-fetch-channel-posts

Given a public Telegram channel's username, returns its recent posts (text, post type, view count, star/emoji reactions, media presence, and any link preview) plus channel info (title, subscriber count, verification status) and pagination cursors for paging through older posts with `before`/`after`.

activeper callv1
Provider
Web & Business Data Network
Category
telegram
Provider price
$0.0020475 per call
Latency p50 / p95
— / —
Success rate
Verified

Provider list price; Omnial MCP charges provider cost plus a platform markup on top.

Contract

input_schema.json
{
  "type": "object",
  "required": [
    "channel"
  ],
  "properties": {
    "after": {
      "type": "integer",
      "default": 0,
      "description": "Newer than this id"
    },
    "limit": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "examples": [
        20
      ],
      "description": "Number of posts"
    },
    "before": {
      "type": "integer",
      "default": 0,
      "description": "Older than this id"
    },
    "channel": {
      "type": "string",
      "examples": [
        "durov"
      ],
      "description": "Channel username"
    }
  },
  "additionalProperties": false
}
output_schema.json
{
  "type": "object",
  "properties": {
    "channel": {
      "type": "string",
      "description": "Echoes the queried channel username."
    },
    "messages": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "description": "The message id, used for `before`/`after` paging."
          },
          "date": {
            "type": "string",
            "description": "ISO 8601 post timestamp, e.g. '2026-09-06T17:40:39+00:00'. Not a phone number: the capture pipeline's PII heuristic flags this leaf as phone-shaped because of its digit density, but every observed value is a standard ISO 8601 datetime -- see verification.notes."
          },
          "text": {
            "type": "string",
            "description": "Plain-text post body."
          },
          "type": {
            "type": "string",
            "description": "e.g. 'text', 'photo', 'video' -- observed on real posts."
          },
          "media": {
            "type": "object",
            "properties": {
              "photos": {
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Withheld the same way as `channel_info.photo`."
                },
                "description": "Photo attachments. Empty on posts with no photo."
              },
              "videos": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Withheld the same way as `channel_info.photo`."
                    },
                    "thumb": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Withheld the same way as `channel_info.photo`."
                    },
                    "duration": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "e.g. '0:20'. Observed `null` on at least one real video."
                    }
                  },
                  "additionalProperties": true
                },
                "description": "Video attachments. Empty on posts with no video."
              },
              "has_unsupported": {
                "type": "boolean",
                "description": "Observed `true` on every real post calibrated, including plain-text posts with no attached media -- its meaning beyond 'has a photo/video' is unconfirmed."
              }
            },
            "additionalProperties": true
          },
          "views": {
            "type": "string",
            "description": "Human-formatted view count, e.g. '719K' -- not a raw number."
          },
          "author": {
            "type": "string",
            "description": "The channel owner's display name as shown on the post."
          },
          "channel": {
            "type": "string",
            "description": "Repeats the channel username per message."
          },
          "reply_to": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "Observed `null` on every real post calibrated (none were replies) -- presumed to hold the id of the message being replied to when populated, unconfirmed."
          },
          "reactions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "paid": {
                  "type": "boolean",
                  "description": "True for the paid Telegram Star reaction, false for free emoji."
                },
                "count": {
                  "type": "string",
                  "description": "Human-formatted count, e.g. '6.15K' -- not a raw number."
                },
                "emoji": {
                  "type": "string",
                  "description": "The reaction emoji, or empty string for the Star reaction."
                }
              },
              "additionalProperties": true
            },
            "description": "One entry per distinct reaction (emoji or Telegram Star) on the post."
          },
          "text_html": {
            "type": "string",
            "description": "The same post body as HTML, including the channel's own outbound links."
          },
          "is_forwarded": {
            "type": "boolean"
          },
          "link_preview": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "url": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Withheld the same way as `channel_info.photo`."
              },
              "title": {
                "type": "string"
              },
              "site_name": {
                "type": "string"
              },
              "description": {
                "type": "string"
              }
            },
            "description": "Null when the post has no outbound link preview card.",
            "additionalProperties": true
          },
          "forwarded_from": {
            "type": [
              "string",
              "null"
            ],
            "description": "The source channel/username a forwarded post came from. Observed `null` on every real post calibrated (none were forwards) -- shape when populated is unconfirmed."
          }
        },
        "additionalProperties": true
      },
      "description": "Posts, newest first on every real call observed."
    },
    "pagination": {
      "type": "object",
      "properties": {
        "count": {
          "type": "number",
          "description": "Number of posts actually returned on this page."
        },
        "limit": {
          "type": "number",
          "description": "Echoes the requested `limit`."
        },
        "after_cursor": {
          "type": "number",
          "description": "Pass as `after` to fetch newer posts than this page."
        },
        "before_cursor": {
          "type": "number",
          "description": "Pass as `before` to fetch older posts than this page."
        },
        "pages_fetched": {
          "type": "number"
        },
        "has_more_before": {
          "type": "boolean"
        }
      },
      "additionalProperties": true
    },
    "channel_info": {
      "type": "object",
      "properties": {
        "photo": {
          "type": [
            "string",
            "null"
          ],
          "description": "The channel's avatar image. Value withheld (returned as `null` regardless of whether the channel has one) -- only whether the field is populated is observable, not the image itself."
        },
        "title": {
          "type": "string",
          "description": "The channel's display name."
        },
        "counters": {
          "type": "object",
          "properties": {
            "links": {
              "type": "string"
            },
            "photos": {
              "type": "string"
            },
            "videos": {
              "type": "string"
            },
            "subscribers": {
              "type": "string"
            }
          },
          "description": "The same human-formatted-string convention as `subscribers` above.",
          "additionalProperties": true
        },
        "username": {
          "type": "string"
        },
        "verified": {
          "type": "boolean"
        },
        "description": {
          "type": "string"
        },
        "subscribers": {
          "type": "string",
          "description": "Human-formatted subscriber count, e.g. '10.9M' -- not a raw number."
        }
      },
      "description": "Summary of the channel itself, unpaginated -- the same on every page.",
      "additionalProperties": true
    }
  },
  "description": "The channel-posts page, as returned at routing.responseResultPath ($.output).",
  "additionalProperties": true
}

Pricing

Every real charge, itemised. A model that quietly omits one is a slow financial leak, so nothing here is rolled up, and a charge that only applies to some inputs says so rather than being added in.

Prices in this catalog are the provider's own list price, not your bill: Omnial MCP charges provider cost plus a platform markup on top, so what you are charged is higher than the figure shown. For the exact amount a specific call will cost, run omnial_execute with dry_run: true; that number includes the markup and is what we hold while the call runs. It is a quote, not a cap on the charge.

ChargeRate
Per call
Flat, regardless of what comes back
$0.0020475
Cost basis
Not recorded

This tool's catalog entry does not record how its final bill is determined, so we will not tell you whether its cost is fixed before the call or reported by the provider afterwards. Either way what is held is a quote rather than a cap: you are charged what the call actually costs, bounded at 2x the quote.

Updated
Sep 8, 2026