Telegram public channel posts API
  1. Docs
  2. Telegram
  3. Telegram public channel posts API

Telegram public channel posts API

One web-preview page of posts: text, date, views, reactions, forwards and media previews.

GET /v1/telegram/channel/posts

GET /v1/telegram/channel/posts

One web-preview page of posts: text, date, views, reactions, forwards and media previews. The cursor (a post number) fetches the previous page.

  • Cost: 1 credit
  • Cache: Results are kept up to 30 days; send max_age_days to reuse them for free.
  • Timeout: A request still running after about 25 seconds answers 202 with a job to poll (Batch and jobs).

Parameters#

NameTypeRequiredDescription
handlestringone ofChannel username, without @. Also accepted as username.
urlURLone ofChannel URL (t.me/<name>). Accepted hosts: t.me, telegram.me.

Send at least one of handle, url. If you send several, the first listed is used and the rest are ignored.

Every request also accepts:

  • cursor: the cursor from the previous page (Pagination).
  • trim: true for a smaller response without null fields and extra.
  • raw: true to also get the platform's original object as raw.
  • max_age_days: accept a cached result up to this many days old, for 0 credits (Caching).

Example request#

Set your key in the environment first (see Authentication).

1curl -G "https://api.socialscrape.dev/v1/telegram/channel/posts" \2  -H "x-api-key: $SOCIALSCRAPE_API_KEY" \3  --data-urlencode "handle=durov"

Example response#

This is a sample from a recorded response, lists and long text are shortened. Status 200.

200 OKSample response
1{2  "ok": true,3  "credits_charged": 1,4  "credits_remaining": 4999,5  "cached": false,6  "cached_at": null,7  "request_id": "req_4bfd4c61bbc632c2ff55f435",8  "data": {9    "object": "list",10    "items": [11      {12        "object": "post",13        "platform": "telegram",14        "id": "552",15        "url": "https://t.me/durov/552",16        "type": "video",17        "author": {18          "id": null,19          "handle": "durov",20          "name": "Pavel Durov",21          "url": "https://t.me/durov",22          "avatar_url": "https://cdn4.telesco.pe/file/E1fT1nGQ1lDmNdTpfhudwrMtUB-bHaQjPg9dJWmN5KP932jw4thhnQURK4_DTwLtKMB7u9r6HqRQSNTZSDpohG0KFjyvUfvqBOMBoBgotUycPBIRIdO6jbVgVFfa2R8DlhaMN_qmA-2ItIIYREsJPt_YGGFq4FAWNchY0p7d09c15aL4NiQh5viq8ID4ddleu6IXRPJ8iSw8tRzkWMN...",23          "verified": true24        },25        "title": null,26        "text": "✨ Designers × AI\n\n🆕 The mockup era is over. Today’s AI tools give every designer a superpower: you can now craft your ideas, not just draw them. \n\nThe gap between “what if…?” and “look, it works!” has never been smaller, and that changed ho...",27        "published_at": "2026-10-11T14:52:40Z",28        "duration_seconds": 75.0,29        "language": null,30        "hashtags": null,31        "mentions": [32          "designers"33        ],34        "stats": {35          "views": 1680000,36          "likes": null,37          "comments": null,38          "shares": null,39          "saves": null,40          "dislikes": null41        },42        "media": {43          "thumbnail_url": "https://cdn4.telesco.pe/file/mGZ4d6UrRGZ0VvkWgcOqP96rxXmjtsXB3ftIiRHuO8f7zPvgrd8XeSUF-_w4JMf9lR2Rm4D--QudMKUTGQ91ZID-CvPFBnnpxyzhk3fhlnPzmm4AtyPX23wHPHjBwOldqFwF8M8Z44K3uMAc71JlvB-qzMR-QUY73PkoYRfFAKcxDh_Z1tA3V0hYv-qowcwfTi76BFAV1tLGp_XKOeN...",44          "video_url": null,45          "audio_url": null,46          "image_urls": null,47          "width": null,48          "height": null49        },50        "song": null,51        "location": null,52        "is_pinned": null,53        "is_sponsored": null,54        "extra": {55          "channel_handle": "durov",56          "forwarded": true,57          "media_note": "Media is too big",58          "reaction_count": 36200,59          "reactions": [60            {61              "count": 7510,62              "count_text": "7.51K",63              "emoji": null,64              "emoji_id": null,65              "paid": true66            },67            {68              "count": 16300,69              "count_text": "16.3K",70              "emoji": null,71              "emoji_id": "5936157098181135162",72              "paid": null73            },74            {75              "count": 6960,76              "count_text": "6.96K",77              "emoji": null,78              "emoji_id": "5399847211989246390",79              "paid": null80            }81          ],82          "signature": "Pavel Durov",83          "view_count_text": "1.68M"84        }85      },86      {87        "object": "post",88        "platform": "telegram",89        "id": "551",90        "url": "https://t.me/durov/551",91        "type": "video",92        "author": {93          "id": null,94          "handle": "durov",95          "name": "Pavel Durov",96          "url": "https://t.me/durov",97          "avatar_url": "https://cdn4.telesco.pe/file/E1fT1nGQ1lDmNdTpfhudwrMtUB-bHaQjPg9dJWmN5KP932jw4thhnQURK4_DTwLtKMB7u9r6HqRQSNTZSDpohG0KFjyvUfvqBOMBoBgotUycPBIRIdO6jbVgVFfa2R8DlhaMN_qmA-2ItIIYREsJPt_YGGFq4FAWNchY0p7d09c15aL4NiQh5viq8ID4ddleu6IXRPJ8iSw8tRzkWMN...",98          "verified": true99        },100        "title": null,101        "text": "💸 If your wallet doesn’t look like this, don’t even bother sending me money for my  birthday! 🎂",102        "published_at": "2026-10-10T14:22:43Z",103        "duration_seconds": null,104        "language": null,105        "hashtags": null,106        "mentions": null,107        "stats": {108          "views": 1830000,109          "likes": null,110          "comments": null,111          "shares": null,112          "saves": null,113          "dislikes": null114        },115        "media": {116          "thumbnail_url": "https://cdn4.telesco.pe/file/drycsCEHu0AFQ4jOTXMks14b7PS8Q13l2JhjSd85axmBGatuJZOKUHsA--bs4qLP4gU3gfMtesA43pJpYOdaLC3LGhJiVAWC0QLknD1KDHuZjXL9yLXp_kaKbuSZeo6RW0dW9tz_FJYWMzJ4AfcXAn1NMmSVaQ-W-PoiUea2zrcUn-8gC4I3UArGlsBQk-A6pnT7Vrnp3bKE0L2rvJB...",117          "video_url": "https://cdn4.telesco.pe/file/f4b10a0c75.mp4?token=fotBcfxRM-axkewLJY9qMvPK4uGvwufmetZduA9ZTH7iUM09kiYiiiUT9dzdFntAfwK_2AR2USpzen3OiqcHH2hn9MpyVL_DOrxANPBTMDeuE22VwS3QtuRkjSaHHiPIoxXYZenD1Mz91DqZXj4JMHXfi_E8EwrAO7AK_3q6z2DaaAEFw16-3RN8WJChmb...",118          "audio_url": null,119          "image_urls": null,120          "width": null,121          "height": null122        },123        "song": null,124        "location": null,125        "is_pinned": null,126        "is_sponsored": null,127        "extra": {128          "channel_handle": "durov",129          "reaction_count": 119920,130          "reactions": [131            {132              "count": 60200,133              "count_text": "60.2K",134              "emoji": null,135              "emoji_id": null,136              "paid": true137            },138            {139              "count": 37300,140              "count_text": "37.3K",141              "emoji": null,142              "emoji_id": "5936157098181135162",143              "paid": null144            },145            {146              "count": 12700,147              "count_text": "12.7K",148              "emoji": null,149              "emoji_id": "5373223594484587136",150              "paid": null151            }152          ],153          "signature": "Pavel Durov",154          "view_count_text": "1.83M"155        }156      }157    ],158    "cursor": "531",159    "has_more": true,160    "parent": {161      "object": "community",162      "platform": "telegram",163      "id": null,164      "url": "https://t.me/durov",165      "kind": "channel",166      "name": "durov",167      "title": "Pavel Durov",168      "description": "Founder of Telegram.",169      "avatar_url": "https://cdn4.telesco.pe/file/E1fT1nGQ1lDmNdTpfhudwrMtUB-bHaQjPg9dJWmN5KP932jw4thhnQURK4_DTwLtKMB7u9r6HqRQSNTZSDpohG0KFjyvUfvqBOMBoBgotUycPBIRIdO6jbVgVFfa2R8DlhaMN_qmA-2ItIIYREsJPt_YGGFq4FAWNchY0p7d09c15aL4NiQh5viq8ID4ddleu6IXRPJ8iSw8tRzkWMN...",170      "banner_url": null,171      "member_count": 10200000,172      "online_count": null,173      "is_nsfw": null,174      "is_private": null,175      "verified": true,176      "created_at": null,177      "extra": {178        "link_count": 200,179        "member_count_text": "10.2M",180        "photo_count": 102,181        "video_count": 47182      }183    }184  },185  "cursor": "531",186  "has_more": true187}

Response#

A list of Post objects in data.items, with data.cursor and data.has_more.

See Data models for every field. The envelope around data is described in Responses.

Errors#

Failures are free: credits_charged is 0. Branch on error.code, never on the message.

CodeHTTPRetryMeaning
invalid_params400noA parameter is missing, unknown or has the wrong type.
unsupported_url400noThe URL is not one this endpoint accepts (wrong platform or form).
not_found404noThe platform says this profile, post or item does not exist.

Every request can also fail with the account and platform errors listed on the Errors page.