Almosafer Flights Scraper – Saudi Arabia Fares avatar

Almosafer Flights Scraper – Saudi Arabia Fares

Pricing

from $0.50 / 1,000 results

Go to Apify Store
Almosafer Flights Scraper – Saudi Arabia Fares

Almosafer Flights Scraper – Saudi Arabia Fares

Scrape Almosafer (المسافر) flight fares for Saudi Arabia in SAR: one-way and round-trip prices across multiple routes with airlines, flight numbers, stops, layovers, baggage, refundability and seats left. Search routes from Jeddah, Riyadh, Dammam and more.

Pricing

from $0.50 / 1,000 results

Rating

0.0

(0)

Developer

Boring Internet Explorer

Boring Internet Explorer

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

✈️ Almosafer المسافر Flights Scraper — Saudi Arabia (SAR)

Almosafer (المسافر) is Saudi Arabia's leading online travel agency, selling flights from 450+ airlines in Saudi riyals (SAR). This scraper runs a flight search for any route, date, cabin and passenger mix and returns every fare option as structured data — prices, airlines, flight numbers, stops, layovers, baggage, refundability and seats left — ready for price tracking, comparison and analysis.

Why use this scraper?

  • 💰 Fare monitoring — track SAR prices on any route day by day
  • 📊 Route benchmarking — compare airlines, direct vs connecting itineraries and cabins
  • 🧳 Baggage and refund insights — see which fares include checked bags or are refundable
  • 🏢 Travel agencies and OTAs — feed competitor price comparisons and dynamic pricing
  • 📈 Market research — measure capacity, seat availability and low-cost carrier pricing in Saudi Arabia
  • 🔔 Deal alerts — schedule runs and notify on price drops
  • 🤖 AI and analytics pipelines — clean, flat JSON with full leg and segment detail

Search inputs

This is a flight actor, so the input is a set of dedicated search fields rather than URLs.

FieldTypeDefaultDescription
tripTypestringoneWayoneWay or roundTrip. Round-trip results list outbound flights priced with the cheapest total round-trip fare.
originstring—3-letter IATA code of the departure airport or city (e.g. JED, RUH, DMM).
destinationstring—3-letter IATA code of the arrival airport or city (e.g. DXB, CAI, LON).
departureDatestring—YYYY-MM-DD or relative to today (e.g. 14 days).
returnDatestring—Required for round trips. YYYY-MM-DD or relative.
adultsinteger1Adults (12+).
childreninteger0Children (2–11).
infantsinteger0Infants (under 2), at most one per adult. Up to 9 passengers in total.
cabinClassstringEconomyEconomy, PremiumEconomy, Business or First (First is shown by the site as Business fares).
directFlightsOnlybooleanfalseKeep only non-stop itineraries.
maxItemsinteger50Maximum flights returned, cheapest first.
proxyConfigurationobjectno proxyOptional Apify proxy settings.

Example input

{
"tripType": "roundTrip",
"origins": ["JED", "RUH"],
"destinations": ["DXB", "CAI"],
"departureDate": "2026-11-20",
"returnDate": "2026-11-27",
"adults": 1,
"cabinClass": "Economy",
"maxItems": 50,
"proxyConfiguration": { "useApifyProxy": false }
}

Output

Each flight option is stored as one record in the default dataset, cheapest first. Prices are numbers in SAR. For one-way searches price is the one-way fare for all travellers; for round trips it is the lowest total round-trip fare available with that outbound flight (priceScope: "roundTripFrom").

Example output

{
"scrapedAt": "2026-10-07T16:29:23.551Z",
"url": "https://www.almosafer.com/en/flights/JED-DXB/2026-11-20/Economy/1Adult",
"title": "JED → DXB · Flynas · XY-509 · 14:30",
"price": 709.99,
"currency": "SAR",
"country": "Saudi Arabia",
"market": "sa",
"itineraryId": "1c095a00XY-cda1b510_XY_ONE",
"tripType": "oneWay",
"priceScope": "oneWay",
"pricePerTraveller": 709.99,
"basePrice": 445.99,
"taxes": 264,
"outboundPrice": 709.99,
"origin": "JED",
"destination": "DXB",
"departureDate": "2026-11-20",
"returnDate": null,
"adults": 1,
"children": 0,
"infants": 0,
"cabinClass": "Economy",
"departureAirport": "JED",
"arrivalAirport": "DXB",
"departureDateTime": "2026-11-20T14:30:00",
"arrivalDateTime": "2026-11-20T18:30:00",
"durationMinutes": 180,
"stops": 0,
"airlines": ["Flynas"],
"flightNumbers": ["XY-509"],
"validatingAirline": "Flynas",
"refundable": false,
"cabinBaggage": "1 x 7 kg",
"checkedBaggage": null,
"seatsRemaining": 9,
"hasFareFamilies": true,
"tabbyEligible": true,
"tamaraEligible": true,
"loyaltyProgram": "flynas - nasmiles",
"legs": [
{
"direction": null,
"departureAirport": "JED",
"arrivalAirport": "DXB",
"departureDateTime": "2026-11-20T14:30:00",
"arrivalDateTime": "2026-11-20T18:30:00",
"durationMinutes": 180,
"stops": 0,
"route": "JED - DXB",
"airlines": ["Flynas"],
"flightNumbers": ["XY-509"],
"layovers": [],
"segments": [
{
"flightNumber": "XY-509",
"marketingAirline": "XY",
"operatingAirline": "XY",
"aircraft": null,
"departureAirport": "JED",
"departureTerminal": "1",
"arrivalAirport": "DXB",
"arrivalTerminal": "1",
"departureDateTime": "2026-11-20T14:30:00",
"arrivalDateTime": "2026-11-20T18:30:00",
"durationMinutes": 180,
"cabin": "Economy",
"seatsRemaining": 9
}
]
}
]
}

Field reference

FieldTypeDescription
scrapedAtstringISO 8601 scrape timestamp
urlstringAlmosafer search results page for this search
titlestringRoute, airline, first flight number and departure time
pricenumberTotal price for all travellers (see Output)
currencystringSAR
country / marketstringSaudi Arabia / sa
itineraryIdstringAlmosafer itinerary identifier
tripType / priceScopestringSearch type; oneWay or roundTripFrom
pricePerTravellernumberAverage price per traveller
basePrice / taxesnumberOutbound fare before taxes and taxes
outboundPricenumberPrice of the outbound flight alone
origin / destinationstringSearched IATA codes
departureDate / returnDatestringSearched dates
adults / children / infantsintegerPassenger mix
cabinClassstringCabin of the fare
departureAirport / arrivalAirportstringOutbound airports
departureDateTime / arrivalDateTimestringLocal outbound times
durationMinutesintegerTotal outbound travel time
stopsintegerNumber of stops
airlines / flightNumbersarrayAirlines and flight numbers
validatingAirlinestringTicketing airline
refundablebooleanWhether the fare is refundable
cabinBaggage / checkedBaggagestringAllowance; null checked baggage means not included
seatsRemainingintegerSeats left at this fare, when reported
hasFareFamiliesbooleanHigher fare options exist
tabbyEligible / tamaraEligiblebooleanBuy-now-pay-later eligibility
loyaltyProgramstringAirline loyalty programme
legsarrayPer-leg detail: route, layovers (airport, terminal, minutes) and segments (aircraft, terminals, times, cabin)

❓ FAQ

Which currency and country are used? Prices are in Saudi riyals (SAR) as shown to travellers in Saudi Arabia.

Can I search several routes at once? Yes. Provide multiple origins and destinations; each origin-destination pair is searched (same-airport pairs are skipped) and maxItems applies per pair.

Can I search by city name? Use IATA codes; city codes such as LON or NYC cover all airports in the city.

Does it return return-flight details for round trips? Results list outbound options priced with the lowest round-trip total. Run a separate one-way search for the return date to get return flights.

How are results ordered? Cheapest first, limited by maxItems.

How fresh is the data? Every run performs a live search, so prices and seats reflect the moment of scraping.

Is a proxy required? No, the default runs without a proxy. Enable Apify proxy if you scrape at high volume.

What if a route has no flights? The run finishes successfully with an empty dataset.

🔗 Want More Data?

🛠️ Need a custom scraper?

Need this scraper adapted to your use case — extra fields, additional filters, a different output format, or a new website? Reach out at boringinternetexplorer@gmail.com and we'll make it happen.