Endpoint Playground
Returns one page of up to 20 posts from a public Telegram channel's web preview (t.me/s/{username}), newest first. Each post has its id, link, text, links found in the text, publish time, edited flag, view count, author signature, forwarded-from and reply references, photo and video thumbnails, link-preview card, and reaction tallies. Page backwards by passing the previous response's next_before as before; has_more is false and next_before is omitted on the last page. Pass query to search inside the channel instead of browsing; search pages use the same before cursor. A search with no matches returns an empty posts list. Views are the preview's abbreviated figures (for example 32.4K) and are approximate above 1,000. Media entries carry thumbnail references only, never playable file URLs. Polls, documents, voice notes and stickers appear as an unsupported media entry. Private channels, groups, bots, user accounts and channels that disabled their web preview are not supported. Telegram's terms restrict using platform content to train AI or machine-learning systems, so results must not be used for that purpose.
curl 'https://api.crawlora.net/api/v1/telegram/channel-posts?username=durov' \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| username | string | Yes | durov | Public channel username, with or without @ or a t.me link |
| before | integer | No | Return only posts with an id lower than this; use the previous response's next_before. Omit for the newest page | |
| query | string | No | Search term to look for inside the channel, up to 128 characters |
{
"code": 200,
"msg": "OK",
"data": {
"username": "durov",
"title": "Pavel Durov",
"posts": [
{
"id": 531,
"username": "durov",
"url": "https://t.me/durov/531",
"text": "Telegram now has a Rich Text Editor.\n\nIt supports tables, headings, inline media, lists, AI content, formulas, and more.",
"published_at": "2026-07-16T20:45:25+00:00",
"edited": false,
"views": 5840000,
"author": "Pavel Durov",
"media": [
{
"type": "video",
"url": "https://t.me/durov/531",
"thumbnail_url": "https://cdn4.telesco.pe/file/THUMB_ID.jpg"
}
],
"reactions": [
{
"count": 6300,
"paid": true
},
{
"custom_emoji_id": "5265077361648368841",
"count": 54600,
"paid": false
}
]
}
],
"has_more": true,
"next_before": 531
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.