curl --request GET \
--url https://api.scraperize.com/v1/telegram/channel/posts \
--header 'x-api-key: <api-key>'import requests
url = "https://api.scraperize.com/v1/telegram/channel/posts"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.scraperize.com/v1/telegram/channel/posts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.scraperize.com/v1/telegram/channel/posts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.scraperize.com/v1/telegram/channel/posts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.scraperize.com/v1/telegram/channel/posts")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scraperize.com/v1/telegram/channel/posts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"posts": [
{
"id": 460,
"url": "https://t.me/telegram/460",
"handle": "telegram",
"channelId": -1005640892,
"date": "2026-08-26T19:12:34.000Z",
"text": "For all the info from today's update and a look back at 13 years of Telegram features — check out our blog:\nhttps://telegram.org/blog/welcome-messages-buttons-TG-13\n\nAugust Features\n1 • 2 • 3 • 4 • 5 • More",
"views": 1670000,
"author": "Telegram News",
"authorUrl": "https://t.me/telegram",
"authorPhotoUrl": "https://cdn1.telesco.pe/file/uFYNMdturrfQWQKIUN-OOFpGgW51ifC6zoFl5fDK03QXavKQLPsC7MpCEGSN9A7AuEBYSfUUPMZxtGMUXp7Ma4OLu2pPsltHPRzVF2zmVUBiHjV0g7ri29W94kYF5Mrqd8YPzJ4ZE52eEV74TQ6dm9ATYW-LURHPfKCRQuSRxPmJydGQTo-dlzj_kfYqseyxonNUPJiL3MSEwn5CXlGZcgrZLzE8Q3CKXuxPTHg4SkDj_fUB4QKZs-k1tQRGmXPLHljwgH1-u5lkiOTo6Dlitd2memRuSKyhbiaP21gKyNvoPviDJDmThhnGk_oYxSembEWmcxLkTtEeAihAJ9EjOg.jpg",
"verified": false,
"edited": false,
"forwardedFrom": null,
"replyToUrl": null,
"media": [],
"linkPreview": {
"url": "https://telegram.org/blog/welcome-messages-buttons-TG-13",
"siteName": "Telegram",
"title": "Welcome Messages, Buttons in Messages and Signed Gifts",
"description": "Introducing Welcome Messages to greet new members of groups or channels, Buttons in Messages to make any text interactive, Inline Documents in Messages and much more.",
"imageUrl": "https://cdn4.telesco.pe/file/b01OYVU-nzH3fOkm1Atu-cXYGUC4IFztrQILNXi7XNqT3U06FUM6qsx8oxemaGkcZM7gO-R3grt2d5t8LgzYhIQGbBj5DFi7QnMXy9Tbiws9y-yLo_70_MqEyaMeo0wMWpRvQ-6QinclKGZRx3Cd84ahcS8ZGyfNLM-u681NsCAK2CmNK2QxTqMOoTkTRjwhjJzhwd7gTVoEGsvPpYtCMCpoG1brJkS9Lo5zjpWQWkNZlY9csP3YfzrC7HpL9NZx5Bf5XqlAV58lPsf4D6xJMlPYIUHUnwbacY-QyYkX6tohtOf2DnYHjNsYVRdQA2QiNdDS3PLz-iH_cVLyeM_9gw.jpg"
},
"reactions": []
},
{
"id": 459,
"url": "https://t.me/telegram/459",
"handle": "telegram",
"channelId": -1005640892,
"date": "2026-08-26T19:12:24.000Z",
"text": "Signed Gifts. You can now add your signature and a comment to gifts you buy via the gift marketplace.\n\nAugust Features\n1 • 2 • 3 • 4 • 5 • More",
"views": 1470000,
"author": "Telegram News",
"authorUrl": "https://t.me/telegram",
"authorPhotoUrl": "https://cdn1.telesco.pe/file/uFYNMdturrfQWQKIUN-OOFpGgW51ifC6zoFl5fDK03QXavKQLPsC7MpCEGSN9A7AuEBYSfUUPMZxtGMUXp7Ma4OLu2pPsltHPRzVF2zmVUBiHjV0g7ri29W94kYF5Mrqd8YPzJ4ZE52eEV74TQ6dm9ATYW-LURHPfKCRQuSRxPmJydGQTo-dlzj_kfYqseyxonNUPJiL3MSEwn5CXlGZcgrZLzE8Q3CKXuxPTHg4SkDj_fUB4QKZs-k1tQRGmXPLHljwgH1-u5lkiOTo6Dlitd2memRuSKyhbiaP21gKyNvoPviDJDmThhnGk_oYxSembEWmcxLkTtEeAihAJ9EjOg.jpg",
"verified": false,
"edited": false,
"forwardedFrom": null,
"replyToUrl": null,
"media": [
{
"type": "video",
"url": "https://cdn1.telesco.pe/file/6efb59a075.mp4?token=k4wTC-I_8fiaMp8IjTctsSxGmjhSSMjmTV_8mRcewtEFkI9H3eeZSvwj_GEF_qohqj0sSrINWsWaPKryoR8qtSM9L9RKHdCDinuPbunrBXSMY_OaUVxodHAsfeGkdx6_SxwAClW3HNwfg0IAqhB7bMziErtdur2eDexEynJpvYtq0fXow1-u9RNRD5qO7CMy3i9iLAI_wtOnFa2MMHH_pI8BrZWEjjJSKEaB1Ei7c6SX1tBnKFmDVTqqR4J-gMKbtPUZT642Dlv1KId6h_9G0ZQG2qiHvJWhWKvUdqriv_HQWgZEx8x8Mr6_BCbezfHRyFIGXeZiiXmAmZwG30Gt7g",
"thumbnailUrl": "https://cdn1.telesco.pe/file/XnoHEm22Dzm7K_zBwmk2GTWOyk3aY8VR8OqoEpDPIndDerqDr4WaaF8BQ-Eyz85-h0pzx8YkBhR_ia6R0mXcYPKMsAFm6e1DxPIlBKIrc_LGsrUtkxtpne-MngcycQR8Q15ZJELkHUG1K5lRtglEg-uM0ntZZDeFXG34LtY7ICqC49kvhc5RsU2bHEXzmYppHvFWtGmU7sKdOfrseVjyl7IQi_kIAuLoRqu69-0LdQgr5K9JPRy66HbQOC_u8iaQT_mRVcd43Th7y4ml6a1IOMOy0S-qWuiOBfOEhp9ZSxLl3MVU9SF6jBE8RYMt8yMSF-P9raFI7EwR1m0Zao7_pg",
"duration": "0:12"
}
],
"linkPreview": null,
"reactions": []
},
{
"id": 458,
"url": "https://t.me/telegram/458",
"handle": "telegram",
"channelId": -1005640892,
"date": "2026-08-26T19:12:04.000Z",
"text": "Placeholders for App Updates. If a user with an outdated app encounters a new feature, they can now instantly tap to download the latest update.\n\nAugust Features\n1 • 2 • 3 • 4 • 5 • More",
"views": 938000,
"author": "Telegram News",
"authorUrl": "https://t.me/telegram",
"authorPhotoUrl": "https://cdn1.telesco.pe/file/uFYNMdturrfQWQKIUN-OOFpGgW51ifC6zoFl5fDK03QXavKQLPsC7MpCEGSN9A7AuEBYSfUUPMZxtGMUXp7Ma4OLu2pPsltHPRzVF2zmVUBiHjV0g7ri29W94kYF5Mrqd8YPzJ4ZE52eEV74TQ6dm9ATYW-LURHPfKCRQuSRxPmJydGQTo-dlzj_kfYqseyxonNUPJiL3MSEwn5CXlGZcgrZLzE8Q3CKXuxPTHg4SkDj_fUB4QKZs-k1tQRGmXPLHljwgH1-u5lkiOTo6Dlitd2memRuSKyhbiaP21gKyNvoPviDJDmThhnGk_oYxSembEWmcxLkTtEeAihAJ9EjOg.jpg",
"verified": false,
"edited": false,
"forwardedFrom": null,
"replyToUrl": null,
"media": [
{
"type": "photo",
"url": "https://cdn1.telesco.pe/file/EEW1dHuMcXpbaxv0c24oOLLzWW0RmzGo8zGcRq6Ii4spVcAlVJ8___vnCLb3d2-GdaYANc7hunKeAVCLe8WzEHvtVt_qIvcdFSnkqY8rAJGaMkdHzTg2TsdBgTtQdikYncxa7mk_Yk8OB6txRUY6w7EljJzKsRjo1AsR1CSLqVgmwtdS_04jQqJdxBnERxPJH9BLHskxeclPwJXhN5tMev43ArlQf0IO9161Q_ZkzdU9W1WQQ_LJ8M-C31HHm-eaN2wtqeOUpb4qWJuwQl6HNtPNrJ2h6DMrrepY4iazZ2tnPUX2BXAiZ4yZYHPRnKuYI3xAfYt66XYM3uMuq02E8w.jpg",
"thumbnailUrl": null,
"duration": null
}
],
"linkPreview": null,
"reactions": []
}
],
"count": 20,
"paging": {
"cursor": "441",
"hasMore": true
},
"fetchedAt": "2026-10-05T14:44:06.408Z"
},
"meta": {
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"creditsCharged": 1,
"creditsRemaining": 4999,
"cached": false
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "API key required — pass it in the `x-api-key` header.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "INSUFFICIENT_CREDITS",
"message": "This request costs 1 credit, but your balance is 0. Top up to continue.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "The requested content was not found (it may not exist, be deleted, or be private).",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Request validation failed",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"details": [
{
"path": "url",
"message": "Required"
}
]
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded — max 100 requests per 60s. Retry in ~30s.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "UPSTREAM_BLOCKED",
"message": "The source is temporarily unavailable. Please try again shortly.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}Channel posts
Fetches the recent public posts of a Telegram channel/group by handle — each with its text, date, view count, author, media (photos/videos with thumbnails + durations), link preview, and reactions. Paginated (older posts) via a numeric cursor.
curl --request GET \
--url https://api.scraperize.com/v1/telegram/channel/posts \
--header 'x-api-key: <api-key>'import requests
url = "https://api.scraperize.com/v1/telegram/channel/posts"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.scraperize.com/v1/telegram/channel/posts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.scraperize.com/v1/telegram/channel/posts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.scraperize.com/v1/telegram/channel/posts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.scraperize.com/v1/telegram/channel/posts")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scraperize.com/v1/telegram/channel/posts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"posts": [
{
"id": 460,
"url": "https://t.me/telegram/460",
"handle": "telegram",
"channelId": -1005640892,
"date": "2026-08-26T19:12:34.000Z",
"text": "For all the info from today's update and a look back at 13 years of Telegram features — check out our blog:\nhttps://telegram.org/blog/welcome-messages-buttons-TG-13\n\nAugust Features\n1 • 2 • 3 • 4 • 5 • More",
"views": 1670000,
"author": "Telegram News",
"authorUrl": "https://t.me/telegram",
"authorPhotoUrl": "https://cdn1.telesco.pe/file/uFYNMdturrfQWQKIUN-OOFpGgW51ifC6zoFl5fDK03QXavKQLPsC7MpCEGSN9A7AuEBYSfUUPMZxtGMUXp7Ma4OLu2pPsltHPRzVF2zmVUBiHjV0g7ri29W94kYF5Mrqd8YPzJ4ZE52eEV74TQ6dm9ATYW-LURHPfKCRQuSRxPmJydGQTo-dlzj_kfYqseyxonNUPJiL3MSEwn5CXlGZcgrZLzE8Q3CKXuxPTHg4SkDj_fUB4QKZs-k1tQRGmXPLHljwgH1-u5lkiOTo6Dlitd2memRuSKyhbiaP21gKyNvoPviDJDmThhnGk_oYxSembEWmcxLkTtEeAihAJ9EjOg.jpg",
"verified": false,
"edited": false,
"forwardedFrom": null,
"replyToUrl": null,
"media": [],
"linkPreview": {
"url": "https://telegram.org/blog/welcome-messages-buttons-TG-13",
"siteName": "Telegram",
"title": "Welcome Messages, Buttons in Messages and Signed Gifts",
"description": "Introducing Welcome Messages to greet new members of groups or channels, Buttons in Messages to make any text interactive, Inline Documents in Messages and much more.",
"imageUrl": "https://cdn4.telesco.pe/file/b01OYVU-nzH3fOkm1Atu-cXYGUC4IFztrQILNXi7XNqT3U06FUM6qsx8oxemaGkcZM7gO-R3grt2d5t8LgzYhIQGbBj5DFi7QnMXy9Tbiws9y-yLo_70_MqEyaMeo0wMWpRvQ-6QinclKGZRx3Cd84ahcS8ZGyfNLM-u681NsCAK2CmNK2QxTqMOoTkTRjwhjJzhwd7gTVoEGsvPpYtCMCpoG1brJkS9Lo5zjpWQWkNZlY9csP3YfzrC7HpL9NZx5Bf5XqlAV58lPsf4D6xJMlPYIUHUnwbacY-QyYkX6tohtOf2DnYHjNsYVRdQA2QiNdDS3PLz-iH_cVLyeM_9gw.jpg"
},
"reactions": []
},
{
"id": 459,
"url": "https://t.me/telegram/459",
"handle": "telegram",
"channelId": -1005640892,
"date": "2026-08-26T19:12:24.000Z",
"text": "Signed Gifts. You can now add your signature and a comment to gifts you buy via the gift marketplace.\n\nAugust Features\n1 • 2 • 3 • 4 • 5 • More",
"views": 1470000,
"author": "Telegram News",
"authorUrl": "https://t.me/telegram",
"authorPhotoUrl": "https://cdn1.telesco.pe/file/uFYNMdturrfQWQKIUN-OOFpGgW51ifC6zoFl5fDK03QXavKQLPsC7MpCEGSN9A7AuEBYSfUUPMZxtGMUXp7Ma4OLu2pPsltHPRzVF2zmVUBiHjV0g7ri29W94kYF5Mrqd8YPzJ4ZE52eEV74TQ6dm9ATYW-LURHPfKCRQuSRxPmJydGQTo-dlzj_kfYqseyxonNUPJiL3MSEwn5CXlGZcgrZLzE8Q3CKXuxPTHg4SkDj_fUB4QKZs-k1tQRGmXPLHljwgH1-u5lkiOTo6Dlitd2memRuSKyhbiaP21gKyNvoPviDJDmThhnGk_oYxSembEWmcxLkTtEeAihAJ9EjOg.jpg",
"verified": false,
"edited": false,
"forwardedFrom": null,
"replyToUrl": null,
"media": [
{
"type": "video",
"url": "https://cdn1.telesco.pe/file/6efb59a075.mp4?token=k4wTC-I_8fiaMp8IjTctsSxGmjhSSMjmTV_8mRcewtEFkI9H3eeZSvwj_GEF_qohqj0sSrINWsWaPKryoR8qtSM9L9RKHdCDinuPbunrBXSMY_OaUVxodHAsfeGkdx6_SxwAClW3HNwfg0IAqhB7bMziErtdur2eDexEynJpvYtq0fXow1-u9RNRD5qO7CMy3i9iLAI_wtOnFa2MMHH_pI8BrZWEjjJSKEaB1Ei7c6SX1tBnKFmDVTqqR4J-gMKbtPUZT642Dlv1KId6h_9G0ZQG2qiHvJWhWKvUdqriv_HQWgZEx8x8Mr6_BCbezfHRyFIGXeZiiXmAmZwG30Gt7g",
"thumbnailUrl": "https://cdn1.telesco.pe/file/XnoHEm22Dzm7K_zBwmk2GTWOyk3aY8VR8OqoEpDPIndDerqDr4WaaF8BQ-Eyz85-h0pzx8YkBhR_ia6R0mXcYPKMsAFm6e1DxPIlBKIrc_LGsrUtkxtpne-MngcycQR8Q15ZJELkHUG1K5lRtglEg-uM0ntZZDeFXG34LtY7ICqC49kvhc5RsU2bHEXzmYppHvFWtGmU7sKdOfrseVjyl7IQi_kIAuLoRqu69-0LdQgr5K9JPRy66HbQOC_u8iaQT_mRVcd43Th7y4ml6a1IOMOy0S-qWuiOBfOEhp9ZSxLl3MVU9SF6jBE8RYMt8yMSF-P9raFI7EwR1m0Zao7_pg",
"duration": "0:12"
}
],
"linkPreview": null,
"reactions": []
},
{
"id": 458,
"url": "https://t.me/telegram/458",
"handle": "telegram",
"channelId": -1005640892,
"date": "2026-08-26T19:12:04.000Z",
"text": "Placeholders for App Updates. If a user with an outdated app encounters a new feature, they can now instantly tap to download the latest update.\n\nAugust Features\n1 • 2 • 3 • 4 • 5 • More",
"views": 938000,
"author": "Telegram News",
"authorUrl": "https://t.me/telegram",
"authorPhotoUrl": "https://cdn1.telesco.pe/file/uFYNMdturrfQWQKIUN-OOFpGgW51ifC6zoFl5fDK03QXavKQLPsC7MpCEGSN9A7AuEBYSfUUPMZxtGMUXp7Ma4OLu2pPsltHPRzVF2zmVUBiHjV0g7ri29W94kYF5Mrqd8YPzJ4ZE52eEV74TQ6dm9ATYW-LURHPfKCRQuSRxPmJydGQTo-dlzj_kfYqseyxonNUPJiL3MSEwn5CXlGZcgrZLzE8Q3CKXuxPTHg4SkDj_fUB4QKZs-k1tQRGmXPLHljwgH1-u5lkiOTo6Dlitd2memRuSKyhbiaP21gKyNvoPviDJDmThhnGk_oYxSembEWmcxLkTtEeAihAJ9EjOg.jpg",
"verified": false,
"edited": false,
"forwardedFrom": null,
"replyToUrl": null,
"media": [
{
"type": "photo",
"url": "https://cdn1.telesco.pe/file/EEW1dHuMcXpbaxv0c24oOLLzWW0RmzGo8zGcRq6Ii4spVcAlVJ8___vnCLb3d2-GdaYANc7hunKeAVCLe8WzEHvtVt_qIvcdFSnkqY8rAJGaMkdHzTg2TsdBgTtQdikYncxa7mk_Yk8OB6txRUY6w7EljJzKsRjo1AsR1CSLqVgmwtdS_04jQqJdxBnERxPJH9BLHskxeclPwJXhN5tMev43ArlQf0IO9161Q_ZkzdU9W1WQQ_LJ8M-C31HHm-eaN2wtqeOUpb4qWJuwQl6HNtPNrJ2h6DMrrepY4iazZ2tnPUX2BXAiZ4yZYHPRnKuYI3xAfYt66XYM3uMuq02E8w.jpg",
"thumbnailUrl": null,
"duration": null
}
],
"linkPreview": null,
"reactions": []
}
],
"count": 20,
"paging": {
"cursor": "441",
"hasMore": true
},
"fetchedAt": "2026-10-05T14:44:06.408Z"
},
"meta": {
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"creditsCharged": 1,
"creditsRemaining": 4999,
"cached": false
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "API key required — pass it in the `x-api-key` header.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "INSUFFICIENT_CREDITS",
"message": "This request costs 1 credit, but your balance is 0. Top up to continue.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "The requested content was not found (it may not exist, be deleted, or be private).",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Request validation failed",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"details": [
{
"path": "url",
"message": "Required"
}
]
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded — max 100 requests per 60s. Retry in ~30s.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "UPSTREAM_BLOCKED",
"message": "The source is temporarily unavailable. Please try again shortly.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}cache_max_age) are free.Copy for AI assistant
Copy for AI assistant
I want to make an API call to /v1/telegram/channel/posts. Here are the details:
Endpoint: GET https://api.scraperize.com/v1/telegram/channel/posts
Description: Fetches the recent public posts of a Telegram channel/group by handle — each with its text, date, view count, author, media (photos/videos with thumbnails + durations), link preview, and reactions. Paginated (older posts) via a numeric `cursor`.
Required Headers:
- x-api-key: Your API key
Parameters:
- handle (string) [required]: A public Telegram handle or t.me URL, e.g. telegram or https://t.me/telegram.
- cursor (string): Numeric cursor from a previous response's `paging.cursor` (pages to older posts).
- cache_max_age (select): Optional. Return a cached result if one this age or newer exists — served for **0 credits** with `meta.cached=true` and `meta.cachedAt`. Otherwise a fresh scrape runs (**1 credit**) and refreshes the cache. Omit to always scrape fresh.
Example Response:
{
"data": {
"posts": [
{
"id": 460,
"url": "https://t.me/telegram/460",
"handle": "telegram",
"channelId": -1005640892,
"date": "2026-08-26T19:12:34.000Z",
"text": "For all the info from today's update and a look back at 13 years of Telegram features — check out our blog:\nhttps://telegram.org/blog/welcome-messages-buttons-T…",
"views": 1670000,
"author": "Telegram News",
"authorUrl": "https://t.me/telegram",
"authorPhotoUrl": "https://cdn1.telesco.pe/file/uFYNMdturrfQWQKIUN-OOFpGgW51ifC6zoFl5fDK03QXavKQLPsC7MpCEGSN9A7AuEBYSfUUPMZxtGMUXp7Ma4OLu2pPsltHPRzVF2zmVUBiHjV0g7ri29W94kYF5Mrqd8Y…",
"verified": false,
"edited": false,
"forwardedFrom": null,
"replyToUrl": null,
"media": [],
"linkPreview": {
"url": "https://telegram.org/blog/welcome-messages-buttons-TG-13",
"siteName": "Telegram",
"title": "Welcome Messages, Buttons in Messages and Signed Gifts",
"description": "Introducing Welcome Messages to greet new members of groups or channels, Buttons in Messages to make any text interactive, Inline Documents in Messages and much…",
"imageUrl": "https://cdn4.telesco.pe/file/b01OYVU-nzH3fOkm1Atu-cXYGUC4IFztrQILNXi7XNqT3U06FUM6qsx8oxemaGkcZM7gO-R3grt2d5t8LgzYhIQGbBj5DFi7QnMXy9Tbiws9y-yLo_70_MqEyaMeo0wMWpR…"
},
"reactions": []
}
],
"count": 20,
"paging": {
"cursor": "441",
"hasMore": true
},
"fetchedAt": "2026-10-05T14:44:06.408Z"
},
"meta": {
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"creditsCharged": 1,
"creditsRemaining": 4999,
"cached": false
}
}
Please help me write code in my preferred programming language to make this API call and handle the response appropriately. Include error handling and best practices.
Authorizations
Your API key. Send it in the x-api-key header (or Authorization: Bearer <key>). Create and manage keys from your dashboard.
Query Parameters
A public Telegram handle or t.me URL, e.g. telegram or https://t.me/telegram.
Numeric cursor from a previous response's paging.cursor (pages to older posts).
Optional. Return a cached result if one this age or newer exists — served for 0 credits with meta.cached=true and meta.cachedAt. Otherwise a fresh scrape runs (1 credit) and refreshes the cache. Omit to always scrape fresh.
1d, 3d, 7d, 14d, 30d