---
title: "Get Telegram channel posts"
method: GET
path: "/v1/telegram/channel/posts"
tags: ["Telegram"]
---

# Get Telegram channel posts

`GET /v1/telegram/channel/posts`

## Request

- Base URL: `https://api.scrapeatlas.com`
- URL: `https://api.scrapeatlas.com/v1/telegram/channel/posts`
- Auth: API key in header `x-api-key`

Read one page of Telegram channel posts, newest first, with channel metadata, media inventory, text, media and reactions. Continue older history with cursor or search within the channel with q. Each successful request costs 1 account credit, including partial results. Failed requests cost 0 credits.

## Query parameters

- `handle` string, required
- `cursor` string
- `q` string
- `since` union
  - number
  - string
- `until` union
  - number
  - string

## Response `200`

Inspect the response status and failure or coverage fields.

- union
  - object
    - `requestId` string, uuid, required
    - `accounting` object, required
      - `upstreamRequests` integer, required
      - `responseBytes` integer, required
      - `durationMs` number, required
      - `coalesced` boolean
    - `success` true, required
    - `status` 'success' | 'partial', required
    - `sourceUrl` string, uri, required
    - `fetchedAt` string, date-time, required
    - `coverage` object, required
      - `source` 'public_preview' | 'public_embed', required
      - `complete` boolean, required
      - `warnings` string[], required
      - `order` 'newest_first' | 'oldest_first' | 'ranked' | 'relevance' | 'source_order', required
      - `window` object
        - `since` string, date-time
        - `until` string, date-time
    - `channel` object, required
      - `handle` string, required
      - `url` string, uri, required
      - `entity_type` 'channel' | 'group' | 'user_or_bot' | 'unknown', required
      - `name` string, required
      - `description` string, nullable, required
      - `avatar_url` string, uri, nullable, required
      - `is_verified` boolean, required
      - `subscriber_count` integer, nullable, required
      - `subscriber_count_text` string, nullable, required
      - `member_count` integer, nullable, required
      - `member_count_text` string, nullable, required
      - `online_count` integer, nullable, required
      - `photo_count` integer, nullable, required
      - `video_count` integer, nullable, required
      - `file_count` integer, nullable, required
      - `link_count` integer, nullable, required
    - `posts` object[], required
      - `id` string, required
      - `channel_handle` string, required
      - `url` string, uri, required
      - `author_name` string, nullable, required
      - `author_url` string, uri, nullable, required
      - `text` string, nullable, required
      - `renderedText` string, nullable, required
      - `published_at` string, date-time, nullable, required
      - `view_count` integer, nullable, required
      - `view_count_text` string, nullable, required
      - `reactions` object[], required
        - `emoji` string, nullable, required
        - `emoji_id` string, nullable, required
        - `count` integer, nullable, required
        - `count_text` string, nullable, required
      - `reaction_count` integer, nullable, required
      - `forwarded_from` object, nullable, required
        - `name` string, nullable, required
        - `url` string, uri, nullable, required
      - `media` object[], required
        - `type` 'photo' | 'video' | 'document' | 'audio', required
        - `url` string, uri, nullable, required
        - `thumbnail_url` string, uri, nullable, required
        - `duration` string, nullable, required
      - `link_preview` object, nullable, required
        - `url` string, uri, nullable, required
        - `site_name` string, nullable, required
        - `title` string, nullable, required
        - `description` string, nullable, required
        - `image_url` string, uri, nullable, required
    - `cursor` string, nullable, required
    - `has_more` boolean, required
  - object
    - `requestId` string, uuid, required
    - `accounting` object, required
      - `upstreamRequests` integer, required
      - `responseBytes` integer, required
      - `durationMs` number, required
      - `coalesced` boolean
    - `success` false, required
    - `status` 'failed' | 'challenged', required
    - `failure` object, required
      - `code` 'invalid_request' | 'unauthorized' | 'not_found' | 'upstream_challenged' | 'upstream_rate_limited' | 'upstream_error' | 'unsupported_page' | 'restricted_page' | 'response_too_large' | 'unsafe_redirect' | 'request_limit' | 'timeout' | 'busy' | 'payload_too_complex', required
      - `message` string, required

## Other responses

- `400`: Request could not complete; inspect error or failure.code.
- `401`: Request could not complete; inspect error or failure.code.
- `402`: Request could not complete; inspect error or failure.code.
- `403`: Request could not complete; inspect error or failure.code.
- `404`: Request could not complete; inspect error or failure.code.
- `408`: Request could not complete; inspect error or failure.code.
- `413`: Request could not complete; inspect error or failure.code.
- `429`: Request could not complete; inspect error or failure.code.
- `500`: Request could not complete; inspect error or failure.code.
- `502`: Request could not complete; inspect error or failure.code.
- `503`: Request could not complete; inspect error or failure.code.
- `504`: Request could not complete; inspect error or failure.code.

---

[API](https://skmtc.dev/scrapeatlas/apis/scrapeatlas-api.md) · [All operations](https://skmtc.dev/scrapeatlas/apis/scrapeatlas-api/llms.txt) · [OpenAPI document](https://skmtc.dev/scrapeatlas/apis/scrapeatlas-api/revisions/9ba049316894?raw)
