t APIt.me ↗
Retrieve comments from public Telegram channel posts. Access comment text, author info, timestamps, and media flags via a single structured endpoint.
What is the t API?
The t.me API exposes 1 endpoint — get_comments — that returns structured comment data from any public Telegram channel post. Each response includes up to 8 fields per comment: comment_id, author_name, author_url, text, datetime, reply_text, has_photo, and has_video. Comments are ordered oldest-first, and pagination is handled automatically up to your specified limit.
curl -X GET 'https://api.parse.bot/scraper/198b3ea1-90b0-47b8-a7ac-7a9a302463cb/get_comments?limit=20&channel=ilchegg&post_id=10400' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace t-me-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Telegram Comments API — fetch and inspect discussion comments on public channel posts."""
from parse_apis.Telegram_Comments_API import Telegram, ParseError
client = Telegram()
# Fetch comments from a known public post, capped to 5 items.
for comment in client.discussions.get(channel="ilchegg", post_id="10400", limit=5):
print(comment.author_name, comment.text, comment.datetime)
# Drill-down: take ONE comment and inspect its fields including photo URLs.
first = client.discussions.get(channel="ilchegg", post_id="10400", limit=1).first()
if first:
print(first.comment_id, first.author_name, first.has_photo, first.photo_urls)
# Typed error handling: catch infrastructure-level failures.
try:
result = client.discussions.get(channel="nonexistent_channel_xyz", post_id="1", limit=1).first()
except ParseError as exc:
print(f"Error fetching discussion: {exc}")
print("exercised: discussions.get (list + first + error)")
Retrieve comments from a public Telegram channel post. Comments are returned sorted by time (oldest first). Pagination through older comments is handled automatically until the specified limit is reached. Each comment includes the author name, profile URL, message text, timestamp, media flags, and photo URLs when available. Posts without a linked discussion group return an empty comments list.
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum number of comments to return. |
| channelrequired | string | Telegram channel username (the part after t.me/, e.g. 'ilchegg'). |
| post_idrequired | string | Numeric post ID within the channel (e.g. '10400'). |
{
"type": "object",
"fields": {
"channel": "string",
"post_id": "string",
"comments": "array of comment objects with comment_id, author_name, author_url, text, datetime, reply_text, has_photo, photo_urls, has_video",
"comments_count": "integer — total number of comments on the post"
},
"sample": {
"data": {
"channel": "ilchegg",
"post_id": "10400",
"comments": [
{
"text": "2/2",
"datetime": "2026-06-30T19:23:38+00:00",
"has_photo": true,
"has_video": false,
"author_url": "https://t.me/skravol",
"comment_id": "483893",
"photo_urls": [
"https://cdn4.telesco.pe/file/o6PnToqm3poz4h4HuRvxLg9tPv690ztp7LSigZBCW-HUabjtAO1d2Hh3yoDr3YxeYp5AEbz9Pvpt4JFhsXUJKtjRU4-g9KQI8hS0HpYyB8HHC3A9pvU812gtheafM8_24BTCRl7DhGPTHDajg09W3QcQazs0tFLOmjcxNdBY6fvVSSwqBHkUsxf4Kw43Wtp-CetASuKYBfObkO0N24re504OzjBltZhXmVYbfMzQmnsduGFQ0zOGEdCKpXUMFO26u0rRXvzwG4YSjpBboMivWdu7I9D6aTl2tfGMJ9JKP3Yh1LQMK4PtpLIm6JvzPnDPbNdzIE1IfYfI3Ss_93jj4w.jpg"
],
"reply_text": "2/2",
"author_name": "👁️"
}
],
"comments_count": 238
},
"status": "success"
}
}About the t API
What the API Returns
The get_comments endpoint retrieves comments from a public Telegram channel post identified by a channel username and a numeric post_id. The response includes a top-level comments_count (the total number of comments on the post), an array of comment objects, and the original channel and post_id values echoed back for reference.
Comment Object Fields
Each object in the comments array contains: comment_id (a unique identifier for the comment), author_name (display name), author_url (link to the author's Telegram profile), text (the comment message), datetime (ISO timestamp), reply_text (the text of the parent comment if this is a reply, otherwise null), has_photo (boolean indicating whether the comment contains a photo), and has_video (boolean indicating whether the comment contains a video).
Parameters and Pagination
The two required parameters are channel (the username portion of the channel's t.me URL, e.g. ilchegg) and post_id (the numeric post identifier, e.g. 10400). The optional limit parameter caps how many comments are returned. Pagination through older comments is handled automatically — you specify a limit and the endpoint works backward through the comment thread until that count is reached or all comments are exhausted.
Coverage Constraints
This API only covers public Telegram channels that have an active discussion group attached. Private channels, channels without a linked discussion group, and direct message threads are not accessible. The text field reflects plaintext content; rich formatting such as embedded links within comment text may not be fully preserved.
The t API is a managed, monitored endpoint for t.me — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when t.me changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official t.me API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor audience reactions to specific posts on a public Telegram channel using
textanddatetimefields - Track reply chains within a post using the
reply_textfield to reconstruct threaded discussions - Detect media-heavy discussions by filtering comments where
has_photoorhas_videois true - Aggregate commenter profiles via
author_urlto identify recurring contributors in a channel - Measure post engagement by comparing
comments_countacross multiplepost_idvalues in the same channel - Build a comment archive for a specific Telegram channel post using the
comment_idanddatetimefields - Analyze sentiment or topic trends across comments on a news or crypto channel post
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Telegram have an official developer API for reading channel comments?+
What does the `reply_text` field contain?+
reply_text contains the plaintext of that parent comment. If the comment is not a reply, the field is null. This lets you identify threaded exchanges without needing a separate lookup.Can I retrieve comments from private Telegram channels or groups?+
Does the API return the full message content of comments, including embedded links or formatted text?+
text field returns the plaintext body of each comment. Rich formatting such as inline hyperlinks, bold, or inline mentions may not be fully preserved. The API currently covers text, timestamps, author info, and media presence flags. You can fork it on Parse and revise to add richer formatting extraction if your use case requires it.Can I retrieve all posts from a channel, not just comments on a single post?+
channel and post_id. There is no endpoint for listing all posts in a channel or iterating post IDs automatically. You can fork the API on Parse and revise it to add a post-listing endpoint.