API catalog / Telegram API / Get channel messages

Telegram Messages API

Full message history of any public channel — text, media, polls, forwards and view counts — newest first.

GEThttps://api.endpointry.com/v1/telegram/messages

Returns a public channel's messages, newest first, up to 100 per response. Each message carries its permalink, publish time, view count, plain text and a safe-subset HTML rendering, plus whatever it attached: photos and albums, videos, stickers, files with their type and duration, polls with per-option shares, and the origin of a forwarded post. Pagination walks backwards through the channel with `meta.pagination.next_cursor`, ending with `null` at the first message.

Query parameterseditable
channel *string
limit *number · 1–100
cursorstring
Response fields (data)
messages*array<object>
id*integer
url*string · uri
date*string · date-time
author*string | null
text*string | nullThe message as plain text, with line breaks preserved.
html*string | nullThe message with its original formatting, limited to a safe subset of tags (b, i, u, s, a, code, pre, br, span) and, on links, href alone.
views*integer | nullView count as Telegram reports it; rounded for large numbers.
forwarded_from*object | null
channel*string | null
title*string | null
message_id*integer | null
url*string · uri | null
link_preview*object | null
url*string · uri
title*string | null
name*string | nullThe site name Telegram resolved.
description*string | null
image_url*string · uri | null
photos*array<object>
url*string · uri
permalink*string · uriLink to this item, which differs from the message for album items.
album*booleanWhether the photo is part of a grouped album.
videos*array<object>
url*string · uri
sticker*object | null
url*string · uri
mime_type*string | null
document*object | null
kind*"video" | "audio" | "voice" | "image" | "sticker" | "file"
file_name*string | null
mime_type*string | null
size*integer | nullSize in bytes.
duration*integer | nullSeconds, for audio and video.
width*integer | null
height*integer | null
poll*object | null
question*string
multiple_choice*boolean
voters*integerTotal votes. Telegram rounds large counts, so this is approximate above ~1000.
options*array<object>
text*string
percent*numberShare of the vote, 0–100.
Response meta

Platform fields, identical on every endpoint — what they mean.

Request
curl "https://api.endpointry.com/v1/telegram/messages?channel=telegram" \
  -H "Authorization: Bearer sk_live_..."
Loading…
Responseexample
200 · application/json
{
  "meta": {
    "request_id": "req_7729f93d3facf68ff83e5c50",
    "as_of": "2026-08-02T12:00:00.000Z",
    "cache": "MISS",
    "pagination": {
      "next_cursor": "MzAwYzM4ZTU6NDUz",
      "limit": 20,
      "returned": 1
    }
  },
  "data": {
    "messages": [
      {
        "id": 454,
        "url": "https://t.me/telegram/454",
        "date": "2026-07-19T17:58:20.000Z",
        "author": "Telegram News",
        "text": "For all the details on these new features, check out our blog:\nhttps://telegram.org/blog/communities-editor-invisible-messages",
        "html": "<p>For all the details on these new features, check out our blog:<br><a href=\"https://telegram.org/blog/communities-editor-invisible-messages\">https://telegram.org/blog/communities-editor-invisible-messages</a></p>",
        "views": 1090000,
        "forwarded_from": null,
        "link_preview": {
          "url": "https://telegram.org/blog/communities-editor-invisible-messages",
          "title": "Rich Text Editor, Communities, Ephemeral Messages in Groups",
          "name": "Telegram",
          "description": "Introducing a rich text editor to format and generate text.",
          "image_url": null
        },
        "photos": [],
        "videos": [],
        "sticker": null,
        "document": null,
        "poll": null
      }
    ]
  }
}

What teams build with it

  • News and OSINT monitoring across public channels
  • Trend detection and alerting on message content
  • Archiving public channels with complete media metadata
  • Brand safety: track what public channels say, structured

Frequently asked questions

How far back can I go?

All the way. Pagination walks backwards with meta.pagination.next_cursor and ends with null at the channel’s first message.

What media is included?

Photos and albums, videos, stickers, file attachments with type, size and duration, polls with per-option shares, link previews, and the origin of forwarded posts.

Is the HTML safe to render?

Yes. The html field is limited to a safe subset of formatting tags with href as the only attribute — no scripts, no event handlers.

How exact are view counts?

Published as numbers. Telegram rounds large counts at the source, so treat values above a few thousand as close approximations.

Try it with a free trial

One subscription covers the whole catalog — this endpoint included.