Air Canada APIaircanada.com ↗
Search Air Canada flights with fares and schedules, retrieve live flight status by number or route, and access fleet and cabin layout data via 5 endpoints.
What is the Air Canada API?
The Air Canada API gives developers access to 5 endpoints covering flight search, real-time flight status, and published fleet information from aircanada.com. The search_flights endpoint returns full fare breakdowns across cabin classes with segment-level detail, while get_flight_status and search_flight_status expose officially published status records by flight number, route, or date. No Air Canada account or booking credentials are needed.
curl -X GET 'https://api.parse.bot/scraper/d1ff8525-8a52-45df-910a-5b13ba14d6d9/search_flights?date=2026-10-23&origin=YYZ&country=US&trip_type=OneWay&destination=YVR&return_date=2026-10-30&youth=0&adults=1&children=0&infants_lap=0&infants_seat=0' \ -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. Each flight includes segments with aircraft details, and fares across cabin classes (Economy Y, Premium Economy O, Business J) with multiple fare families per cabin.
| 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"
}
}About the Air Canada API
Flight Search
The search_flights endpoint accepts an origin and destination as IATA codes (e.g. YYZ, LAX), a departure date, trip type (OneWay or RoundTrip), passenger counts across adults, youth, and children, and an optional country code for currency localization. The response includes a flights array where each entry carries departure and arrival times, total duration, a segments array for multi-leg itineraries, and a fares object broken down by cabin class. A summary field reports total available flights, minimum travel time in minutes, and the cheapest fare found per cabin. A filters object lists connection airports and stop counts available in the result set.
Flight Status
get_flight_status retrieves the official published status for a specific flight number on a given date, with an optional origin filter to isolate one leg of a multi-segment or codeshare operation. It returns a found boolean, a flight object for the first matching leg, and a flights array covering all matching legs. Each leg includes airlineCode, flightNumber, flightDate, origin, destination, originName, destinationName, and the scheduled and actual times. search_flight_status supports both flight-number lookup and route-based lookup (origin + destination required when flightNumber is omitted), with an offset parameter for paging through results and a has_more boolean.
Fleet and Cabin Layout
get_fleet returns Air Canada's published fleet records from the official Our Fleet page. Each record includes aircraftCode (IATA type, e.g. 77W), fleetCode, aircraftName, manufacturer, brand, operator, fleetCount, and a configurationVariant key for aircraft types with multiple published cabin configurations. The response also includes a lastVerifiedAt ISO timestamp. get_typical_layout accepts either the IATA aircraft code or the fleet page code and an optional configurationVariant to filter results to a specific configuration, returning layout records with cabin breakdowns.
The Air Canada API is a managed, monitored endpoint for aircanada.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when aircanada.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 aircanada.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 flight price tracker that monitors cheapest fares by cabin class between two city pairs using
search_flightsfare data - Power a travel dashboard that shows live Air Canada flight status by route or flight number for a given travel date
- Create an alerting system for flight delays by polling
get_flight_statusfor specific flight numbers across multiple dates - Display seat map context by combining
get_typical_layoutcabin configuration data with flight search results - Aggregate minimum fares across origin-destination pairs using the
summary.cheapest_by_cabinfield fromsearch_flights - Build a fleet reference tool showing aircraft count, operator, and configuration variants per aircraft type from
get_fleet - Identify codeshare or multi-leg operations by checking the
flightsarray returned byget_flight_statusfor a single flight number
| 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 Air Canada have an official public developer API?+
How does `search_flight_status` differ from `get_flight_status`?+
search_flight_status supports two lookup modes — flight number or route (origin + destination) — and includes an offset parameter for stepping through multiple matching legs. get_flight_status is a focused lookup by flight number that always returns a found boolean and a flight convenience field pointing to the first matching leg, making it simpler when you know the exact flight number.How far in advance or behind does the flight status data cover?+
found: false or total: 0. The exact window can shift with schedule changes on Air Canada's side.Does the API return booking, loyalty, or seat availability data?+
Can I retrieve round-trip pricing with a return date from `search_flights`?+
trip_type to RoundTrip, but the search_flights endpoint accepts a single date input representing the outbound departure date. A separate call with the return date as the date parameter is needed to get inbound pricing. The API does not currently expose a combined round-trip fare that bundles both legs in one response.