Skip to content
scrapeatlas.Dashboard

Get a Telegram channel

Try in Playground

Read public Telegram channel and group metadata, descriptions, avatars and audience counts. Optionally include photo, video, file and link inventory. The channel and profile routes are equivalent.

GET/v1/telegram/channelx-api-key
x-api-keystringrequiredheader

Your ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.

Query parameters
2
handlestringrequiredquery

Required public handle, @handle or HTTPS t.me/handle URL.

max 128 chars

Exampleexample
include_inventoryenumquery

Optional true or false; include channel media inventory with the profile.

one of: true, false

Response fields
31
requestIdstring

Random operational correlation ID.

Source attempts, decoded bytes, elapsed time and whether an active source request was shared.

accounting.upstreamRequestsinteger

Always included.

≥ 0

accounting.responseBytesinteger

Always included.

≥ 0

accounting.durationMsnumber

Always included.

≥ 0

accounting.coalescedbooleanoptional

Optional.

successboolean

Whether usable profile data was returned.

statusenum

success, partial, failed or challenged.

one of: success, partial

Public channel and group metadata with rendered descriptions and audience counts.

profile.handlestring

Canonical lowercase username.

profile.urlstring

Canonical t.me URL.

absolute HTTPS URL

profile.entity_typeenum

channel, group, user_or_bot or unknown, based on the landing page.

one of: channel, group, user_or_bot, unknown

profile.namestring

Public display name.

min 1 chars

profile.descriptionstringnullable

Public description with visible inline text and rendered line breaks. Null when absent.

profile.avatar_urlstringnullable

Public HTTPS avatar URL, or null when absent.

profile.is_verifiedboolean

Whether the page displays a verified badge.

profile.subscriber_countintegernullable

Numeric channel subscriber count derived from the displayed count.

profile.subscriber_count_textstringnullable

Original displayed subscriber count, retaining abbreviations.

profile.member_countintegernullable

Public group member count; null for channels.

profile.member_count_textstringnullable

Original displayed member count, retaining abbreviations.

profile.online_countintegernullable

Group online count when shown, otherwise null.

profile.photo_countintegernullableoptional

Displayed inventory count when include_inventory=true; null when absent.

profile.video_countintegernullableoptional

Displayed inventory count when include_inventory=true; null when absent.

profile.file_countintegernullableoptional

Displayed inventory count when include_inventory=true; null when absent.

profile.link_countintegernullableoptional

Displayed inventory count when include_inventory=true; null when absent.

sourceUrlstring

Canonical public profile URL.

absolute HTTPS URL

fetchedAtstring

UTC retrieval timestamp.

Field coverage and extraction warnings.

coverage.sourceenum

Always included.

one of: public_page, public_preview

coverage.completeboolean

Always included.

coverage.warningsenum[]

Always included.

HTTP 200 returns the success variant. Check status: partial means usable data with warnings, and failed or challenged requests carry a failure object described in Errors & responses.

Error codes
10
HTTPfailure.codeMeaning
400invalid_requestMissing, duplicate, unsupported or invalid parameters.
401unauthorizedMissing or invalid service key.
403restricted_pagePublic page explicitly reports restricted access.
404not_foundMissing profile or generic contact fallback.
429upstream_rate_limitedNo automatic retry.
502upstream_challenged unsupported_pageChallenge, unrecognized page or identity mismatch.
502upstream_error unsafe_redirect response_too_large payload_too_complex request_limitBounded retrieval failed.
503busyAll worker slots occupied.
504timeoutDeadline exceeded.
200partialUnknown entity type or unavailable displayed counts.