fetchproof.

/v1/telegram/channel/posts

GET

Channel Posts

Get one page of recent public posts from a Telegram channel or group.

Credit cost

Default: 1 credit

How charges are determined

Cost is decided per call, not per endpoint: the same operation can cost different amounts depending on what it returns.

A call that fails costs 0 credits. A result served from cache costs 0 credits.

`default` is the cost when no rule matches. Rules are evaluated in order and the first whose conditions all hold wins.

A `when` condition is one of: `param` (the request parameter is true), `outcome` (the classifier's outcome), `empty` / `nonEmpty` (a response field is empty and absent, or a non-empty array or string), `flag` (a response field is exactly true).

A cost of `{ perStartedMinute: n, of: [fields] }` is n x max(1, ceil(seconds / 60)), so even a short result bills at least one minute.

Cache supportUse a cached response this old or newer for 0 credits. If none is available, fetch live at the endpoint’s normal price.
PaginationNo explicit pagination metadata in the published contract. Consult the parameters and response fields below.

Parameters

NameLocation / requiredSchema
handle

Public Telegram handle, @handle, or t.me channel URL.

query / required

string

cache_max_age

Use a cached response this old or newer for 0 credits. If none is available, fetch live at the endpoint’s normal price.

query / optional

string

Allowed values ["1d","3d","7d","14d","30d"]

cursor

Numeric cursor returned by the previous page. Omit it for the latest posts.

query / optional

string

Request examples

Replace placeholder values and supply your own API key. For operations with a request body, populate the body using the schema above.

cURL
curl --request GET 'https://api.fetchproof.com/v1/telegram/channel/posts?handle=YOUR_HANDLE' \
  --header 'x-api-key: YOUR_API_KEY'
JavaScript
const response = await fetch("https://api.fetchproof.com/v1/telegram/channel/posts?handle=YOUR_HANDLE", {
  method: 'GET',
  headers: { 'x-api-key': process.env.FETCHPROOF_API_KEY }
});
console.log(await response.text());
Python
import os
import requests

response = requests.get("https://api.fetchproof.com/v1/telegram/channel/posts?handle=YOUR_HANDLE",
    headers={"x-api-key": os.environ["FETCHPROOF_API_KEY"]})
print(response.text)

Responses

200Success. Envelope: success / credits_remaining / credits_charged.

application/json

object

successrequired

boolean

credits_remainingrequired

integer

credits_chargedrequired

integer

channelrequired

object

handlerequired

string

namerequired

string

descriptionrequired

string

urlrequired

string

avatar_urlrequired

string

is_verifiedrequired

boolean

subscriber_countrequired

integer

subscriber_count_textrequired

string

member_countrequired

null

member_count_textrequired

null

photo_countrequired

integer

video_countrequired

integer

file_countrequired

null

link_countrequired

integer

postsrequired

array

Array items

object

idrequired

string

channel_handlerequired

string

urlrequired

string

author_namerequired

string

author_urlrequired

string

textrequired

string

published_atrequired

string

view_countrequired

integer

view_count_textrequired

string

reactionsrequired

array

Array items

object

emojirequired

string

emoji_idrequired

string

countrequired

integer

count_textrequired

string

reaction_countrequired

integer

forwarded_fromrequired

null

mediarequired

array

Array items

object

typerequired

string

urlrequired

string

link_previewrequired

object

urlrequired

string

site_namerequired

string

titlerequired

string

descriptionrequired

string

image_urlrequired

string

cursorrequired

string

has_morerequired

boolean

cachedoptional

boolean

cached_atoptional

string

{
  "format": "date-time"
}
401Invalid or missing x-api-key
402No credits remaining
403Upstream denied (age gate, audience controls)
404Resource or endpoint not found
429Rate limited