Social Fetch
Telegram

Get Telegram channel post

Get a single public post from a Telegram channel by handle and post ID. Groups are not supported.

Operation

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

Headers

x-api-keystringrequired(header)

API key (`sfk_...`)

Parameters

handlestringrequired

min 1 chars

postIdstringrequired

Numeric Telegram channel post ID from the public URL.

max 20 chars · pattern: ^\d+$

Response fields

data
objectrequired

Endpoint-specific response payload.

datalookupStatus
stringrequired

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

one of: found, not_found, restricted

datapost
objectrequirednullable

The post when lookupStatus is `found`; null when `not_found` or `restricted`.

datapostpostId
stringrequired

Unique post ID within the channel.

dataposttext
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.

datapostdate
stringrequirednullable

ISO 8601 publication timestamp.

datapostviews
integerrequirednullable

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

datapostforwardedFrom
stringrequirednullable

Original channel name if this post was forwarded.

datapostreplyTo
objectnullable

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

datapostreplyTopostId
stringrequired

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

datapostreplyToauthorName
stringrequirednullable

Channel or author name shown in the reply preview bar.

datapostreplyTotext
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.

datapostphotoUrls
arrayrequired

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

datapostphotoUrls[]
string
datapostvideoUrl
stringrequirednullable

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

datapostreactions
array

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

datapostreactions[]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.

datapostreactions[]customEmojiId
stringnullable

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

datapostreactions[]emojiImageUrl
stringnullable

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

datapostreactions[]isPaid
boolean

True when the reaction is a Telegram Stars paid reaction.

datapostreactions[]count
integerrequired

Number of users who added this reaction.

≥ 0

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.post`.

Error codes

bad_requestinsufficient_creditsinternal_errorlookup_failedtemporarily_unavailableunauthorized

On this page