Every fill, stop, trim, blocked entry, and scheduled report the system produces can be pushed to a private Telegram chat the moment it happens. Setup is two steps on Telegram's side and two on Apex's — about five minutes end to end.
1. Create a bot
Talk to BotFather
Open Telegram and message @BotFather — Telegram's own bot for creating bots. Send
/newbotand follow the prompts for a name and username.Copy the token
BotFather replies with a token that looks like
123456789:AAH.... That's the credential Apex uses to send messages as your bot — keep it private, it's effectively a password for that bot.
2. Find your chat ID
A bot token identifies the bot, not which chat to send to. You need one more value: your chat ID.
Message your bot
Find the bot you just created in Telegram (by the username you gave it) and send it any message — "hi" is enough.
Read the chat ID back
browserhttps://api.telegram.org/bot<YOUR_TOKEN>/getUpdates
Open that URL (with your real token in place of
<YOUR_TOKEN>) in any browser. The JSON response includes achatobject with anidfield — that number is your chat ID.
This is the same mechanism whether you're messaging the bot one-to-one or adding it to a group — for a group, add the bot to the group first, send a message there, and the id in the response will be the group's (negative) chat ID instead.
3. Enter both values into Apex
Paste the token and chat ID into the Telegram fields during first-run setup, or later from the dashboard's Settings page if you want to add or change it after installing. Either screen has a Send Test Message button — use it. It sends a real message through your bot to confirm the token and chat ID are both correct before you rely on it.
What actually triggers a message
Once configured, notifications aren't limited to fills. The system pushes a message for essentially every event worth knowing about without watching the dashboard:
- Entries — momentum buys, early-mover Phase 1 and Phase 2 confirmations, options and credit-spread entries
- Exits — stops, trailing-stop closes, target hits, risk-driven forced trims
- Pre-close auto-exits ahead of an overnight earnings gap
- Blocked entries — for example, a macro gate holding off new momentum buys for the day
- Order or reconciliation failures
- Scheduled daily and weekly summaries, and the weekly plan and macro research reports
- A software update becoming available
One honest limitation
There's no retry logic and no queue behind these messages. If the token is wrong, the chat ID is stale, or Telegram itself is unreachable for a moment, the underlying trade or report still goes through normally — the notification just quietly fails to send, logged only to the server's own console output, not surfaced anywhere in the dashboard. It won't block or delay anything the system does. It just means a failed test message is worth taking seriously: send another test after any credential change, and don't treat a period of Telegram silence as evidence the engine went quiet too — check the dashboard directly if you're ever unsure.