Skip to main content

flight-price-monitor

Watch a flight's price over time with SearchApi's Google Flights engine, with a local snapshot and run-over-run diffs so each re-run shows price drops and increases. Pick a route, dates, and preferences (early morning, mid-week, nonstop, cabin class, airlines, max stops); the skill finds the best...

Install this skill

or
79/100

Security score

The flight-price-monitor skill was audited on Aug 6, 2026 and we found 9 security issues across 2 threat categories. Review the findings below before installing.

Categories Tested

Security Issues

low line 222

Command substitution pattern

SourceSKILL.md
220- **curl (save raw to disk):**
221 ```bash
222 SLUG="lhr-jfk-round_trip-2026-09-12"; TS=$(date +%Y-%m-%d-%H%M%S)
223 mkdir -p ".searchapi/flight-price-monitor/$SLUG"
224 curl -s "https://www.searchapi.io/api/v1/search?engine=google_flights&flight_type=round_trip&departure_id=LHR&arrival_id=JFK&outbound_date=2026-09-12&return_date=2026-09-19&adults=1&travel_class=economy&stops=nonstop&currency=USD&sort_by=price&api_key=$SEARCHAPI_API_KEY" \
low line 232

Command substitution pattern

SourceSKILL.md
230```bash
231F=".searchapi/flight-price-monitor/$SLUG/raw-$TS-flights.json"
232STATUS=$(jq -r '.search_metadata.status' "$F")
233[ "$STATUS" = "Success" ] || { echo "SearchApi error: $(jq -r '.error // .search_metadata.status' "$F")"; exit 1; }
234ERR=$(jq -r '.error // empty' "$F")
low line 233

Command substitution pattern

SourceSKILL.md
231F=".searchapi/flight-price-monitor/$SLUG/raw-$TS-flights.json"
232STATUS=$(jq -r '.search_metadata.status' "$F")
233[ "$STATUS" = "Success" ] || { echo "SearchApi error: $(jq -r '.error // .search_metadata.status' "$F")"; exit 1; }
234ERR=$(jq -r '.error // empty' "$F")
235[ -z "$ERR" ] || { echo "No results: $ERR"; exit 1; }
low line 234

Command substitution pattern

SourceSKILL.md
232STATUS=$(jq -r '.search_metadata.status' "$F")
233[ "$STATUS" = "Success" ] || { echo "SearchApi error: $(jq -r '.error // .search_metadata.status' "$F")"; exit 1; }
234ERR=$(jq -r '.error // empty' "$F")
235[ -z "$ERR" ] || { echo "No results: $ERR"; exit 1; }
236COUNT=$(jq '((.best_flights // []) + (.other_flights // [])) | length' "$F")
low line 236

Command substitution pattern

SourceSKILL.md
234ERR=$(jq -r '.error // empty' "$F")
235[ -z "$ERR" ] || { echo "No results: $ERR"; exit 1; }
236COUNT=$(jq '((.best_flights // []) + (.other_flights // [])) | length' "$F")
237[ "$COUNT" -gt 0 ] || { echo "No fares - check route, dates, stops, airline filters."; exit 1; }
238echo "Got $COUNT fares"
low line 273

Command substitution pattern

SourceSKILL.md
271# gate: status Success AND no top-level error AND a non-empty calendar array
272jq -e 'has("error") | not' "$DIR/raw-$TS-calendar.json" >/dev/null \
273 || { echo "Calendar: $(jq -r '.error' "$DIR/raw-$TS-calendar.json"). Falling back to probing date pairs."; }
274jq '(.calendar // []) | map(select((.has_no_flights // false) | not)) | sort_by(.price) | .[:3]' "$DIR/raw-$TS-calendar.json"
275```
medium line 224

Curl to non-GitHub URL

SourceSKILL.md
222 SLUG="lhr-jfk-round_trip-2026-09-12"; TS=$(date +%Y-%m-%d-%H%M%S)
223 mkdir -p ".searchapi/flight-price-monitor/$SLUG"
224 curl -s "https://www.searchapi.io/api/v1/search?engine=google_flights&flight_type=round_trip&departure_id=LHR&arrival_id=JFK&outbound_date=2026-09-12&return_date=2026-09-19&adults=1&travel_class=economy&stops=nonstop&currency=USD&sort_by=price&api_key=$SEARCHAPI_API_KEY" \
225 > ".searchapi/flight-price-monitor/$SLUG/raw-$TS-flights.json"
226 ```
medium line 260

Curl to non-GitHub URL

SourceSKILL.md
258
259```bash
260curl -s "https://www.searchapi.io/api/v1/search?engine=google_flights&flight_type=one_way&departure_id=LHR&arrival_id=JFK&outbound_date=2026-09-12&adults=1&travel_class=economy&stops=any&currency=USD&sort_by=price&api_key=$SEARCHAPI_API_KEY" \
261 > ".searchapi/flight-price-monitor/$SLUG/raw-$TS-flights.json"
262```
medium line 269

Curl to non-GitHub URL

SourceSKILL.md
267
268```bash
269curl -s "https://www.searchapi.io/api/v1/search?engine=google_flights_calendar&departure_id=LHR&arrival_id=JFK&outbound_date=2026-09-12&return_date=2026-09-19&flight_type=round_trip&currency=USD&api_key=$SEARCHAPI_API_KEY" \
270 > "$DIR/raw-$TS-calendar.json"
271# gate: status Success AND no top-level error AND a non-empty calendar array
Scanned on Aug 6, 2026
View Security Dashboard
Installation guide →
GitHub Stars 1
Rate this skill
Categorysupport
UpdatedAugust 9, 2026
SamJale/SearchApi-Claude-Plugin