Install
openclaw skills install seats-aero-monitorMonitor award availability via Seats.aero API across configurable watchers (route/program/cabin/date window), emit UNCONFIRMED alerts on none->available transitions, and persist idempotent watcher state in SQLite or JSON.
openclaw skills install seats-aero-monitorTrack award availability from Seats.aero without airline-specific confirmers.
new_only alerting.[UNCONFIRMED / Seats.aero] alert events for none -> available transitions.python3 <skill-dir>/scripts/check_awards.py --watchers-source db
# JSON backend
python3 <skill-dir>/scripts/check_awards.py \
--state-backend json \
--state-json /path/to/monitor.json \
--watchers-source db
# Single watcher only
python3 <skill-dir>/scripts/check_awards.py --watchers-source auto --watcher ana_sfo_hnd
Import watchers from config into DB:
python3 <skill-dir>/scripts/check_awards.py --watchers-import --replace-watchers --config /path/to/watchers.json
# Import into JSON state file instead of SQLite
python3 <skill-dir>/scripts/check_awards.py \
--state-backend json \
--state-json /path/to/monitor.json \
--watchers-import --replace-watchers --config /path/to/watchers.json
List DB watchers:
python3 <skill-dir>/scripts/check_awards.py --watchers-list
# List watchers stored in JSON state file
python3 <skill-dir>/scripts/check_awards.py \
--state-backend json \
--state-json /path/to/monitor.json \
--watchers-list
Update watchers' date ranges:
# Update specific watcher by ID
python3 <skill-dir>/scripts/update_watcher_dates.py \
--watcher pvg_sfo_aeroplan_2026summer --start 2026-08-01 --end 2026-08-15
# Update all watchers from an origin airport
python3 <skill-dir>/scripts/update_watcher_dates.py \
--origin PVG --start 2026-08-01 --end 2026-08-15
# Dry run (preview changes)
python3 <skill-dir>/scripts/update_watcher_dates.py \
--origin PVG --start 2026-08-01 --end 2026-08-15 --dry-run
# Update dates in JSON backend
python3 <skill-dir>/scripts/update_watcher_dates.py \
--state-backend json --state-json /path/to/monitor.json \
--origin PVG --start 2026-08-01 --end 2026-08-15
# Skip confirmation prompt
python3 <skill-dir>/scripts/update_watcher_dates.py \
--origin PVG --start 2026-08-01 --end 2026-08-15 --yes
# See all options
python3 <skill-dir>/scripts/update_watcher_dates.py --help
Fixed date range support:
fixed_start_date + fixed_end_date (YYYY-MM-DD) to track a fixed window (for example, August only).window_days is ignored.SQLite state DB default path (override via --state-db or SEATS_AERO_DB env):
<skill-dir>/data/monitor.db (relative to skill installation)SEATS_AERO_DB=/path/to/monitor.db in environmentJSON backend requires --state-backend json --state-json /path/to/monitor.json.
str | None union syntax)--state-backend sqlite--state-backend jsonbrotli Python package (only needed if Seats.aero API returns Brotli-compressed responses)Set Seats API key before running:
export SEATS_AERO_API_KEY="pro_xxx..."
All alerts are candidate signals from Seats.aero. This skill intentionally does not perform airline-side confirmation and marks all alerts as unconfirmed.
This script does not send messages directly; caller/agent should read data.alert_events from JSON output and send notifications.