Simple, per-alert pricing. You only pay when we find you seats.
Two tiers
Standard
RM3
per alert
First seat-opening event on your watch. RM1 for every subsequent opening on the same watch.
Urgent
RM5
per alert
When travel is within 48 hours.
Price is determined at the moment of alert, not at watch creation.
Example: seats open on your route → RM3 first alert. Seats fill up, then reopen the next day → RM1. A third opening → RM1 again. Total capped at RM8 per watch.
What you are charged for
Actionable alerts only — when seats become available on your route and we are telling you to act right now. You are charged once per seat opening event.
A seat opening event starts when seats go from unavailable to available on your route. You pay once when that event starts. Everything else is free.
Seats open on your route — you receive an alert. One charge per opening event, regardless of how many polls confirm the seats are still there.
A new train appears on your route with available seats that was not visible in the previous poll — charged as a new opportunity.
Charge happens before delivery. Your balance is debited first. If your balance is insufficient, the alert is not sent and your watch is paused until you top up.
What is always free
Everything else. This includes:
⚡ Urgency updates — when seats on an open alert are running low, we send a reminder at no charge. Act now before they're gone.
🚨 Last seats notices — when only 1–2 seats remain within 3 days of departure. Free nudge, no charge.
Seats filled notices — when availability closes after you were alerted. We keep watching for the next opening. No charge.
All service messages — watch confirmations, low balance warnings, weekly summaries. Never charged.
You will never be charged for bad news. You will never be charged without the opportunity to stop watching first.
How it works in practice
Seats open on your route → you receive an alert → charged once
3 minutes later: "Did you get your seat?" → [Booked ✓]: watch stops, no more charges. → [Keep watching]: we continue, next opening event charges again.
If seats fill up before you book → free notice — "Seats just filled, we're still watching." We keep watching for the next opening.
Urgency pricing — full definition
The RM5 rate applies when your travel date is within 48 hours of the alert. Last-minute seat availability is higher-value information.
Price is determined at the moment of alert, not at watch creation.
Date range watches
A watch for a range of dates (up to 7 days) monitors each date independently. Each date is charged separately per alert.
Example: RM3 first alert + RM1 + RM1 = RM5 total for three opening events. Capped at RM8 per watch. Urgency follow-ups (⚡ / 🚨) and "seats filled" notices are free for each date.
Balance and top-up
Your KTM Watcher wallet holds prepaid credit. You top up via DuitNow bank transfer to our Public Bank account (RM20 / RM50 / RM100). Credits are applied within 1 hour of verification. BillPlz instant payments are coming soon.
Welcome bonus: every new account receives RM10.00 free credit — enough for your first watch free, plus 2 more first alerts. No payment required to sign up.
Balance expiry: unused credits expire after 24 months of account inactivity.
Alert cap
Each watch has a cap of 10 chargeable alerts per date. When the cap is reached, your watch pauses and you receive a Keep watching / Stop watching prompt. If no response within 30 minutes, the watch automatically resumes — you are never silently paused indefinitely. If you keep watching, the counter resets.
If your balance is insufficient
When an alert is about to fire and your balance is below the alert price, the alert is not sent. Your watch is paused automatically and we notify you to top up. Once you top up, reactivate your watch from the dashboard — monitoring resumes immediately.
Frequently asked questions
Will I be charged if no seats are found?
No. You are only charged when seats open on your route and we send you an actionable alert. Continuous monitoring with no results costs nothing.
Will I be charged if I create a watch but never get an alert?
No. Creating a watch, running the scraper, and monitoring for seats are all free. You pay only when a seat opening event triggers an alert.
I got an ⚡ or 🚨 message — was I charged for that?
No. ⚡ (seats running low) and 🚨 (last seats) messages are free urgency updates sent within the same opening event you were already charged for. They are nudges to act, not new charges.
Can I get a refund if I don't manage to book a ticket?
We charge per alert delivered, not per booking. We cannot guarantee a ticket — only the alert. Seats can disappear in the seconds between our alert firing and you tapping the link. No refunds are issued for delivered alerts. Unused wallet balance can be requested for refund by contacting us.
What exactly is a "peak" date?
Peak applies when all trains on your route show 0 available seats in the KTMB system at the moment you create the watch, OR when your travel date is within 48 hours of watch creation. The classification is based on a live check — not a calendar of public holidays or busy periods.
Do credits expire?
Yes — after 24 months of account inactivity (no alerts fired, no top-ups, no logins). You will receive a warning before expiry. Contact us if you need your balance extended.
What happens to my watch when my balance runs out mid-monitoring?
When we are about to send an alert but your balance is insufficient, the alert is suppressed, your watch is paused, and you receive a notification to top up. We do not silently skip alerts — the watch stops immediately so you know. Top up and reactivate from the dashboard to resume.