Changedetection.io Notifications to Telegram Without a Bot Token
push.tgchangedetection.io watches web pages for you: a price drop, a restock, a new release note, a changed policy page. Its notifications go through Apprise, and the usual Telegram route (tgram://) needs a bot token and a chat ID. There's a shorter way: changedetection.io can POST the notification text to any URL, and push.tg turns that POST into a Telegram message.
Step 1: get your endpoint (30 seconds)
Open @trafficRobot in Telegram and press Start. You get an address like k3x9q@push.tg. Your endpoint is the part before the @: https://push.tg/k3x9q. Every example below uses k3x9q, so swap in your own key.
There's no bot to create, no chat_id to look up and no token to keep safe. Add @trafficRobot to a group and the group gets its own address, so everyone on call sees the messages.
Step 2: add the notification URL
Open Settings → Notifications for all watches, or the Notifications tab of a single watch. In Notification URL List add:
posts://push.tg/k3x9q
posts:// means an HTTPS POST to that URL (post:// would be plain HTTP). changedetection.io sends the Notification Body as the request body, which push.tg delivers as the message text.
Step 3: write a short body
The form requires both a Notification Title and a Notification Body. Only the body reaches Telegram with posts://, so put everything you want to read there:
Changed: {{watch_title}}
{{watch_url}}
{{diff_added}}Useful tokens: {{watch_url}}, {{watch_title}}, {{diff}} (all changes), {{diff_added}} (only new lines), {{current_snapshot}} and {{preview_url}}. {{preview_url}} and {{diff_url}} only work if you've set a Base URL for your instance.
Keep it short. A full snapshot of a big page makes a very long Telegram message; {{diff_added}} is usually all you need for price and restock watches.
Step 4: send a test
Press Send test notification under the URL list. If the message shows up in Telegram, you're done. If it doesn't, check the address with curl first:
curl -d "test from $(hostname)" https://push.tg/k3x9q
Don't make the body JSON unless you mean to. If the body parses as JSON, changedetection.io sends it with a JSON content type; plain text is simpler and reads better in Telegram.
Restock and price alerts for a group
Add @trafficRobot to a Telegram group and it gets its own address. Put that address on the watches you share (a GPU restock, a concert ticket page) and everyone in the group gets the same alert.
Check that the message really arrived. push.tg answers HTTP 200 even when the key is wrong; the body then says {"error":"no such user"}. Send one test by hand and look at Telegram before you trust it:
Official references: changedetection.io notification notes (post:// and posts://) and changedetection.io tutorials.