Travel-hacking-toolkit ignav

Search for flights using the Ignav API. Fast REST API for flight prices and booking links. Use alongside other flight sources for price comparison. Always include in every flight search. Triggers on any flight-related search request.

install
source · Clone the upstream repo
git clone https://github.com/borski/travel-hacking-toolkit
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/borski/travel-hacking-toolkit "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/ignav" ~/.claude/skills/borski-travel-hacking-toolkit-ignav && rm -rf "$T"
manifest: skills/ignav/SKILL.md
source content

Flight Search via Ignav API

Fast REST API flight search at

https://ignav.com
. Returns structured JSON with prices, itineraries, and booking links. 1,000 free requests, no rate limit.

Setup

Get a free API key at https://ignav.com/signup (1,000 requests, no credit card).

Set

IGNAV_API_KEY
in your environment or
.env
file.

Workflow

  1. Parse the user's request (origin, destination, dates, trip type, passengers, cabin)
  2. Look up airport codes if user gave city names
  3. Search flights (one-way or round-trip)
  4. Present results in markdown table
  5. Get booking links if user wants to book

Endpoints

Search Airports

curl -s "https://ignav.com/api/airports?q=Barcelona&limit=5" \
  -H "X-Api-Key: $IGNAV_API_KEY"

One-Way Flights

curl -s -X POST "https://ignav.com/api/fares/one-way" \
  -H "X-Api-Key: $IGNAV_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "origin": "SFO",
    "destination": "JFK",
    "departure_date": "2026-05-15",
    "adults": 1,
    "cabin_class": "economy"
  }'

Round-Trip Flights

curl -s -X POST "https://ignav.com/api/fares/round-trip" \
  -H "X-Api-Key: $IGNAV_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "origin": "SFO",
    "destination": "JFK",
    "departure_date": "2026-05-15",
    "return_date": "2026-05-20",
    "adults": 1,
    "cabin_class": "economy"
  }'

Booking Links

curl -s -X POST "https://ignav.com/api/fares/booking-links" \
  -H "X-Api-Key: $IGNAV_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ignav_id": "the_itinerary_id", "adults": 1}'

Parameters

ParameterTypeDescription
adults
intNumber of adults (default: 1)
children
intNumber of children (default: 0)
cabin_class
string
economy
,
premium_economy
,
business
,
first
max_stops
int0 (direct only), 1, or 2
max_price
intMaximum price filter
departure_time_range
object
{"earliest_hour": 8, "latest_hour": 20}
airlines_include
arrayOnly these airline codes
airlines_exclude
arrayExclude these airline codes
market
stringCountry code for pricing (default: "US"). Different markets return different prices.

Response Structure

Each itinerary contains:

  • price
    :
    {"amount": 299, "currency": "USD"}
  • outbound
    : carrier, duration_minutes, segments array
  • inbound
    : same (null for one-way)
  • cabin_class
    : the cabin class
  • bags
    :
    {"carry_on": 1, "checked": 0}
  • ignav_id
    : unique ID for booking links

Each segment:

marketing_carrier_code
,
flight_number
,
departure_airport
,
departure_time_local
,
arrival_airport
,
arrival_time_local
,
duration_minutes
,
aircraft
.

Output Format

Always use markdown tables.

#AirlineStopsDurationDepartArrivePriceBags
1VuelingNonstop2h 15m8:30 AM10:45 AMEUR 1251 carry-on
2RyanairNonstop2h 20m6:15 AM8:35 AMEUR 891 carry-on

After the table, highlight cheapest, fastest, and best value. Call out tradeoffs. Offer booking links.

Notes

  • Dates are required for all searches
  • Default to round-trip and economy if not specified
  • Use airport search endpoint for city name lookups
  • Market affects prices. Same route can cost significantly less from a different market. Try departure country first, then destination country.
  • Does NOT include Southwest. Use google-flights skill for SW.