Full flight search
One-way, round-trip, multi-city (up to 6 planned stops) and open-jaw — leave from one city, come back to another.
A dedicated backend for a travel agency
We took flight search out of Sabre's cryptic terminal and put it inside the agency's CRM — public and negotiated fares in the same list, the real commission visible on every offer, and results in seconds for any agent, not just the veterans.
The client worked with Sabre — one of the largest global distribution systems (GDS) used by travel agencies worldwide. The problem was never a lack of data; it was getting to it. Every flight search had to be run by hand, in Sabre's cryptic terminal, with commands only an experienced agent knows.
The cost showed up in every working day: time burned on every single quote request, total dependence on a handful of key people, and an invisible ceiling on how many requests could be handled per day.
They asked us for one thing: bring the full power of Sabre into their CRM, behind an interface any agent can use — no terminal training required.
We built a dedicated backend service from scratch, sitting between the client's CRM and Sabre. The CRM asks in plain terms — “flight Bucharest–New York, business, 2 adults” — and our service assembles the complex Sabre request, sends it, interprets the raw response, and hands it back clean, ordered and ready to display.
A simple request goes in, a complex one goes out. The raw response comes back normalized, sorted and ready to display.
One-way, round-trip, multi-city (up to 6 planned stops) and open-jaw — leave from one city, come back to another.
Search around the target date so the agent lands on the best price without re-running the search by hand.
The single most valuable piece for the client. The system returns public prices and negotiated fares — the agency's own contracts — side by side, so the agent sees at a glance where the better margin sits.
For every offer, the system automatically extracts the commission the agency actually earns under its airline contracts. The agent knows what each option is worth on the spot — no manual math.
The same request goes out through 10 of the agency's commercial identities at once, and the results are aggregated and sorted cheapest-first. In practice: access to a set of fares a single search would never have seen.
Classic fares (ATPCO), low-cost and NDC — the airlines' new direct distribution standard — in a single query.
A real-time check that an offer is still valid before it ever reaches the end customer.
A good part of Sabre's real behaviour isn't publicly documented — from the correct request structure for private fares to the actual limits on returned results.
We built our own testing toolkit to probe the live system and validate every assumption empirically. Every capability was confirmed against the real environment, not inferred from documentation.
The response arrives in a compressed, cross-referenced format that has to be reassembled piece by piece before it means anything to a human.
We wrote a normalization module that turns that raw format into clear itineraries — segments, stops, durations, prices — plus fixes for subtle issues: flight and layover durations miscalculated across time zones or over midnight.
A temporary Sabre error must never surface as a failed search for the agent, and an expired offer must never reach the end customer.
Smart automatic retries, rate limiting, result caching and proper offer-expiry handling — so the system stays predictable even when the source behind it isn't.
The agency now has its own search engine inside the CRM. Any agent — regardless of Sabre experience — can generate a complete list of flight options in seconds, with public and private fares, the commission in plain sight, and itineraries ready to send to the customer.
The service runs containerized, is covered by more than 80 automated tests, and is built modularly — so adding new search types or new fare sources never means rewriting the system.
We build the layer that makes it usable — without rewriting everything that already works.