Social Fetch
Telegram

List Telegram channel posts

List recent posts from a public Telegram channel. Groups are not supported.

Operation

GET/v1/telegram/channels/{handle}/posts
Cost: 1 credit

Headers

x-api-keystringrequired(header)

API key (`sfk_...`)

Parameters

handlestringrequired

Telegram public username (channel or group), with or without leading @.

min 1 chars · max 200 chars

cursorstring(query)

Opaque pagination cursor from a previous response. Omit for the first page.

Response fields

data
objectrequired

Endpoint-specific response payload.

datalookupStatus
stringrequired

Domain outcome of the channel lookup. Always check this before reading `posts`.

one of: found, not_found, restricted

dataposts
arrayrequired

Posts in reverse chronological order (newest first) when lookupStatus is `found`. Empty when `not_found` or `restricted`.

dataposts[]postId
stringrequired

Unique post ID within the channel.

dataposts[]text
stringrequirednullable

Post text as simplified HTML (<br> line breaks, <a href> links, custom tg-emoji expanded to unicode, common HTML entities decoded so arrows and quotes read naturally in JSON). Null if the post contains only media.

dataposts[]date
stringrequirednullable

ISO 8601 publication timestamp.

dataposts[]views
integerrequirednullable

View count from the public feed. Telegram may abbreviate large values (e.g. 1.13M → 1130000). Null for very recent posts.

dataposts[]forwardedFrom
stringrequirednullable

Original channel name if this post was forwarded.

dataposts[]replyTo
objectnullable

Reply/quote preview when this post replies to another channel message; null otherwise.

dataposts[]replyTopostId
stringrequired

Numeric post ID of the message being replied to, from the public t.me link in the reply preview.

dataposts[]replyToauthorName
stringrequirednullable

Channel or author name shown in the reply preview bar.

dataposts[]replyTotext
stringrequirednullable

Preview snippet of the replied-to message as shown in the embed (often truncated). May be a short media label such as Photo when Telegram does not show body text.

dataposts[]photoUrls
arrayrequired

Photo URLs from Telegram CDN. May expire over time; download promptly if needed.

dataposts[]photoUrls[]
string
dataposts[]videoUrl
stringrequirednullable

Video URL if the post contains a video. May expire over time; download promptly if needed.

dataposts[]reactions
array

Reaction counts shown on the public preview page. Empty when Telegram omits them for a post.

dataposts[]reactions[]emoji
stringrequirednullable

Unicode reaction emoji when Telegram exposes it in the public HTML (including Stars as ⭐). Null for premium/custom animated reactions — use customEmojiId and emojiImageUrl.

dataposts[]reactions[]customEmojiId
stringnullable

Telegram custom emoji document id when the reaction uses a premium/custom emoji.

dataposts[]reactions[]emojiImageUrl
stringnullable

Preview image URL for custom emoji reactions (from Telegram's public emoji metadata). Null for standard unicode reactions.

dataposts[]reactions[]isPaid
boolean

True when the reaction is a Telegram Stars paid reaction.

dataposts[]reactions[]count
integerrequired

Number of users who added this reaction.

≥ 0

datanextCursor
stringrequirednullable

Pagination cursor for the next page. Null if no more posts.

datahasMore
booleanrequired

Whether older posts are available. True when Telegram's public feed HTML includes a load-more control for earlier messages.

meta
objectrequired

Metadata describing the request and billing outcome.

metarequestId
stringrequired

Unique request identifier for tracing this API call.

min 1 chars

metacreditsCharged
integerrequired

Credits charged for this request.

≥ 0

metaversion
stringrequired

Public API version that served the response.

one of: v1

Code example

Responses

Lookup result. Check `data.lookupStatus` for `found`, `not_found`, or `restricted` before reading `data.posts`. When `found`, use `data.nextCursor` for pagination when `data.hasMore` is true.

Error codes

bad_requestinsufficient_creditsinternal_errorlookup_failedtemporarily_unavailableunauthorized

On this page