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

# Get Telegram posts via /profile/posts

`GET /v1/telegram/profile/posts`

## Request

- Base URL: `https://api.scrapeatlas.com`
- URL: `https://api.scrapeatlas.com/v1/telegram/profile/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)
