{"openapi":"3.0.3","info":{"title":"Gnist Context — Flight Search","description":"Multi-source flight search — currently Amadeus GDS, with Kiwi, SAS EuroBonus, and Seats.aero planned.\n\n- **MCP endpoint:** `https://context.gnist.ai/mcp/flights/`\n- **Toolkit page:** `/toolkits/flights`\n- **Full API spec:** `/api/openapi.json`\n- **Get an API key:** `/signup`","version":"1.0.0","contact":{"name":"GnistAI","url":"https://gnist.ai"}},"servers":[{"url":"https://context.gnist.ai","description":"Production"}],"paths":{"/rest/flights/search_flights":{"post":{"tags":["Transport"],"summary":"search_flights","description":"Search for flights across multiple data sources.\n\nQueries the Amadeus GDS API. Additional sources (Kiwi, SAS EuroBonus,\nSeats.aero) are planned. Results are sorted by price or points depending\non mode.\n\nExamples:\n    search_flights(origin=\"OSL\", destination=\"JFK\", departure_date=\"2026-06-15\")\n    search_flights(origin=\"OSL\", destination=\"JFK\", departure_date=\"2026-06-15\", return_date=\"2026-06-22\", cabin_class=\"business\")\n    search_flights(origin=\"OSL\", destination=\"JFK\", departure_date=\"2026-06-15\", mode=\"award\")","operationId":"flights_search_flights","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"origin":{"description":"Origin IATA airport code (e.g. 'OSL').","type":"string"},"destination":{"description":"Destination IATA airport code (e.g. 'JFK').","type":"string"},"departure_date":{"description":"Departure date (YYYY-MM-DD).","type":"string"},"return_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Return date for round-trip (YYYY-MM-DD). Omit for one-way."},"adults":{"default":1,"description":"Number of adult passengers.","type":"integer"},"cabin_class":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Cabin class: economy, premium_economy, business, or first."},"mode":{"default":"all","description":"Search mode: 'revenue' (paid flights), 'award' (points/miles), or 'all'.","type":"string"},"max_results":{"default":20,"description":"Maximum number of results to return.","type":"integer"}},"required":["origin","destination","departure_date"],"type":"object"}}}}}},"/rest/flights/search_award_flights":{"post":{"tags":["Transport"],"summary":"search_award_flights","description":"Search specifically for award flights (points/miles redemptions).\n\nQueries for award flights (points/miles). Currently uses Amadeus;\nSAS EuroBonus and Seats.aero are planned. Results are sorted by points cost.\n\nExamples:\n    search_award_flights(origin=\"OSL\", destination=\"JFK\", departure_date=\"2026-06-15\")\n    search_award_flights(origin=\"OSL\", destination=\"LAX\", departure_date=\"2026-07-01\", cabin_class=\"business\")","operationId":"flights_search_award_flights","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"origin":{"description":"Origin IATA airport code (e.g. 'OSL').","type":"string"},"destination":{"description":"Destination IATA airport code (e.g. 'JFK').","type":"string"},"departure_date":{"description":"Departure date (YYYY-MM-DD).","type":"string"},"return_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Return date for round-trip (YYYY-MM-DD). Omit for one-way."},"adults":{"default":1,"description":"Number of adult passengers.","type":"integer"},"cabin_class":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Cabin class: economy, premium_economy, business, or first."},"max_results":{"default":10,"description":"Maximum number of results to return.","type":"integer"}},"required":["origin","destination","departure_date"],"type":"object"}}}}}},"/rest/flights/list_flight_sources":{"post":{"tags":["Transport"],"summary":"list_flight_sources","description":"List all registered flight data sources and their status.\n\nShows which sources are available, what modes they support (revenue/award),\nand whether they are currently enabled.\n\nExamples:\n    list_flight_sources()","operationId":"flights_list_flight_sources","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}]}},"/rest/flights/sas_awards_search":{"post":{"tags":["Transport"],"summary":"sas_awards_search","description":"Search for SAS EuroBonus award seat availability on routes from Oslo to North America.\n\nChecks Business and Premium Economy award seats on SAS flights. This is a\nslow tool (15-90 seconds depending on destination count) as it queries each\ndestination sequentially.\n\nExamples:\n    sas_awards_search()\n    sas_awards_search(destinations=[\"MIA\", \"LAX\"], priority_only=True)\n    sas_awards_search(passengers=2, max_stay_days=14)","operationId":"flights_sas_awards_search","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"destinations":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"IATA codes to check (e.g. ['MIA', 'LAX']). Omit to check all 11 configured destinations."},"passengers":{"default":3,"description":"Number of seats required on both legs.","type":"integer"},"min_stay_days":{"default":2,"description":"Minimum stay duration in days.","type":"integer"},"max_stay_days":{"default":10,"description":"Maximum stay duration in days.","type":"integer"},"priority_only":{"default":false,"description":"Return only results for priority destinations (MIA, LAX).","type":"boolean"}},"type":"object"}}}}}},"/rest/flights/sas_awards_list_destinations":{"post":{"tags":["Transport"],"summary":"sas_awards_list_destinations","description":"List all configured SAS EuroBonus award search destinations.\n\nShows destination codes, names, cabin class rules, and priority flags.\n\nExamples:\n    sas_awards_list_destinations()","operationId":"flights_sas_awards_list_destinations","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}]}},"/rest/flights/sas_awards_get_config":{"post":{"tags":["Transport"],"summary":"sas_awards_get_config","description":"Return the current SAS EuroBonus search configuration.\n\nShows origin, default passenger count, stay ranges, and lookahead window.\n\nExamples:\n    sas_awards_get_config()","operationId":"flights_sas_awards_get_config","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}]}},"/rest/flights/report_feedback":{"post":{"tags":["Transport"],"summary":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","operationId":"flights_report_feedback","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"}}}}}}},"tags":[{"name":"Transport","description":"Data sources: Transport"}],"components":{"securitySchemes":{"ApiKeyHeader":{"type":"apiKey","in":"header","name":"gnist-api-key","description":"API key passed via request header."},"ApiKeyQuery":{"type":"apiKey","in":"query","name":"gnist_api_key","description":"API key passed via query parameter."}}}}