TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/OPENNOVA2026/telegram-connector/llms.txt
Use this file to discover all available pages before exploring further.
dev Docker stage uses fastapi dev to start the application with live reload enabled — any change to a source file inside the mounted project directory immediately restarts the server. Paired with FakeClient, you can develop and test every endpoint without a real Telegram account or API credentials.
Development Docker build
Build thedev stage by passing --target dev:
-v .:/app mount is what makes live reload useful — edits you make on the host are immediately visible inside the container, and fastapi dev restarts the server automatically.
FakeClient — developing without Telegram credentials
WhenAPI_ID is 0 (the default value in Settings), the GET /channels and GET /messages endpoints automatically fall back to FakeClient instead of connecting to the real Telegram API. This lets you explore and test the API without a Telegram account, phone number, or sign-in flow.
What FakeClient returns:
iter_dialogs()— yields 10 fake channels: Channel 1 through Channel 10. Each channel has atitleandusernameequal to its name (e.g."Channel 1"), and adateset to the current UTC timestamp at the time the request is made.iter_messages()— yields an infinite stream of fake messages with continuously decreasing timestamps (starting one minute beforeoffset_date, decrementing by 1–16 minutes per message). Each message is assigned to one of the 10 fake channels via a rotatingPeerChannel. The message body is chosen at random from these three strings:FAKE: I'm on vacations next week! Can't wait!FAKE: Burned myself yesterday, but love correfocsFAKE: To speak my truth, I love pizza over any other meal
FakeClient, either omit API_ID from your .env entirely, or set it explicitly to zero:
GET /channels in FakeClient mode (the date field reflects the current UTC time at request time):
The
authentication endpoints (/sign_in, /is_user_authorized) always require real Telegram credentials. They connect directly to the Telegram API and are not affected by the FakeClient fallback.Interactive API docs
When the service is running, Swagger UI is available at:Running tests
The project usespytest with pytest-cov and enforces a minimum of 65% code coverage. Tests mock both boto3 and TeleClient so they run without any external dependencies.
pytest configuration in pyproject.toml automatically enables coverage reporting and will fail the run if coverage drops below 65%: