Telegram hub

Telegram Channel API

Resolve a public Telegram username to channel or group metadata — without a userbot session or Bot API token.

GET /v1/telegram/channels/{handle}

1 credit per successful request.

About this endpoint

Crypto monitors, news desks, and research tools often need a Telegram card before they ingest posts: does this username resolve, is it a broadcast channel or a public group, and what does Telegram show for size. Running that through an MTProto userbot means session files, flood waits, and account risk. Most enrichment jobs only need the public t.me page.

`GET /v1/telegram/channels/{handle}` is the dedicated lookup. Pass the public username (with or without a leading `@`), send `x-api-key`, and read `data.lookupStatus` before you write a row. On `found`, `data.entity` carries title, description, avatar, verification, and the size fields that match the entity type — `subscriberCount` for channels, `memberCount` / `onlineCount` for public groups. `not_found` and `restricted` return null entity data; HTTP 200 still means the request finished.

Credit pricing for this operation comes from the API registry and appears on this page, and `meta.creditsCharged` is the billing source of truth. For recent posts, use the separate channel-posts list route; this endpoint stops at the entity card.

Telegram Channel API FAQ

How do I fetch a Telegram channel by handle?

Call GET /v1/telegram/channels/{handle} with your Social Fetch API key in the x-api-key header. The handle is the public @username. Full parameters and examples are in the API docs linked from this page.

How many credits does a Telegram channel lookup cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged — that field is the billing source of truth.

Do I need a Telegram Bot API token or userbot?

No. Social Fetch authenticates with your Social Fetch API key only. You do not run a Telegram client session or pass Bot API credentials for this public lookup.

What does lookupStatus mean?

found means data.entity is populated. not_found means the username did not resolve to a public page. restricted covers private user or bot contact pages that are not scrapable as public channel or group metadata. Always branch on lookupStatus before treating the payload as a found entity.

Does this work for public groups as well as channels?

Yes. The route resolves public Telegram usernames for channels and groups. On found, entity.entityType tells you which kind you got, and size fields differ: channels use subscriberCount; groups use memberCount and onlineCount when Telegram shows them.

Is this the same as listing channel posts?

No. This endpoint returns the entity card only. To list recent posts, use GET /v1/telegram/channels/{handle}/posts (a separate marketplace operation; groups are not supported on the posts routes).

Can I use this for monitoring or enrichment jobs?

Yes. Teams use the channel route to verify usernames before monitoring, hydrate directory cards, and refresh public size metrics on a schedule. Pair it with the posts routes when the job needs message content, not just identity.