End Client Empty Leg Search
The empty leg search use case let's your end clients find and request available empty legs in Avinode
Overview
The empty leg search API offers the possibility to find information about available empty legs that could be of interest to the end client. With the given search criteria, which can be a start airport and/or an end airport along with a time span, the empty leg search algorithm tries to match available empty legs with the given input. Read more about how the empty leg search algorithm works in the info box below.
The information shown can include aircraft details, flight times, estimated prices (if available) etc. The end client can then request the best empty leg option. The request will be available as a lead in the Avinode Marketplace and will contain information about the requested empty leg, along with the end client’s contact information. The company owning the app can then access the lead directly in the Avinode Marketplace and use all the Marketplace features to find a suitable solution for the end client.
Important: Empty leg postings do not represent “Scheduled Flights”. Times and routes are flexible and need to be confirmed with the operator.
Empty Leg Search explained
The empty leg search works a bit differently than the regular availability search in Avinode. For example, if the entered itinerary is from Paris to Rome, an empty leg search might return an empty leg from London to Rome since Paris is almost on that route.
The operator can in this case fly empty from London to Paris, pick up the passengers and fly them from Paris to Rome. The operator can then make some money on this otherwise non-profitable flight from London to Rome.
Similar matches are made if only the start airport or only the end airport is specified in the input. For example if the start airport is in San Francisco and no end airport is specified, then an empty leg from Los Angeles to New York can be returned since it is a relatively short distance between Los Angeles and San Francisco compared with the total distance of the empty leg.
FeasibilityFor an empty leg to match it has to be deemed feasible in terms of the ratio between the distance of the empty leg segment (NM) and the requested distance (NM). If they differ too much the empty leg will not match.
Pre-requisites
Gaining an understanding of our APIs and fundamentals is essential to the success of your project. To do so, start by reading our introduction page, including the pages linked in the "Before you start developing" section.
Implementation and API Examples
Use case parts
This use case is implemented in one or more frontends, and in most cases, also includes a backend. Frontends are, in most cases, web interfaces on a company’s website or native mobile apps. The backend can be implemented with any technology preferred by the company, for example, Java, .NET, PHP, Python, Ruby, Go, etc. Using a backend is recommended and required if the frontend is a web interface. For a native mobile app it would be possible for a frontend to just communicate directly with the Avinode API servers.
Searchable aircraft
The information presented to the end client can be based on all empty legs available in the Avinode Marketplace matching the search criteria, or a subset of these. Brokers implementing this application usually base the information on all empty legs, while operators usually base the information on their own fleet.
Workflow
Find airports
The Airports API can be used to create features enabling the end client to find airports by entering airport or city names. The Airports API also returns the airport codes that are required when calling other API operations.
Airport information source
The application can use a different source for airport information. However, this may increase the risk of errors, should that source have airport code information that does not match the airport code information available through the Avinode API services.
GET /airports/search
You can search airports using a text filter to match the airport code or name etc. or using Geo-location data and a max distance (radius). It is not possible to combine filter search with location search.
The results will be sorted by airport popularity based on usage data from the Avinode Marketplace.
See more at GET /airports/search
Abuse
Calling the service in any repetitive or automated manner to collect airport information is not allowed.
Find trip options
The end client specifies trip details like a start and/or end airport, a time span (in number of days out they are willing to fly) and pax numbers. The application then calls the empty leg search API service and presents the result as options to the end client.
Search for available empty legs
The application should call the POST /emptyleg/search operation with details regarding itinerary, pax numbers, days of flexibility and other potential criteria such as the subset of operators to include in the search.
This operation is used to find available empty legs currently published in the Avinode Marketplace. If the empty leg is priced the price will be available in the response. More information about available input parameters, and what can be included in the output, is described on the POST /emptyleg/search page.
End client requests
This part of the implementation deals with when the end client wants to create a booking request from one of the trip options presented. The booking request will be available as a client lead in the Avinode Marketplace for the company owning the API connection that was used. From here the Avinode member can perform the final sourcing of aircraft to suit the end client's needs.
The generated client lead data can be downloaded into an external quoting tool, to store the customer information etc. Using the deep links provided in the response from the lead request, it's possible to initiate a pre-filled aircraft search in Avinode, directly from the external system, avoiding any double entry. See the Deep links section below for more details.
Create the end client lead
The application should call the POST /leads endpoint with details about what the end client has requested, and also the end client’s contact information. This lead will show in the broker's Trips - Client Leads page in Avinode Marketplace, and from here it's easy to send a request on the chosen empty leg or alternatively to initiate an aircraft search from the given itinerary.
Client lead push notifications
There is also the option as a broker to subscribe to notifications for every incoming client lead that your application generates. Once notified, the lead data can be downloaded into an external quoting tool.
Read more about how to setup Avinode webhook notifications.
Deep links
When downloading the client lead to your backend system, there will be two deep links available in the response data (see screenshot below), to use for opening up a new browser window with Avinode:
- viewInAvinode - takes the broker directly to the newly created lead inside Avinode, showing all the trip request and customer information
- searchInAvinode - opens up an aircraft search in Avinode (based on the lead itinerary) that will be initiated immediately for further sourcing
Read more about working with deep links here.
Restrictions
Data displayed to the end client
Without explicit approval from Avinode, any information that can easily identify operators may not be displayed to the end client.
Storing data returned from the API operations
The application may only store data that is required to complete the business transaction with the end-client. So, for example, if the APIs returned information for 100 aircraft and the end-client makes a request for 2 of these, then any information about the other 98 aircraft may not be stored in the application’s backend storage.
Go Live!
Implementation checklist
All items on this checklist must be implemented for an application of this type to be allowed to call the live production environment of Avinode Marketplace:
- The application must comply with the Basic Go Live requirements.
- If the Avinode Airport lookup API is used; when an end client is entering itinerary details, the application should call on the GET /airports/search endpoint for airport lookup.
Note:The application is not allowed to call the service in any repetitive or automated fashion to collect airport information- The application calls on the POST /api/emptylegs/search endpoint with valid parameters to run an availability search.
- The application successfully retrieves the search results response.
- The application does not display any information (seller name, aircraft tail number, etc.) or images from the search results that could easily identify the seller/operator.
- The application does not store data retrieved from searches in its own back-end, nor does it build a “database” based on returned search results.
- The application does not allow the end client to send out a request RFQ directly to an operator based on a search result. The empty leg preferred by the end client should be used to generate a lead in Avinode Marketplace.
- The application calls on the appropriate POST /leads endpoint with valid parameters, which will generate a Client Lead in Avinode Marketplace.
- The application does not store any data related to options that aren’t requested by the end client.
Updated 25 days ago