POST /v1/telegram/postsTelegram Channel Posts Scraper API
A public Telegram channel's header (counters, description) plus its latest messages (up to 100) with text, media, views and dates.
- Cost
- 2 credits
- Failed requests
- Refunded
- Cache hits
- Free
- Response fields
- 15
- Limits
- Latest 100 messages · public channels only
What the Telegram Channel Posts Scraper API does
The Telegram Channel Posts Scraper API returns a public Telegram channel's header and its latest messages, newest first, up to 100 per request. Each message has its ID, link, type (text, photo, album, video, poll, document, voice, round video or sticker), plain text, photo URLs, video URL, thumbnail and duration, view count, post time in ISO 8601, forward information and link preview. The header includes title, description, photo, verification badge, subscriber count and the number of photos, videos, files and links. Only public channels with a t.me web preview are supported. View and subscriber counts are approximate, with the original compact text alongside. No Telegram account or bot token is needed. Each request costs 2 credits.
What you get
Top-level fields of the response. Every field is typed and documented; nullable fields are null when the platform does not show them.
| Field | Type | Description |
|---|---|---|
username | string | Channel username from page header |
name | string | Channel title |
is_verified | boolean | Has verified badge |
description | string | Channel description; empty string if none |
photo_url | string | null | Channel photo URL |
subscriber_count | integer | null | Approximate subscribers from compact text |
subscriber_count_text | string | null | Raw counter text, e.g. '11M' |
photo_count | integer | null | Approximate number of photos |
video_count | integer | null | Approximate number of videos |
file_count | integer | null | Approximate number of files |
link_count | integer | null | Approximate number of links |
link | string | https://t.me/<username> |
posts_fetched | integer | Number of messages returned |
has_more | boolean | Older messages exist beyond those returned |
posts | array<object> (15 fields each) | Messages, newest first, max limit |
Request example
Send the API key as a Bearer token. The body is a small JSON object.
curl -X POST https://api.scrapeeverything.com/v1/telegram/posts \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"username":"durov","limit":25}'| Parameter | Required | Description |
|---|---|---|
username | Yes | Public channel username, @handle or t.me link. |
limit | No | Maximum number of messages to return. |
What it costs
Each successful request costs 2 credits. Your first 100 credits are free. With credit packs, 1,000 requests to this endpoint cost:
Builder pack
$3.12
25,000 credits for $39.00
Growth pack
$2.38
100,000 credits for $119.00
Scale pack
$1.80
500,000 credits for $449.00
See pricing for all packs and rate limits.
Use cases
- Monitor crypto, news and community channels for new announcements.
- Measure views per message to see which content a channel's audience reads.
- Map which channels forward each other's posts using forwarded_from.
Limitations: Unofficial API: not affiliated with or endorsed by the platform. Public data only, as a logged-out visitor sees it. Only channels with a public t.me web preview; view counts are approximate.
- Public channels with web preview only.
- Up to 100 latest messages. View counts are approximate; the original text is in view_count_text.
Questions
How many messages are returned?
Up to 100 latest messages (default 20), newest first. has_more tells you whether older messages exist.
Do groups and private channels work?
No. Only public channels with a t.me web preview are supported.
Are view counts exact?
No. They are parsed from Telegram's compact text, for example 3.76M. view_count_text holds the original.
How much does the Telegram Channel Posts Scraper API cost?
2 credits per successful request. Credits are bought in one-time packs and never expire. New accounts get 100 free credits. No payment details needed.
Am I charged for failed requests?
No. If the platform blocks the request, it times out or something fails on our side, the credits are refunded automatically. A definitive answer such as "this account does not exist" is billed because the lookup completed.
Can I re-read a result without paying again?
Yes. Send cache_days (1 to 14) and a repeat request for the same target within that window is served from your cache for free.
More Telegram endpoints
Start with 100 free credits.
Continue with Google, create an API key and send your first request in under a minute.