Telegram Channel Scraper & Monitor
Pricing
$2.00 / 1,000 post delivereds
Go to Apify Store
Telegram Channel Scraper & Monitor
Scrape or monitor public Telegram channels: posts, views, reactions and media, with keyword filtering. No login needed.
Telegram Channel Scraper & Monitor
Pricing
$2.00 / 1,000 post delivereds
Scrape or monitor public Telegram channels: posts, views, reactions and media, with keyword filtering. No login needed.
You can access the Telegram Channel Scraper & Monitor programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in API & Integrations in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "1.0", "x-build-id": "xPkelV5vZgbkIMQUc" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/jonjo~telegram-channel-monitor/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-jonjo-telegram-channel-monitor", "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/jonjo~telegram-channel-monitor/runs": { "post": { "operationId": "runs-sync-jonjo-telegram-channel-monitor", "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/jonjo~telegram-channel-monitor/run-sync": { "post": { "operationId": "run-sync-jonjo-telegram-channel-monitor", "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", "required": [ "channels" ], "properties": { "channels": { "title": "Channels", "type": "array", "description": "Public Telegram channels to scrape. Accepts a username (durov), @durov, t.me/durov or https://t.me/s/durov. Private channels, groups and invite links are not supported.", "items": { "type": "string" } }, "maxPostsPerChannel": { "title": "Max posts per channel", "minimum": 1, "maximum": 10000, "type": "integer", "description": "How many posts to scan per channel, newest first. This counts posts looked at, not posts returned: with keywords set, a run can return far fewer. Defaults to 100, or 1,000 in monitoring mode, where it is the per-run budget. Capped at 10,000." }, "postedAfter": { "title": "Posted after", "type": "string", "description": "Only scan posts published on or after this date. In monitoring mode it is also a floor: older posts are treated as abandoned, so a long-paused schedule doesn't pull in a stale backlog." }, "keywords": { "title": "Keywords", "type": "array", "description": "Return only posts whose text contains any of these words (case-insensitive). Filtering happens after scanning: posts that don't match are never charged, but they do count towards Max posts per channel.", "default": [], "items": { "type": "string" } }, "monitoringMode": { "title": "Monitoring mode", "type": "boolean", "description": "Return only posts newer than the last run. Use with a schedule. If a run hits its budget before catching up, it re-sends rather than skips posts, so dedupe on (channel, postId).", "default": false }, "stateKey": { "title": "State key", "pattern": "^[A-Za-z0-9_-]+$", "type": "string", "description": "Name for this schedule's monitoring state, so separate schedules on the same channel don't overwrite each other. Letters, digits, - and _ only.", "default": "default" }, "proxyConfiguration": { "title": "Proxy configuration", "type": "object", "description": "Apify datacenter proxies work well for Telegram's web preview; residential proxies shouldn't be needed.", "default": { "useApifyProxy": true } } } }, "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 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for Telegram Channel Scraper & Monitor from the options below:
If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: