Skip to content
NewThe State of Airline Retailing 2026 — read the report
AncillaryOffers
Developers

An API surface engineers actually enjoy.

Cloud-native, microservices-based, API-first. IATA NDC-compliant REST APIs, typed SDKs, predictable latency, and documentation that works the way the team works.

Architecture

Built on boring, scalable infrastructure.

Cloud-native on AWS

Multi-region active-active deployment with regional data residency for EU, US, and APAC.

Microservices on Kubernetes

Each capability is an independently-deployable service. Horizontal scale by load, not by guess.

API-first architecture

Every feature shipped as a documented REST API before it gets a UI. The console is just the first consumer.

RESTful & NDC-compliant

IATA NDC 21.3 schema across shopping, offers, orders, and servicing — with translation to ATPCO where required.

Encryption end-to-end

AES-256 at rest, TLS 1.3 in transit, per-customer keys with quarterly rotation.

Multi-language ready

EN, AR, FR, TR shipped natively across UI and content. More on the roadmap.

Typed SDKs

First-class TypeScript, Python, Go, Java, and Ruby SDKs.

Swagger-ready docs

OpenAPI specs for every endpoint with runnable examples.

Predictable latency

p95 budgets published per endpoint, honoured by SLO.

Webhooks with retries

Exponential backoff, signed payloads, dead-letter queues.

Versioning that respects you

Date-pinned versions, 24-month deprecation windows.

Sandbox + production

Identical APIs, isolated data, generous synthetic traffic.

Quick start

From signup to first offer in under five minutes.

1. Install

npm install @ancillaryoffers/sdk

2. Compose an offer

import { OfferEngine } from "@ancillaryoffers/sdk";

const engine = new OfferEngine({ apiKey: process.env.AO_API_KEY });

const offer = await engine.compose({
  segments: [{ origin: "LHR", destination: "JFK", date: "2026-06-12" }],
  traveler: { id: "trv_8f2", channel: "direct", market: "GB" }
});

console.log(offer.bundles);

Response

{
  "id": "offr_01H8...",
  "composedAt": "2026-06-12T10:42:11Z",
  "latencyMs": 178,
  "bundles": [
    { "id": "bnd_comfort_plus", "price": 738.40, "currency": "USD" },
    { "id": "bnd_smart",        "price": 612.40, "currency": "USD" },
    { "id": "bnd_flex",         "price": 894.00, "currency": "USD" }
  ],
  "audit": { "trail": "audt_..." }
}
API surface

What's exposed.

Shopping & offers

Compose, refresh, and re-shop offers in real time.

Orders & servicing

Book, modify, cancel, refund — full lifecycle.

Pricing

Real-time elasticity, BYO-model inference, audit.

Merchandising

Variant management, ranking, slot composition.

Bundles

Generate, govern, and price branded fare families.

Personalization

Feature lookup, segment evaluation, scoring.

Charter quotation

ACMI, ad-hoc, and contract pricing endpoints.

Marketplace

Hotel, ground transport, insurance, lounges.

Analytics

Semantic metrics, exports, anomaly detection.

Get sandbox access

A self-serve sandbox with synthetic traffic, identical APIs, and isolated data. Spin up in minutes.