{
  "openapi": "3.0.1",
  "info": {
    "title": "Telegram Keyword Search: Find Posts Across Channels",
    "description": "Search public Telegram channels for any keyword, brand or ticker: matching posts with views, dates and links, plus a report per keyword with mentions by channel, a 30-day timeline and top posts. Built-in crypto, news, markets and tech channels. No account.",
    "version": "0.1",
    "x-build-id": "yPXdmzFJanGAKV2IU"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/precious_bathmat~telegram-keyword-search/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-precious_bathmat-telegram-keyword-search",
        "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/precious_bathmat~telegram-keyword-search/runs": {
      "post": {
        "operationId": "runs-sync-precious_bathmat-telegram-keyword-search",
        "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/precious_bathmat~telegram-keyword-search/run-sync": {
      "post": {
        "operationId": "run-sync-precious_bathmat-telegram-keyword-search",
        "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": [
          "keywords"
        ],
        "properties": {
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Words or phrases to search for, one search each: a brand, a coin or ticker, a product, a topic (\"bitcoin ETF\", \"airdrop\", \"Tesla\", \"layoffs\").",
            "items": {
              "type": "string"
            }
          },
          "channels": {
            "title": "Channels",
            "type": "array",
            "description": "Public channels to search: \"@cointelegraph\", \"WatcherGuru\" or \"https://t.me/bloomberg\". Leave empty to search the built-in directory.",
            "items": {
              "type": "string"
            }
          },
          "useDirectory": {
            "title": "Also search the built-in channel directory",
            "type": "boolean",
            "description": "Adds 34 large public channels checked to be searchable (crypto, news, markets, tech). On automatically when you list no channels."
          },
          "topics": {
            "title": "Directory topics",
            "type": "array",
            "description": "Which part of the directory to search. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "crypto",
                "news",
                "markets",
                "tech"
              ],
              "enumTitles": [
                "Crypto (Cointelegraph, Watcher Guru, Whale Alert, exchanges…)",
                "World news (BBC, Bloomberg, NYT, Guardian, France 24…)",
                "Markets (Walter Bloomberg, FinancialJuice, Market News Feed…)",
                "Tech (Durov, Telegram, Hacker News, GitHub Trends…)"
              ]
            }
          },
          "withinDays": {
            "title": "Posted within",
            "enum": [
              "any",
              "1",
              "7",
              "30",
              "90",
              "365"
            ],
            "type": "string",
            "description": "Only posts from this period (searching stops going back once it is passed).",
            "default": "any"
          },
          "maxPostsPerChannel": {
            "title": "Posts per channel",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Most matching posts per keyword and channel, newest first (1 to 1,000). Search alone finds up to about 22 per channel; more need \"Scan recent history\".",
            "default": 100
          },
          "scanHistoryPages": {
            "title": "Scan recent history (pages per channel)",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "Telegram's channel search returns only about the 22 newest matches per channel. Set this to also read each channel's latest posts (20 per page, newest first, once per channel for all keywords) and match the keywords in them: complete counts for busy channels and common words. 0 = search only. Stops early at the \"Posted within\" limit.",
            "default": 0
          },
          "exactOnly": {
            "title": "Exact keyword only",
            "type": "boolean",
            "description": "Telegram's search also matches word forms (\"launch\" finds \"launched\"). Turn on to keep only posts whose text contains the keyword exactly.",
            "default": false
          },
          "includeReports": {
            "title": "Reports",
            "type": "boolean",
            "description": "One report per keyword: mentions and share by channel, views, mentions in the last 24 hours / 7 / 30 days, a 30-day daily timeline, top posts and latest posts.",
            "default": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}