Skip to content

Models

All response models, as defined in telegram_me/schemas. The same definitions are available as JSON Schema in /openapi.json.

Optional fields are always present in responses and set to null when missing (the feed returns raw posts and omits them instead).

ChannelBody

Returned by /v1/body.

Field Type Description
channel Channel Profile
content.posts Post[] Posts on the page, oldest first
meta Meta Pagination cursors

More

Returned by /v1/more: posts (Post[]) and meta (Meta).

Channel

Field Type Description
username string Username without @
title ParsedAndRaw Display name
description ParsedAndRaw | null Bio
avatar URL | null Profile picture
counters.subscribers string e.g. 10.3M
counters.photos, videos, files, links string | null Media counters shown by Telegram
labels string[] | null Header badges, e.g. verified

Meta

Field Type Description
offset.before integer | null Pass to /v1/more/{channel}/before/{value} for older posts
offset.after integer | null Pass to /v1/more/{channel}/after/{value} for newer posts

Post

Field Type Description
id integer Post ID within the channel
content Content Everything the post contains
footer Footer Views, date, author
forwarded Forwarded | null Original source of a forward
view string Telegram's opaque view token

Content

Field Type Description
text Text | null Message text
media MediaItem[] | null Photos, videos, voice messages, round videos, stickers
poll Poll | null Poll (full parser only)
inline Inline[] | null Inline keyboard buttons, all rows flattened in order
reply Reply | null Replied-to message (full parser only)
preview_link PreviewLink | null Link preview card (full parser only)
reacts Reacts[] | null Reactions (full parser only)

With PARSER_MODE=simplified only text (without entities), media and inline are extracted.

Text

Field Type Description
string string Plain text, \n for line breaks
html string Original markup
entities TextEntity[] | null Formatting (full parser only)

TextEntity

Field Type Description
type enum bold, italic, underline, strikethrough, code, pre, spoiler, hashtag, url, text_link, emoji, animoji
offset integer Start in Text.string (UTF-16 is not used: Python string indices)
length integer Length of the visible text
url URI | null Link target (text_link, url) or emoji image (emoji, animoji)
language string | null Reserved for pre blocks

MediaItem

Field Type Description
type enum image, video, gif, voice, roundvideo, sticker
url URL | null File URL; null when Telegram does not expose it
thumb URL | null Thumbnail (video, round video, sticker)
duration {formatted, raw} | null formatted as shown (1:15), raw in seconds
waves string | null Encoded waveform of a voice message
available boolean | null false when the file is too large to be served by t.me

A video without a duration is reported as gif.

Poll

Field Type Description
question string Question
type string | null As shown by Telegram, e.g. Anonymous Poll
votes string | null Vote counter as shown
options[] {name: string, percent: integer} Answers with their share

Inline

Field Type Description
title string Button text
url URI Target (https://…, tg://…)

Reply

Field Type Description
to_message integer ID of the replied-to post
name ParsedAndRaw Its author
text ParsedAndRaw Its text (preview)
cover URI | null Its thumbnail
Field Type Description
url URL Linked page
site_name, title string | null Card header
description ParsedAndRaw | null Card text
thumb URL | null Card image

Reacts

Field Type Description
type enum emoji, custom_emoji, telegram_stars
count string Counter as shown (14.2K)
emoji string | null The emoji (⭐ for Stars)
emoji_id string | null Custom emoji ID
emoji_image URL | null Emoji sprite
Field Type Description
views string | null View counter
edited boolean Post was edited
author ParsedAndRaw | null Signature, when the channel signs posts
date {string, unix} Publication time

Forwarded

Field Type Description
name ParsedAndRaw Source channel or user; empty strings when the sender hides their name
url URL | null Link to the source
author ParsedAndRaw | null Signature next to the source (added in 2.0)

Preview

Returned by /v1/preview: {"channel": PreviewChannel}.

Field Type Description
title string Name
subscribers string As displayed, e.g. 10 281 023 subscribers
description string | null Plain-text bio
avatar URL | null Picture
is_verified boolean Verified badge

/v1/previews returns {username: Preview}.

FeedResponse

{"result": [ … ]} — see Feed.

ParsedAndRaw

{"string": string, "html": string} — plain text and original markup.