Skip to content

Post

GET/v1/telegram/post1 credit

Returns a single post from a public channel: text, author, publish time, views, reactions, media, link preview, forward source and its poll (question, options, results).

01Query parameters

NameTypeDescription
urlrequiredstringThe public post URL, e.g. `https://t.me/durov/543`.
cache_max_ageoptionalstringAccepted for compatibility: how old a cached answer may be. Every call is fetched fresh, so it does not change the answer or the price.Accepted values:1d3d7d14d30d

02Request

curl "https://api.scrapesocial.ai/v1/telegram/post?url=https%3A%2F%2Ft.me%2Fdurov%2F543" \
  -H "x-api-key: $SCRAPESOCIAL_KEY"

03Responses

Real answers from the API. Lists are shortened to 2 items.

GET /v1/telegram/post?url=https%3A%2F%2Ft.me%2Fdurov%2F543

{
  "success": true,
  "credits_remaining": 4980,
  "credits_charged": 1,
  "id": "543",
  "channel_handle": "durov",
  "url": "https://t.me/durov/543",
  "author_name": "Pavel Durov",
  "author_url": "https://t.me/durov",
  "text": "💎 Telegram has applied for the .gram domain zone. If the application is approved by ICANN, a billion Telegram users could get their own second-level domains. 🖥 For example, @durov would get durov.gram, and @monk would get monk.gram. Users would be able to set up their interactive websites hosted by Telegram — just by typing one prompt ✨",
  "published_at": "2026-08-18T17:37:31+00:00",
  "view_count": 4050000,
  "view_count_text": "4.05M",
  "reactions": [
    {
      "emoji": "⭐",
      "emoji_id": null,
      "count": 17300,
      "count_text": "17.3K"
    },
    {
      "emoji": null,
      "emoji_id": "5373223594484587136",
      "count": 59200,
      "count_text": "59.2K"
    }
  ],
  "reaction_count": 113300,
  "forwarded_from": null,
  "media": [],
  "link_preview": null,
  "poll": null
}

Common to every endpoint

Any route can answer these: a missing or wrong key, no credits left, the platform not answering, or a failure on our side. None of them costs credits.

GET /v1/cosmos/profile?handle=design

{
  "success": false,
  "message": "Invalid API key"
}

04Notes

`view_count` is read from Telegram's rounded figure (`3.96M` becomes 3960000), with the original in `view_count_text`. `poll` (our addition, not in ScrapeCreators' answer) is null without a poll, else its question, type (`regular` or `quiz`), whether it is anonymous, multiple-choice or closed, the exact voter count and each option's percent and votes; a value Telegram's page does not show is null (a closed poll no longer says quiz or anonymous; the correct quiz answer is never shown), and votes are filled only where they follow exactly from the page's result bars. Private and invite-only links (`t.me/c/...`) and other URLs are a free 400; an unknown post is a free 404.

05Errors & credits

Every error has success: false, a real HTTP status and costs no credits.

  • 400missing_parameter

    A required parameter is missing or invalid.

  • 403private_account

    The account is private or age-restricted.

  • 404not_found

    No such account.

  • 503upstream_error

    The platform did not answer; retry shortly.