Telegram

3 endpoints.

GET /v1/telegram/channel

Channel Details

Retrieves public Telegram channel or group metadata including its name, description, avatar, verification status, subscriber or member count, and public media counters. This endpoint uses Telegram's public web preview and does not use a logged-in Telegram account. Private channels, invite-only groups, numeric IDs, and channels with no public web preview are not supported.

Parameters

NameInTypeDescription
handle requiredquerystringPublic Telegram handle, @handle, or t.me channel URL.
cache_max_agequerystringIf we have a response in the cache that is this many days old or newer, return the cached response (0 credits, with "cached": true and a "cached_at" timestamp). Otherwise, scrape a live result (1 credit). See the Caching page for details.
one of: 1d, 3d, 7d, 14d, 30d

Request

curl "https://api.scrapall.bipsport.com/scapi/v1/telegram/channel?handle=telegram" \
  -H "X-Scapi-Key: YOUR_API_KEY"
const res = await fetch("https://api.scrapall.bipsport.com/scapi/v1/telegram/channel?handle=telegram", {
  headers: { "X-Scapi-Key": "YOUR_API_KEY" }
});
const data = await res.json();
import requests

r = requests.get(
    "https://api.scrapall.bipsport.com/scapi/v1/telegram/channel?handle=telegram",
    headers={"X-Scapi-Key": "YOUR_API_KEY"},
)
print(r.json())

Response 200 (sample)

{
  "handle": "telegram",
  "name": "Telegram News",
  "description": "The official Telegram on Telegram. Much recursion. Very Telegram. Wow.",
  "url": "https://t.me/telegram",
  "avatar_url": "https://cdn1.telesco.pe/file/...",
  "is_verified": true,
  "subscriber_count": 9780000,
  "subscriber_count_text": "9.78M",
  "member_count": null,
  "member_count_text": null,
  "photo_count": 14,
  "video_count": 225,
  "file_count": null,
  "link_count": 372
}

GET /v1/telegram/channel_posts

Channel Posts

Retrieves one public web-preview page of Telegram posts with text, publish date, views, reactions when exposed, forwards, media previews, and link previews. Pass the returned cursor to fetch the previous page. Empty and terminal pages are not charged. Telegram does not expose every field on every public post, so reactions and downloadable media URLs can be absent. This endpoint does not support private or invite-only channels and groups.

Parameters

NameInTypeDescription
handle requiredquerystringPublic Telegram handle, @handle, or t.me channel URL.
cache_max_agequerystringIf we have a response in the cache that is this many days old or newer, return the cached response (0 credits, with "cached": true and a "cached_at" timestamp). Otherwise, scrape a live result (1 credit). See the Caching page for details.
one of: 1d, 3d, 7d, 14d, 30d
next_cursorquerystringNumeric cursor returned by the previous page. Omit it for the latest posts.

Request

curl "https://api.scrapall.bipsport.com/scapi/v1/telegram/channel_posts?handle=durov" \
  -H "X-Scapi-Key: YOUR_API_KEY"
const res = await fetch("https://api.scrapall.bipsport.com/scapi/v1/telegram/channel_posts?handle=durov", {
  headers: { "X-Scapi-Key": "YOUR_API_KEY" }
});
const data = await res.json();
import requests

r = requests.get(
    "https://api.scrapall.bipsport.com/scapi/v1/telegram/channel_posts?handle=durov",
    headers={"X-Scapi-Key": "YOUR_API_KEY"},
)
print(r.json())

Response 200 (sample)

{
  "channel": {
    "handle": "durov",
    "name": "Pavel Durov",
    "description": "Founder of Telegram.",
    "url": "https://t.me/durov",
    "avatar_url": "https://cdn1.telesco.pe/file/...",
    "is_verified": true,
    "subscriber_count": 11100000,
    "subscriber_count_text": "11.1M",
    "member_count": null,
    "member_count_text": null,
    "photo_count": 14,
    "video_count": 225,
    "file_count": null,
    "link_count": 372
  },
  "posts": [
    {
      "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 approved, Telegram users could get their own second-level domains.",
      "published_at": "2026-08-18T17:37:31+00:00",
      "view_count": 1210000,
      "view_count_text": "1.21M",
      "reactions": [
        {
          "emoji": "⭐",
          "emoji_id": null,
          "count": 16300,
          "count_text": "16.3K"
        }
      ],
      "reaction_count": 89300,
      "forwarded_from": null,
      "media": [],
      "link_preview": null
    }
  ],
  "next_cursor": "523",
  "has_more": true
}

GET /v1/telegram/post

Post Details

Retrieves one public Telegram post with its text, publish date, views, reactions when exposed, forward source, media previews, and link preview. This endpoint uses Telegram's public post widget without a logged-in account. Private and invite-only posts are not supported.

Parameters

NameInTypeDescription
url requiredquerystringPublic Telegram post URL.
cache_max_agequerystringIf we have a response in the cache that is this many days old or newer, return the cached response (0 credits, with "cached": true and a "cached_at" timestamp). Otherwise, scrape a live result (1 credit). See the Caching page for details.
one of: 1d, 3d, 7d, 14d, 30d

Request

curl "https://api.scrapall.bipsport.com/scapi/v1/telegram/post?url=https://t.me/durov/543" \
  -H "X-Scapi-Key: YOUR_API_KEY"
const res = await fetch("https://api.scrapall.bipsport.com/scapi/v1/telegram/post?url=https://t.me/durov/543", {
  headers: { "X-Scapi-Key": "YOUR_API_KEY" }
});
const data = await res.json();
import requests

r = requests.get(
    "https://api.scrapall.bipsport.com/scapi/v1/telegram/post?url=https://t.me/durov/543",
    headers={"X-Scapi-Key": "YOUR_API_KEY"},
)
print(r.json())

Response 200 (sample)

{
  "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 approved, Telegram users could get their own second-level domains.",
  "published_at": "2026-08-18T17:37:31+00:00",
  "view_count": 1210000,
  "view_count_text": "1.21M",
  "reactions": [
    {
      "emoji": "⭐",
      "emoji_id": null,
      "count": 16300,
      "count_text": "16.3K"
    }
  ],
  "reaction_count": 89300,
  "forwarded_from": null,
  "media": [],
  "link_preview": null
}