Event Price Watch
Hourly check on a single event's cheapest listing. Fires one notification per fire when the lowest price drops to or below your configured threshold. The canonical "alert me when this game/concert gets cheap" shape.
What it does
Every fire (default hourly — edit the schedule when you install), the monitor
calls a ticket-pricing endpoint that returns the cheapest current listing for
ONE event. If the returned price is at or below the threshold, the when:
arm fires a notification with section/row/hours-to-event. Otherwise the
else: arm matches and nothing fires.
Data-source setup — read this first
There is no public API for major secondary ticket marketplaces. You'll need to wire your own data source. Three common shapes:
- A small scraper you host — Python/curl script returning JSON. Point
the monitor's
check.args.urlat your script's endpoint. The scraper queries StubHub / SeatGeek / TickPick / Gametime / Vivid Seats internal endpoints and normalizes the response. - An affiliate / partner API — if you have access to StubHub or SeatGeek's partner API, point the monitor there directly.
- A
runtimeenvcheck instead ofhttp— replace thecheck:block with aruntimeenvtask that runs your scraper inline and publishes the same field names this monitor expects.
Whatever you wire in, the scraper must publish these bindings (HTTP returns them as JSON top-level fields):
| Binding | Expected value |
|---|---|
{{check.lowestPrice}} |
Cheapest current listing, as a number (no currency symbol). |
{{check.eventName}} |
Display name of the event. |
{{check.section}} |
Section identifier for the cheapest listing. |
{{check.row}} |
Row within that section. |
{{check.hoursToEvent}} |
Hours from now to event tip-off (number). |
{{check.listingUrl}} |
Direct URL to the listing on the marketplace. |
Edit before installing
In monitor.yaml:
check.args.url— replace with your scraper / API endpoint. SubstituteREPLACE_EVENT_IDwith the event's identifier (or hard-code the full URL).when[0].condition— change<= 80to your max-acceptable price.- Subject/body strings reference the published bindings; edit copy to taste.
Schedule guidance:
- Far from event (more than 1 week out): once daily is enough. Prices don't move fast.
- Within the last week: hourly.
- Day of event: every 5-15 minutes — pair with
gameday-firesale-watchfor the panic-drop pattern.
Bindings used
Listed above under "Data-source setup". The monitor never assumes more than those six fields from the check tool.
Tools used
http— core InTouch HTTP task type. Public endpoints need no credential; if your scraper requires an API key, add a credential and setcheck.credentialName:.
Pattern showcase
The simplest "threshold on a published value" shape. Same skeleton works for any one-number-vs-threshold monitor: stock price below buy point, server load above ceiling, queue depth past warning, etc. Customize the data source; keep the shape.
Related monitors
gameday-firesale-watch— day-of relative discount alerts using the same data source.good-seat-ai-watch— AI-judged value, not just raw threshold.
The three share a scraper. Wire one, install all three with different schedules and triggers.