Telegram API endpoint
Returns the public profile of a Telegram channel: title, description, verification badge, subscriber count, and the photo, video, file and link counters shown on the channel's public web preview (t.me/s/{username}). username is the channel's public username, with or without a leading @ or a t.me link; private channels, groups, bots, user accounts and invite links are not supported and return an error that says which kind of name was given. subscribers is the exact figure when available; subscribers_approximate is true when only the preview's abbreviated figure (for example 10.3M) could be read. The photo, video, file and link counters are the preview's abbreviated figures and are approximate for large channels. Only public content is read, no media files are returned, and Telegram's terms restrict using platform content to train AI or machine-learning systems, so results must not be used for that purpose.
/telegram/channelusername is required: the channel's public username, with or without a leading @ or a t.me link (durov, @durov, https://t.me/durov and t.me/s/durov all work).
Notable response behavior:
400 that says which kind of name was given. A username nobody owns returns 404, and so does a channel whose owner turned off the web preview.subscribers is the exact figure when available. subscribers_approximate is true only when just the preview's abbreviated figure (for example 10.3M) could be read.photos_count, videos_count, files_count and links_count are the preview's own header counters. Telegram abbreviates large values, so they are approximate for big channels.avatar_url is a link to Telegram's image host; no image data is returned.| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| username | string | Yes | Public channel username, with or without @ or a t.me link | durov | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/telegram/channel?username=durov" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"username": "durov",
"title": "Pavel Durov",
"description": "Founder of Telegram.",
"verified": true,
"subscribers": 10255802,
"subscribers_approximate": false,
"photos_count": 102,
"videos_count": 47,
"files_count": 0,
"links_count": 200,
"avatar_url": "https://cdn4.telesco.pe/file/AVATAR_ID.jpg",
"url": "https://t.me/durov",
"preview_url": "https://t.me/s/durov"
}
}Request schema
No body schema
Response schema
#/definitions/telegram.channelResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | telegram.ChannelResponse | No | ||||
| data.avatar_url | string | No | ||||
| data.description | string | No | ||||
| data.files_count | integer | No | ||||
| data.links_count | integer | No | ||||
| data.photos_count | integer | No | ||||
| data.preview_url | string | No | ||||
| data.subscribers | integer | No | ||||
| data.subscribers_approximate | boolean | No | ||||
| data.title | string | No | ||||
| data.url | string | No | ||||
| data.username | string | No | ||||
| data.verified | boolean | No | ||||
| data.videos_count | integer | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/telegram/channel?username=durov" \
-H "x-api-key: $CRAWLORA_API_KEY"