TELEGRAM API
Channel Posts
Retrieve channel posts from Telegram with a single API request.
GET
/api/data/v1/telegram/channel/posts1credit base costZero-credit cache supported
Request parameters
Up to 1 creditPublic Telegram handle, @handle, or t.me channel URL.
Numeric cursor returned by the previous page. Omit it for the latest posts.
If we have a response in the cache that is this many days old or newer, return the cached response (0 credits, with "cached": true and a "cached_at" timestamp). Otherwise, scrape a live result (1 credit). [See the Caching page for details.]
Live requests use your prepaid balance. Cached responses cost zero where supported.
curl --request GET \
--url 'https://fetchgoblin.com/api/data/v1/telegram/channel/posts?handle=durov' \
--header 'x-api-key: YOUR_FETCHGOBLIN_API_KEY'Response
Example{
"success": true,
"channel": {
"handle": "durov",
"name": "Pavel Durov",
"description": "Founder of Telegram.",
"url": "https://t.me/durov",
"avatar_url": "https://cdn1.telesco.pe/file/...",
"is_verified": true,
"subscriber_count": 11100000,
"subscriber_count_text": "11.1M",
"member_count": null,
"member_count_text": null,
"photo_count": 14,
"video_count": 225,
"file_count": null,
"link_count": 372
},
"posts": [
{
"id": "543",
"channel_handle": "durov",
"url": "https://t.me/durov/543",
"author_name": "Pavel Durov",
"author_url": "https://t.me/durov",
"text": "Telegram has applied for the .gram domain zone. If approved, Telegram users could get their own second-level domains.",
"published_at": "2026-08-18T17:37:31+00:00",
"view_count": 1210000,
"view_count_text": "1.21M",
"reactions": [
{
"emoji": "⭐",
"emoji_id": null,
"count": 16300,
"count_text": "16.3K"
}
],
"reaction_count": 89300,
"forwarded_from": null,
"media": [],
"link_preview": null
}
],
"cursor": "523",
"has_more": true,
"credits_charged": 1,
"credits_remaining": 1000,
"request_id": "00000000-0000-4000-8000-000000000000"
}Example data from the API specification. Run a request to retrieve current data.
Response shape
This schema describes the documented data shape. Some platform fields may be absent or null. The response also includes your FetchGoblin request ID and current credit balance.
View JSON Schema +
{
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"channel": {
"type": "object",
"properties": {
"handle": {
"type": "string"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"url": {
"type": "string"
},
"avatar_url": {
"type": "string"
},
"is_verified": {
"type": "boolean"
},
"subscriber_count": {
"type": "integer"
},
"subscriber_count_text": {
"type": "string"
},
"member_count": {
"type": [
"string",
"object",
"array",
"number",
"boolean",
"null"
]
},
"member_count_text": {
"type": [
"string",
"object",
"array",
"number",
"boolean",
"null"
]
},
"photo_count": {
"type": "integer"
},
"video_count": {
"type": "integer"
},
"file_count": {
"type": [
"string",
"object",
"array",
"number",
"boolean",
"null"
]
},
"link_count": {
"type": "integer"
}
}
},
"posts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"channel_handle": {
"type": "string"
},
"url": {
"type": "string"
},
"author_name": {
"type": "string"
},
"author_url": {
"type": "string"
},
"text": {
"type": "string"
},
"published_at": {
"type": "string"
},
"view_count": {
"type": "integer"
},
"view_count_text": {
"type": "string"
},
"reactions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"emoji": {
"type": "string"
},
"emoji_id": {
"type": [
"string",
"object",
"array",
"number",
"boolean",
"null"
]
},
"count": {
"type": "integer"
},
"count_text": {
"type": "string"
}
}
}
},
"reaction_count": {
"type": "integer"
},
"forwarded_from": {
"type": [
"string",
"object",
"array",
"number",
"boolean",
"null"
]
},
"media": {
"type": "array"
},
"link_preview": {
"type": [
"string",
"object",
"array",
"number",
"boolean",
"null"
]
}
}
}
},
"cursor": {
"type": "string"
},
"has_more": {
"type": "boolean"
},
"credits_charged": {
"type": "integer",
"minimum": 0,
"description": "FetchGoblin credits charged for this request."
},
"credits_remaining": {
"type": "integer",
"description": "Your FetchGoblin credit balance after this request."
},
"request_id": {
"type": "string",
"format": "uuid",
"description": "FetchGoblin request identifier."
}
}
}