> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/telegram>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/telegram.mdx>

---

# Telegram scraper API. Read any public channel.

Channel details, post lists and single posts from public t.me channels, as JSON in one request. No bot token and no userbot session.

- No bot token
- Public channels by URL

Social Fetch exposes public Telegram as GET routes. Pass a public `@username` or post id with `x-api-key` and get `{ data, meta }` with `data.lookupStatus`, `meta.requestId`, and `meta.creditsCharged`.

Coverage: public channel and group entity cards, broadcast-channel post lists with cursor pagination, and single-post lookups by numeric id. Private chats and DMs are out of scope. Use Bot API for sending messages or managing a bot.

## What you can get

- Public channel and group metadata by username — title, description, avatar, verification, size fields.
- Channel post lists (broadcast channels) with text, views, media URLs, reactions, and cursor pagination.
- Single channel post by username and numeric post id for alerts and deep links.
- Shared Social Fetch envelope so Telegram rows land next to other networks in one schema.

## Telegram endpoints

| Endpoint | Request | Credits | Docs |
| --- | --- | --- | --- |
| Channel | GET /v1/telegram/channels/{handle} | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/telegram/channels/handle/get) |
| Channel posts | GET /v1/telegram/channels/{handle}/posts | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/telegram/channels/handle/posts/get) |
| Channel post | GET /v1/telegram/channels/{handle}/posts/{postId} | 1 credit Failed requests are free | [docs](https://www.socialfetch.dev/docs/api/v1/telegram/channels/handle/posts/postid/get) |

## How to start

1. **Create an API key.** Sign up at Social Fetch and copy a key (`sfk_…`). New accounts get 100 free credits — enough to resolve one channel card and page a few posts against live data.
2. **Call a Telegram route.** Start with `GET /v1/telegram/channels/{handle}` for the entity card, then `.../posts` or `.../posts/{postId}` when you need messages. Send `x-api-key` on every request. Use the playground for one-off checks; use the TypeScript SDK or curl in production jobs.
3. **Read the shared envelope.** Branch on `data.lookupStatus` before writing rows. Log `meta.requestId` for support. Bill against `meta.creditsCharged` — that field is the source of truth for what the call cost.

## Pricing

Telegram channel, posts list, and single-post routes charge 1 credit per successful completed lookup in the OpenAPI notes. Credits never expire on pay-as-you-go packs. Always trust `meta.creditsCharged` on the response.

## Compared with the official API

Telegram Bot API and MTProto are for bots, clients, and user-authorized apps. Social Fetch looks up public t.me pages with a Social Fetch API key only — no Bot token, no userbot session.

## FAQ

### Is there a Telegram scraper API that works without a userbot?

Yes. Social Fetch Telegram routes read public channel and post data over REST. You authenticate to Social Fetch with an API key — you do not run an MTProto client session or pass Telegram user credentials.

### What Telegram data does Social Fetch cover?

Public channel and group entity cards by username, recent posts for broadcast channels (with cursor pagination), and a single post by username plus numeric post id. Exact paths live under `/docs/api` and on this hub's endpoint list. Private chats and DMs are not covered.

### Telegram Bot API vs Social Fetch — what is the difference?

Bot API is for building bots that send and receive messages inside Telegram (you need a bot token from BotFather). Social Fetch is a public-data lookup API: username or post id in, structured JSON out, no bot required. Choose Bot API when you need write access or bot interactions; choose Social Fetch for public channel enrichment and monitoring alongside other networks.

### Do I need a Telegram Bot API token?

No. Social Fetch authenticates with your Social Fetch API key only. You do not pass a Bot API token for these public lookups.

### Can I list posts from a public Telegram group?

No. Post list and single-post routes support public broadcast channels only. Groups are not supported on those operations. Use `GET /v1/telegram/channels/{handle}` when you need group metadata (title, member counts) from a public username.

### How do I fetch a Telegram channel by handle?

Call `GET /v1/telegram/channels/{handle}` with `x-api-key`. The handle is the public `@username` (with or without `@`). Read `data.lookupStatus` before treating `data.entity` as found. Details are on the channel endpoint page linked below.

### How do I list or fetch Telegram channel posts?

List recent messages with `GET /v1/telegram/channels/{handle}/posts` and page with the opaque `cursor` from `data.nextCursor` while `data.hasMore` is true. Fetch one message with `GET /v1/telegram/channels/{handle}/posts/{postId}` when you already know the numeric id from a t.me URL.

### How much does the Telegram API cost?

You buy credit packs (or use the 100 free signup credits). The Telegram channel, posts list, and single-post operations document 1 credit per successful request. Check `meta.creditsCharged` on every response. There is no required monthly subscription for pay-as-you-go packs.

### Can I read private Telegram chats or invite-only channels?

No. Only publicly visible channel and group pages. Restricted or private entities return typed `lookupStatus` outcomes (`not_found` / `restricted`) rather than inventing empty payloads.

### Is scraping Telegram data legal?

Social Fetch returns publicly visible data. You are responsible for how you use it under Telegram's terms, applicable law, and your own compliance review. We do not give legal advice.

## Related

- [Telegram channel by handle](https://www.socialfetch.dev/platforms/telegram/channels-handle): Entity card: title, description, subscriber or member counts, lookupStatus.
- [Telegram channel posts list](https://www.socialfetch.dev/platforms/telegram/channels-handle-posts): Page recent broadcast-channel messages with cursor pagination.
- [Telegram channel post by ID](https://www.socialfetch.dev/platforms/telegram/channels-handle-posts-postid): Single message lookup when you already know the numeric post id.
- [Social monitoring use case](https://www.socialfetch.dev/use-cases/social-media-monitoring-api)
