FlightsFrom APIflightsfrom.com ↗
Search airports, list all nonstop destinations, and fetch daily flight schedules by route. 3 endpoints covering IATA codes, airlines, flight numbers, and aircraft types.
What is the FlightsFrom API?
The FlightsFrom.com API provides 3 endpoints for exploring global nonstop flight routes and daily timetables. Use search_airports to resolve city names or IATA codes into airport records, then list_destinations to retrieve every direct route from that airport including airlines, operating days, and flight duration. A third endpoint, get_route_schedule, returns individual flight departures with flight numbers and aircraft types for any origin–destination pair on a given date.
curl -X GET 'https://api.parse.bot/scraper/4aa6f09a-bca7-4f0e-9650-84e99c795c48/search_airports?query=london' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace flightsfrom-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: FlightsFrom SDK — discover routes and schedules."""
from parse_apis.flightsfrom_com_api import FlightsFrom, InputNotFound
client = FlightsFrom()
# Search for airports matching a city name
for airport in client.airports.search(query="new york", limit=3):
print(airport.iata, airport.name, f"({airport.num_routes} routes)")
# Pick the first matching airport and list its nonstop destinations
airport = client.airports.search(query="new york", limit=1).first()
if airport is not None:
for dest in client.destinations.list(airport_iata=airport.iata, limit=5):
print(dest.destination_city, dest.destination_country,
f"{dest.flights_per_week}/week", f"{dest.duration_minutes}min")
# Drill into a specific destination's daily schedule
dest = client.destinations.list(airport_iata=airport.iata, limit=1).first()
if dest is not None:
try:
schedule = dest.schedule(origin_iata=airport.iata, date="2026-08-12")
print(f"{schedule.origin_iata}->{schedule.destination_iata}",
schedule.date, f"{schedule.total_flights} flights")
for flight in schedule.flights[:3]:
print(f" {flight.departure_time} {flight.airline} {flight.flight_number}")
except InputNotFound:
print("Route not found for the given airports")
print("exercised: airports.search / destinations.list / destination.schedule")
Search airports by city name, airport name, or IATA code. Returns matching airports with their IATA codes, location, and number of nonstop routes available. Use the returned IATA codes as input to list_destinations.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Search term: city name, airport name, or IATA code (e.g. 'new york', 'heathrow', 'LAX'). Minimum 3 characters recommended for meaningful results. |
{
"type": "object",
"fields": {
"airports": "array of airport objects with iata, name, city, country, country_code, display_name, and num_routes"
},
"sample": {
"data": {
"airports": [
{
"city": "New York",
"iata": "JFK",
"name": "John F Kennedy International",
"country": "USA",
"num_routes": 197,
"country_code": "US",
"display_name": "New York (JFK), USA"
}
]
},
"status": "success"
}
}About the FlightsFrom API
Airport Search and Route Discovery
search_airports accepts a free-text query of at least 3 characters — city name, airport name, or IATA code — and returns an array of matching airport objects. Each object includes iata, name, city, country, country_code, display_name, and num_routes. The num_routes field tells you up front how many nonstop destinations are available from that airport, which helps prioritize which airports to query next.
Nonstop Destination Listings
list_destinations takes a 3-letter airport_iata code and returns the full set of nonstop routes as an array of route objects. Each route carries route_id, destination_iata, destination_city, destination_country, destination_country_code, and duration details, along with operating days and airlines serving the route. The total_destinations integer in the response tells you the total count without having to measure the array. Both route_id and destination_iata feed directly into the schedule endpoint.
Daily Flight Schedules
get_route_schedule requires origin_iata, destination_iata, and a date in ISO YYYY-MM-DD format. The response contains a flights array where each element has departure_time, airline, flight_number, and aircraft. A duration_info string summarizes the flight duration range for that date, and total_flights gives the count of scheduled departures. Dates must be current or future; the endpoint does not return historical schedule data.
The FlightsFrom API is a managed, monitored endpoint for flightsfrom.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when flightsfrom.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official flightsfrom.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a route map showing all nonstop connections from a given airport using
list_destinations. - Identify which airlines and aircraft types operate a specific city-pair on a chosen travel date.
- Create an airport search autocomplete that resolves partial city or airport name input to IATA codes.
- Compare flight frequency and operating days across competing routes for market analysis.
- Aggregate
num_routesfromsearch_airportsresults to rank airports by connectivity. - Populate a travel planning tool with real departure times and flight numbers for a selected route.
- Monitor schedule changes on a specific route by polling
get_route_scheduleacross consecutive dates.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does FlightsFrom.com offer an official developer API?+
What does `list_destinations` return beyond just the destination airport code?+
list_destinations returns a full route object for each nonstop destination, including destination_city, destination_country, destination_country_code, flight duration, operating days of the week, and the airlines serving the route. The route_id field can be paired with destination_iata to query get_route_schedule for a specific date.Can I retrieve historical flight schedules for past dates?+
get_route_schedule only accepts current or future dates. Historical departure data is not available through this API. You can fork it on Parse and revise to add a historical schedule endpoint if your source supports past date lookups.Does the API return fare or ticket pricing data?+
Are connecting or codeshare-only routes included in `list_destinations` results?+
list_destinations surfaces nonstop routes. Itineraries requiring a connection are not listed as separate destination entries. Codeshare information is not broken out as a distinct field in the current response schema. You can fork the API on Parse and revise to surface codeshare details if the underlying route data distinguishes them.