API catalog / Telegram API

Telegram API

Preview

Public Telegram channel profiles and message history with stable schemas.

https://api.endpointry.com/v1/telegram

Quick start

curl
curl "https://api.endpointry.com/v1/telegram/channel?channel=telegram" \
  -H "Authorization: Bearer sk_live_..."
  • • Authentication: Authorization: Bearer with your single platform key
  • • Envelope: every success response is { data, meta }
  • • Errors: RFC 9457 problem+json with stable codes
  • • Pagination: opaque cursors via meta.next_cursor

Example response

200 · application/json
{
  "meta": {
    "request_id": "req_7729f93d3facf68ff83e5c50",
    "as_of": "2026-08-02T12:00:00.000Z",
    "cache": "MISS"
  },
  "data": {
    "channel": {
      "id": 1005640892,
      "username": "telegram",
      "url": "https://t.me/telegram",
      "title": "Telegram News",
      "description": "The official Telegram on Telegram. Much recursion. Very Telegram. Wow.",
      "type": "channel",
      "verified": true,
      "subscribers": 9929948,
      "image_url": "https://cdn1.telesco.pe/file/OlYOPa0mOv6odATduwSNDRktKzZ7zDgL.jpg"
    }
  }
}

Endpoints

GET/v1/telegram/channel

Get a public channel

Returns a public channel by username: title, description, subscriber count, verification badge and avatar. Returns `404 NOT_FOUND` when no public channel uses that username. Records are cached briefly and shared with `/messages`.

Query parameterseditable
channel *string
Response fields (data)
channel*object
id*integer
username*string
url*string · uri
title*string
description*string | null
type*string
verified*boolean
subscribers*integer
image_url*string · uri | null
Response meta

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

Request
curl "https://api.endpointry.com/v1/telegram/channel?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"
  },
  "data": {
    "channel": {
      "id": 1005640892,
      "username": "telegram",
      "url": "https://t.me/telegram",
      "title": "Telegram News",
      "description": "The official Telegram on Telegram. Much recursion. Very Telegram. Wow.",
      "type": "channel",
      "verified": true,
      "subscribers": 9929948,
      "image_url": "https://cdn1.telesco.pe/file/OlYOPa0mOv6odATduwSNDRktKzZ7zDgL.jpg"
    }
  }
}
GET/v1/telegram/messages

Get channel 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 | null
html*string | null
views*integer | null
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 | null
description*string | null
image_url*string · uri | null
photos*array<object>
url*string · uri
permalink*string · uri
album*boolean
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 | null
duration*integer | null
width*integer | null
height*integer | null
poll*object | null
question*string
multiple_choice*boolean
voters*integer
options*array<object>
text*string
percent*number
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
      }
    ]
  }
}

Ready to build with Telegram API?

Included in every plan — one subscription covers the whole catalog.