aircanada.com APIwww.aircanada.com ↗
Search Air Canada flights by route, date, and passenger count. Returns full fare family pricing, segment details, and schedules via a single API endpoint.
curl -X GET 'https://api.parse.bot/scraper/d1ff8525-8a52-45df-910a-5b13ba14d6d9/search_flights?date=2026-05-28&origin=LGA&destination=YYZ' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for available Air Canada flights between two airports on a given date. Returns all flight options with detailed pricing, fare rules, aircraft info, and segment details. Supports one-way and round-trip searches with multiple passenger types.
| Param | Type | Description |
|---|---|---|
| daterequired | string | Departure date in YYYY-MM-DD format |
| youth | integer | Number of youth passengers |
| adults | integer | Number of adult passengers |
| originrequired | string | Origin airport IATA code (e.g., LGA, YVR, JFK, YYZ) |
| country | string | Country code for pricing (e.g., US, CA) |
| children | integer | Number of child passengers |
| trip_type | string | Trip type: OneWay or RoundTrip |
| destinationrequired | string | Destination airport IATA code (e.g., YYZ, YUL, LAX, YVR) |
| infants_lap | integer | Number of infants on lap |
| return_date | string | Return date in YYYY-MM-DD format (required when trip_type is RoundTrip) |
| infants_seat | integer | Number of infants with seat |
{
"type": "object",
"fields": {
"search": "object containing origin, destination, departure_date, trip_type, and currency",
"filters": "object containing airlines array, connectionAirports array, and stops array",
"flights": "array of flight objects each with id, ranking, departure/arrival times, duration, segments, and fares across cabins",
"summary": "object containing total_flights count, minimum_travel_time_minutes, and cheapest_by_cabin prices"
},
"sample": {
"data": {
"search": {
"origin": "LGA",
"currency": {
"code": "USD",
"symbol": "$"
},
"trip_type": "OneWay",
"destination": "YYZ",
"departure_date": "2026-05-28"
},
"filters": {
"stops": [
"NonStop",
"OneStop"
],
"airlines": [
{
"code": "AC",
"name": "Air Canada"
}
],
"connectionAirports": [
"YUL"
]
},
"flights": [
{
"id": "0aade50f-2c07-4218-89f5-2010321952c4",
"fares": [
{
"offers": [
{
"base_fare": 105,
"fare_rules": [
{
"type": "CHANGE",
"value": "no"
}
],
"seats_left": null,
"total_fare": 128.28,
"fare_family": "BASIC",
"total_taxes": 23.28,
"total_fare_rounded": 129
}
],
"cabin_code": "Y",
"seats_left": null,
"cheapest_fare": 129,
"has_lie_flat_seats": false
}
],
"origin": "LGA",
"ranking": 1,
"duration": "1h 40m",
"segments": [
{
"arrival": {
"airport": "YYZ",
"datetime": "2026-05-28T08:25:00-04:00",
"terminal": "1"
},
"aircraft": {
"code": "E75",
"name": "Embraer E175"
},
"duration": "1h 40m",
"has_wifi": true,
"departure": {
"airport": "LGA",
"datetime": "2026-05-28T06:45:00-04:00",
"terminal": "B"
},
"flight_id": "FLT-QK8451-LGAYYZ-2026-05-28T06:45:00",
"connection_time": null,
"marketing_airline": {
"code": "AC",
"name": "Air Canada",
"flight_number": 8451
},
"operating_airline": {
"code": "QK",
"name": "Air Canada Express - Jazz"
}
}
],
"offer_type": "NonStop",
"destination": "YYZ",
"is_cheapest": true,
"number_of_stops": 0,
"arrival_datetime": "2026-05-28T08:25:00-04:00",
"departure_datetime": "2026-05-28T06:45:00-04:00",
"has_airport_change": false,
"operating_airlines": [
{
"code": "QK",
"name": "Air Canada Express - Jazz"
}
],
"has_overnight_connection": false
}
],
"summary": {
"total_flights": 20,
"cheapest_by_cabin": {
"J": 381,
"Y": 129
},
"minimum_travel_time_minutes": 93
}
},
"status": "success"
}
}About the aircanada.com API
The Air Canada API provides one endpoint — search_flights — that returns all available flights between two airports on a given date, covering up to six fare families (Basic, Standard, Flex, Comfort, Latitude, Business) per itinerary. Each response includes at least 10 structured fields per flight object: departure and arrival times, total duration, segment breakdown, aircraft type, and per-cabin pricing, along with a summary of the cheapest fare by cabin across the full result set.
What the API Returns
The search_flights endpoint accepts an origin and destination as IATA codes (e.g., YYZ, LAX, JFK), a departure date in YYYY-MM-DD format, and optional passenger counts for adults, youth, and children. It returns a flights array where each entry includes a unique flight id, a ranking score, departure and arrival timestamps, total duration, and a nested segments array for multi-leg itineraries. The fares object within each flight breaks down pricing across all available cabin classes for that specific routing.
Filters and Summary Data
Alongside the flights array, the response includes a filters object listing the airlines, connectionAirports, and stops arrays — useful for building UI filter controls without a separate metadata call. The summary object provides total_flights count, minimum_travel_time_minutes for the route, and cheapest_by_cabin prices so you can surface lowest fares per cabin class without iterating the full result set yourself.
Search Configuration
The trip_type parameter accepts OneWay or RoundTrip. A country code (e.g., US, CA) can be passed to control the currency context of returned prices. All pricing in the response reflects the currency indicated in the top-level search object, which also echoes back the origin, destination, departure_date, and trip_type for confirmation.
- Compare fare family pricing (Basic vs. Latitude vs. Business) for a specific route and date before booking
- Build a flight price tracker that monitors
cheapest_by_cabinacross multiple dates for budget alerts - Aggregate connection airport options from the
filters.connectionAirportsfield to analyze Air Canada hub routing - Display minimum travel time for a corridor using
summary.minimum_travel_time_minutesin a route comparison tool - Calculate per-passenger total cost by combining fare data with adult, youth, and child passenger counts
- Populate a search results UI with stop-count filters using the
filters.stopsarray from the response - Analyze aircraft type distribution across Air Canada routes using segment-level aircraft data
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Air Canada have an official developer API?+
What does the `fares` field in each flight object contain?+
fares object contains pricing and fare rule data for each available cabin class on that flight — spanning up to six fare families: Basic, Standard, Flex, Comfort, Latitude, and Business. Not every fare family will be present for every flight; the response only includes cabins actually available for that routing and date.Does the API return return-leg flight options for round-trip searches?+
trip_type parameter accepts RoundTrip, but the current API structure surfaces outbound flight options with pricing. Full return-leg itinerary results as a separate bookable set are not currently broken out in the response schema. You can fork this API on Parse and revise it to add a return-date parameter and a dedicated return-flights response array.Does the API cover codeshare or partner airline flights on Air Canada routes?+
filters.airlines array in the response reflects which airlines appear in results for a given search, which can include partner carriers on shared routes. However, non-Air Canada-operated itineraries are not guaranteed to appear, and separate endpoints for partner or codeshare-only searches are not currently included. You can fork this API on Parse and revise it to scope results to specific airline codes from the filters array.