Introducing the Instagram APIRead more →

Telegram Post API. Send a post link.

Views, reactions, media and forwards. We handle the proxies, blocks and platform changes.

Telegram Post API at a glance

Returns one post of a public Telegram channel or group from its t.me link, with its text, media, views and reactions. It also has the links, hashtags and mentions in it, its date, photos, albums, videos, voice messages and stickers with their files, its poll, link preview and file, what it was forwarded from or replies to, whether it was edited, its signature, and the channel's numeric ID. Accepts links on t.me, telegram.me and telegram.dog, or the post's id.

GET /v1/telegram/post

Read the API reference
  • 1 credit per request, $0.75–$1.97 per 1,000 requests
  • 22 typed fields null when unknown
  • url is all it needs, e.g. https://t.me/durov/546
  • 100 credits free when you sign up, no card, so you can build before you spend

Send one request. Get 22 fields back.

Copy the request in your language, or hand it to your agent. Sign up for an API key and your first 100 credits are free.

$ npm install socialtap
url = https://t.me/durov/546
GET /v1/telegram/postTry in
const params = new URLSearchParams({
  url: "https://t.me/durov/546",
});
const res = await fetch(`https://socialtap.dev/v1/telegram/post?${params}`, {
  headers: { "x-api-key": process.env.SOCIALTAP_API_KEY ?? "" },
});
const body = await res.json();
if (!res.ok) throw new Error(`${body.error.code}: ${body.error.message}`);
const { data, meta } = body;
console.log(data, meta.credits_charged);
200 OK · GET https://socialtap.dev/v1/telegram/postLong arrays and strings are shortened here. Real responses are complete.Docs

One schema on 21 platforms.

The response reference lists every field, its type and when it is null. See the full schema.

  • Null means unknown

    A field Telegram doesn't show is null, never zero or an empty string, so a real zero always means zero.

  • What it accepts

    A Telegram post: its link (t.me/<name>/<number>, also on telegram.me and telegram.dog, the channel page's t.me/s/<name>/<number>, a forum topic's t.me/<name>/<topic>/<number>, the account's own host <name>.t.me/<number>, with any query) or its id as this API writes it (<name>/<number>).

  • Write one parser

    Telegram, TikTok, Instagram and 18 more platforms answer in these fields, so the code that reads one reads them all.

platformstring
Platform ID (tiktok, youtube, …).
idstring
Platform-native post ID (string; Instagram shortcode, Reddit with its t3_ prefix).
urlstring
Canonical post URL.
typestring
Normalized content shape. New values may be added; treat unknown values as other.
platform_typestring
The platform's own product label, lowercase (reel, short, story, live, tweet, …).
titlestring
Headline (YouTube title, Reddit title); null on caption-only platforms.
textstring
Caption, description or body as plain text.
languagestring
BCP-47 language of text, when the platform states it.

What teams build with the Telegram Post API.

  • Read a post from a shared link

  • Track a post's views and reactions over time

  • Read a public group's message by link

  • Trace a forward to its original post

Good to know before you build.

  • Views, reactions and voters are as Telegram shows them, rounded from the thousands up (10.4K), and the rounded ones are listed in approximate_fields.
  • An album returns under the number you asked, with all of its files, whichever of its numbers you asked. The Telegram Channel Posts API lists it under its first number.
  • A link with ?comment= returns the post the comment is under, not the comment.
  • In a public group, author is the member who sent the message. A member without a username has nothing to refer to them by, so author is then the group and platform_specific.telegram.sender_name the member's name.
  • Service messages (a channel's creation, a changed name or photo) return platform_type service and their sentence as text. In a group the page doesn't show the sentence, so text is null.
  • Telegram's pages sometimes leave a forward's origin out: forwarded_from is then present with a null name and url.
  • Media links can stop working after a while, so download what you need promptly. A video too big for Telegram's web page has its poster and duration but no url.
  • Some posts Telegram's web page won't show ("Please open Telegram to view this post"). They return platform_type unsupported, their date, views and reactions, null text, and media among their unknown_fields: their [] means unknown, not none.
  • An audio file is a post of type audio with its title and performer in platform_specific.telegram.document. Telegram's web page doesn't link the file, so its media url is null.
  • A post that doesn't exist returns not_found, as does a name that is no channel or group, since Telegram says the same of a user and a bot. A channel Telegram won't display returns private_or_unavailable, with its reason where it gives one, and this can depend on the country a request leaves from.

1 credit per request. Failed requests are free.

Buy credits once and spend them on any endpoint, on any platform.

SourcePrice per successful requestPer 1,000 requests
Public page page1 credit$0.75–$1.97
  • Cache hits are free.
  • Credits from packs and top-ups never expire.
  • A monthly plan's credits are spent first, and what is left of them ends at each renewal.
  • Prices exclude tax: sales tax is added at checkout where it applies.
  • Outside the US, plans and packs are sold to businesses: checkout asks for your VAT, GST or other business tax ID.

Questions about the Telegram Post API.

More in the API reference.

How much does the Telegram Post API cost?
A request costs 1 credit. SocialTap credits cost $0.75–$1.97 per 1,000, depending on the plan or pack.

Try it on a link you already have.

Paste it in the playground, or copy the request into your code.

100free credits
  • No credit card
  • Failed requests are free
  • Works on all 218 endpoints
Start for free Read the docs