Telegram Channel posts API
Get a public Telegram channel's posts by username, about 20 per page with a cursor for older pages: text, posting time, views, photo and video links, and reactions.
Pricing and providers
Telegram Channel posts API pricing: one API, 3 interchangeable providers
The cheapest provider serves first. If it fails, the next one takes over in the same call.
Try it
Get Telegram channel posts in one request
{
"data": {
"nextCursor": "example",
"posts": [
{
"channel": "example",
"createdUtc": 12.5,
"id": "a1b2c3d4",
"image": "https://example.com/image.jpg",
"mediaUrls": [
"https://example.com/page"
],
"reactions": [
{
"count": 12500,
"emoji": "example"
}
],
"text": "A short example description of this item.",
"url": "https://example.com/page",
"views": 12500
}
]
},
"found": true,
"reason": "not_found"
}Full parameter and response reference - every field, type, and example for this endpoint.
Reference
One request, one response shape.
Every field you send and every field you get back, each with a real example.
Last verified 2026-10-19 · uptime and latency measured over 30d
Request body
JSON, posted to this endpoint.
- handlestring
telegram
Public Telegram channel username, with or without the @ (e.g. "telegram"), or its t.me link.
- cursorstring
Opaque pagination cursor from a previous response's nextCursor, for older posts. Omit for the newest page; a page holds about 20 posts.
Response
JSON, one example value per field.
Wrapper holding the posts array and the next-page cursor, or null when nothing was found.
- nextCursorstring
Opaque cursor for the next, older page of posts, or null/empty when there are no more. Pass it back as cursor to continue.
One page of the channel's posts, about 20, from the newest page back. Populated whenever the provider has data for the entity.
- channelstring
Username of the channel that published the post.
- createdUtcnumber
UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.
- idstring
Post number, unique within the channel. Posts are numbered in order. Populated whenever the provider has data for the entity.
- imagestring
Thumbnail image URL for the post's photo, video or link preview; null when it has none. Temporary: Telegram's CDN link expires.
- mediaUrlsstring[]
Direct URLs of the post's photos and videos. Temporary and signed: keep the query string. Empty when the post has no media or Telegram withholds a large video's file.
- textstring
Post text or media caption, plain. Empty when the post has none. Some sources collapse line breaks into spaces. Populated whenever the provider has data for the entity.
- urlstring
The post's t.me link, e.g. https://t.me/telegram/441. Populated whenever the provider has data for the entity.
- viewsinteger
View count. Telegram rounds it ("1.2K" becomes 1200). Null when not shown.
Reactions on the post and how many of each. Empty when the post has none or the channel hides them.
- countinteger
How many times it was given. Telegram rounds large counts.
- emojistring
The reaction's emoji; null for a custom emoji, and on some sources for a paid star reaction.
- foundboolean
True when the channel's posts were found; false when no public channel has this username or it has no readable posts.
- reason"not_found"
Present only when `found` is false, and says why there is no result. `not_found`: the source states the target does not exist, or returned nothing for it. A `found: false` answer is a successful call, not an error, and `costUsd` is what it actually cost.
FAQ
About the Telegram Channel posts API
The AnyAPI Telegram Channel posts API returns Telegram channel posts data as normalized JSON from one POST call to /v1/run/telegram.channel_posts. Get a public Telegram channel's posts by username, about 20 per page with a cursor for older pages: text, posting time, views, photo and video links, and reactions. AnyAPI routes each request across 3 sources and falls back automatically when one fails. It costs from $1.10 per 1,000 requests, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 100.0% of Telegram channel posts calls through AnyAPI succeeded, with a median response time of 1.2 seconds across 1 measured calls.