{
  "openapi": "3.0.1",
  "info": {
    "title": "Telegram Posts Scraper | Views, Reactions and Comments",
    "description": "Telegram posts scraper (Телеграм) for public channels, no account. Get each post's text, views, every reaction, media, links and date plus the channel's exact subscriber count, 28 fields per post: 40 posts from 2 channels in 2 seconds. Search keywords inside channels or pick a 2026 date range.",
    "version": "1.0",
    "x-build-id": "R7DNRMQyWVahRUvB8"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/silentflow~telegram-posts-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-silentflow-telegram-posts-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/silentflow~telegram-posts-scraper/runs": {
      "post": {
        "operationId": "runs-sync-silentflow-telegram-posts-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/silentflow~telegram-posts-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-silentflow-telegram-posts-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "channelUsernames": {
            "title": "📢 Channel usernames",
            "type": "array",
            "description": "Public channels to read, newest post first: a username (<code>durov</code>), an @handle (<code>@telegram</code>) or a channel link (<code>https://t.me/cointelegraph</code>). One channel of 20 posts takes a few seconds.<br><br>Groups, private chats and invite links (<code>t.me/+...</code>) have no public posts: they are skipped and named in the log.",
            "items": {
              "type": "string"
            }
          },
          "postUrls": {
            "title": "🔗 Post links",
            "type": "array",
            "description": "Single posts to read, one row each: <code>https://t.me/durov/528</code>. A link to one photo of an album returns the album. Search links made on a channel's web page (<code>https://t.me/s/cointelegraph?q=ETF</code>) and channel links work here too.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "🔎 Search inside channels",
            "type": "array",
            "description": "Words to look for inside every channel above: <code>bitcoin</code>, <code>ETF</code>, <code>#AI</code>. Telegram's own search gives the latest matches, then older posts are read and kept when their text contains the word, up to the max posts, newest first. Each row says which keyword found it. Leave empty to read each channel's whole history. Keywords need at least one channel username: they search inside channels, not across all of Telegram.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "🔢 Max posts per channel",
            "minimum": 1,
            "type": "integer",
            "description": "Stop each channel, and each keyword search, after this many posts. Two channels at 100 give up to 200 rows; post links always return their post. Set it to what you need, the cost grows with it.",
            "default": 100
          },
          "oldestPostDate": {
            "title": "📅 Posts published after",
            "type": "string",
            "description": "Only keep posts published after this date. Pick a date (<code>2026-09-01</code>) or an age (<code>7 days</code>, <code>1 month</code>). A daily schedule with <code>1 day</code> returns only what was posted since yesterday."
          },
          "newestPostDate": {
            "title": "📅 Posts published before",
            "type": "string",
            "description": "Only keep posts published before this date, the day itself included: <code>2025-03-31</code>, or an age such as <code>1 year</code>. With the field above it makes a period, for example all of March 2025. Old periods are reached directly, without reading every newer post first."
          },
          "minViews": {
            "title": "👁️ Minimum views",
            "minimum": 0,
            "type": "integer",
            "description": "Skip posts seen fewer times than this, for example <code>100000</code> to keep the posts that took off. 0 keeps every post. With a high floor, or a rare keyword, each channel stops after checking 1,000 posts (or 20 times the max posts, if higher).",
            "default": 0
          },
          "includeComments": {
            "title": "💬 Comment count and latest comments",
            "type": "boolean",
            "description": "Add the exact number of comments under each post and its 5 latest comments (author, text, date). Reads one more page per post, about one second each: 21 posts read with their comments took 23 seconds in our test. Channels that turned comments off are noticed after 3 posts and skipped; their rows keep the comment fields empty.",
            "default": false
          },
          "debugMode": {
            "title": "🐞 Debug mode",
            "type": "boolean",
            "description": "Write detailed logs of every request and connection change.",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}