TELEGRAM API

Channel Posts

Retrieve channel posts from Telegram with a single API request.

GET/api/data/v1/telegram/channel/posts
1credit base costZero-credit cache supported

Request parameters

Up to 1 credit

Public 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.]

Try in the console

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."
    }
  }
}