A guided live test. Prefer the raw endpoints? See the API reference & playground →
Paste an API key from your Dashboard to unlock every endpoint below. It stays in your browser only.
Please paste your API key first.
Your API key is attached automatically to each call.
/api/project/telegram/check-exists Check Telegram Peer Exists
Resolve a peer and return whether it exists on Telegram. Cheapest query; use it to pre-validate numbers/usernames before the about/picture queries. When exists=true, the response also includes the numeric Telegram user id, username (when the peer has one), display name, and a userHash that must be passed to Get About / Get Picture to authorize the heavier lookup. The userHash is valid for 24 hours. When the peer cannot be resolved, exists=false and reason carries the upstream error code (e.g. PHONE_NOT_OCCUPIED, USERNAME_NOT_OCCUPIED). The peer accepts three forms: +phone (digits with a leading +, e.g. +8613800138000), @username or a bare username, and user:<id> for a numeric user ID.
| Parameter | In | Value |
|---|---|---|
peer* | path |
/api/project/telegram/get-about Get About / Bio Text
Retrieve a Telegram user's public bio (About) text, plus the numeric user id and username. Two-step flow: first call Check Telegram Peer Exists to obtain a userHash for the target peer, then pass that userHash here. Calls without a valid (or expired/unknown) userHash are rejected without hitting the upstream. The peer is resolved from the userHash server-side — no peer parameter is accepted. If the peer does not exist, exists=false and reason explains why. An empty about means the user has no bio or hides it. If the peer exists but is a group/channel rather than a user, the response carries a bad-request business code.
| Parameter | In | Value |
|---|---|---|
userHash* | query |
/api/project/telegram/get-picture Get Profile Photo (Avatar)
Fetch a Telegram user's profile photo. Two-step flow: first call Check Telegram Peer Exists to obtain a userHash for the target peer, then pass that userHash here. Calls without a valid (or expired/unknown) userHash are rejected without hitting the upstream. The peer is resolved from the userHash server-side — no peer parameter is accepted. Telegram photos have no public URL, so the photo is returned base64-encoded with its MIME type (image/jpeg) — decode the data field to get the image bytes. pictureSet=false means the user has no photo or hides it by privacy settings. If the peer does not exist, exists=false and reason explains why.
| Parameter | In | Value |
|---|---|---|
userHash* | query |