{
"error": null,
"source": {
"url": "https://www.ryanair.com/gb/en/trip/flights/select?adults=2&teens=0&children=0&infants=0&dateOut=2026-11-21&isConnectedFlight=false&discount=0&isReturn=false&originIata=OPO&destinationIata=STN&tpAdults=2&tpTeens=0&tpChildren=0&tpInfants=0&tpStartDate=2026-11-21&tpOriginIata=OPO&tpDestinationIata=STN&tpDiscount=0",
"link_kind": "search",
"parser_version": "ryanair-0.1.0"
},
"airline": "ryanair",
"outcome": "offers",
"request": {
"cabin": "economy",
"market": "GB",
"origin": "OPO",
"airline": "ryanair",
"currency": "EUR",
"language": "en",
"passengers": {
"adults": 2,
"infants": [],
"children": []
},
"destination": "STN",
"max_credits": 2,
"return_date": null,
"departure_date": "2026-11-21"
},
"operation": "search",
"itineraries": [
{
"id": "14680cff-e0b3-4c47-83d4-43e9a4112e3b",
"price": {
"net": null,
"kind": "fare_total",
"basis": "per_adult",
"taxes": null,
"amount": "122.59",
"currency": "EUR",
"quantity": 2,
"party_total": "245.18",
"total_method": "derived",
"extras_included": false,
"checkout_verified": false
},
"stops": 0,
"origin": "OPO",
"baggage": {
"relation": "unknown",
"cabin_bag": null,
"cabin_max_kg": null,
"personal_item": null,
"checked_max_kg": null,
"checked_pieces": null,
"source_summary": null,
"cabin_dimensions_cm": null
},
"segments": [
{
"origin": "OPO",
"arrival_utc": "2026-11-21T12:15:00.000Z",
"destination": "STN",
"arrival_local": "2026-11-21T12:15:00.000",
"departure_utc": "2026-11-21T09:50:00.000Z",
"flight_number": "FR1262",
"departure_local": "2026-11-21T09:50:00.000",
"marketing_airline": "FR",
"operating_airline": null
}
],
"destination": "STN",
"return_date": null,
"fare_families": [],
"operator_name": null,
"departure_date": "2026-11-21",
"flight_numbers": [
"FR1262"
],
"missing_fields": [],
"duration_minutes": 145
},
{
"id": "26b3c335-5fe3-45b8-bd6d-e10fb15112fc",
"price": {
"net": null,
"kind": "fare_total",
"basis": "per_adult",
"taxes": null,
"amount": "76.99",
"currency": "EUR",
"quantity": 2,
"party_total": "153.98",
"total_method": "derived",
"extras_included": false,
"checkout_verified": false
},
"stops": 0,
"origin": "OPO",
"baggage": {
"relation": "unknown",
"cabin_bag": null,
"cabin_max_kg": null,
"personal_item": null,
"checked_max_kg": null,
"checked_pieces": null,
"source_summary": null,
"cabin_dimensions_cm": null
},
"segments": [
{
"origin": "OPO",
"arrival_utc": "2026-11-21T16:05:00.000Z",
"destination": "STN",
"arrival_local": "2026-11-21T16:05:00.000",
"departure_utc": "2026-11-21T13:40:00.000Z",
"flight_number": "FR520",
"departure_local": "2026-11-21T13:40:00.000",
"marketing_airline": "FR",
"operating_airline": null
}
],
"destination": "STN",
"return_date": null,
"fare_families": [],
"operator_name": "Malta Air",
"departure_date": "2026-11-21",
"flight_numbers": [
"FR520"
],
"missing_fields": [],
"duration_minutes": 145
},
{
"id": "c9e19662-cd8c-49b6-95aa-10bd46d8acb0",
"price": {
"net": null,
"kind": "fare_total",
"basis": "per_adult",
"taxes": null,
"amount": "29.99",
"currency": "EUR",
"quantity": 2,
"party_total": "59.98",
"total_method": "derived",
"extras_included": false,
"checkout_verified": false
},
"stops": 0,
"origin": "OPO",
"baggage": {
"relation": "unknown",
"cabin_bag": null,
"cabin_max_kg": null,
"personal_item": null,
"checked_max_kg": null,
"checked_pieces": null,
"source_summary": null,
"cabin_dimensions_cm": null
},
"segments": [
{
"origin": "OPO",
"arrival_utc": "2026-11-21T18:25:00.000Z",
"destination": "STN",
"arrival_local": "2026-11-21T18:25:00.000",
"departure_utc": "2026-11-21T16:00:00.000Z",
"flight_number": "FR7699",
"departure_local": "2026-11-21T16:00:00.000",
"marketing_airline": "FR",
"operating_airline": null
}
],
"destination": "STN",
"return_date": null,
"fare_families": [],
"operator_name": null,
"departure_date": "2026-11-21",
"flight_numbers": [
"FR7699"
],
"missing_fields": [],
"duration_minutes": 145
},
{
"id": "bdb5b869-d94a-4f9d-ab67-68cfe8e7c195",
"price": {
"net": null,
"kind": "fare_total",
"basis": "per_adult",
"taxes": null,
"amount": "37.99",
"currency": "EUR",
"quantity": 2,
"party_total": "75.98",
"total_method": "derived",
"extras_included": false,
"checkout_verified": false
},
"stops": 0,
"origin": "OPO",
"baggage": {
"relation": "unknown",
"cabin_bag": null,
"cabin_max_kg": null,
"personal_item": null,
"checked_max_kg": null,
"checked_pieces": null,
"source_summary": null,
"cabin_dimensions_cm": null
},
"segments": [
{
"origin": "OPO",
"arrival_utc": "2026-11-21T20:20:00.000Z",
"destination": "STN",
"arrival_local": "2026-11-21T20:20:00.000",
"departure_utc": "2026-11-21T17:55:00.000Z",
"flight_number": "FR1276",
"departure_local": "2026-11-21T17:55:00.000",
"marketing_airline": "FR",
"operating_airline": null
}
],
"destination": "STN",
"return_date": null,
"fare_families": [],
"operator_name": null,
"departure_date": "2026-11-21",
"flight_numbers": [
"FR1276"
],
"missing_fields": [],
"duration_minutes": 145
}
],
"observed_at": "2026-11-04T10:52:28.093674Z",
"completeness": {
"complete": true,
"warnings": [
"Effective market is unverified; prices are source quotes, not checkout totals.",
"Exact-date results only; adjacent dates excluded.",
"Party base totals are derived from source per-adult fares and counts."
],
"missing_fields": []
},
"capture_scope": "captured_results",
"schema_version": "1",
"source_priced_at": null,
"effective_request": {
"cabin": "economy",
"market": null,
"origin": "OPO",
"airline": "ryanair",
"currency": "EUR",
"language": "en",
"passengers": {
"adults": 2,
"infants": [],
"children": []
},
"destination": "STN",
"return_date": null,
"departure_date": "2026-11-21"
}
}