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

  1. Talk to BotFather

    Open Telegram and message @BotFather — Telegram's own bot for creating bots. Send /newbot and follow the prompts for a name and username.

  2. 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.

  1. 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.

  2. Read the chat ID back

    browser
    https://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 a chat object with an id field — that number is your chat ID.

Note

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.