Skip to Content
APIOverview

API

The TunnelFlight backend exposes its functionality through four logical services. Each has its own interactive endpoint reference on this site, generated from the source-of-truth Bruno collections in api/bruno/.

Services

The IBA platform exposes its functionality across six logical API surfaces. The first four are partner-integration boundaries; the last two are the main IBA platform API and its mobile-app subset.

Partner integrations

ServiceAudienceReference
Convergence — ExternalThird-party partners integrating with IBA (USA-region booking system)/api/convergence-external
Convergence — InternalIBA staff + internal tooling against the Convergence service/api/convergence-internal
FuseMetrix — ExternalThird-party partners integrating with IBA (non-USA-region booking system)/api/fusemetrix-external
FuseMetrix — InternalIBA staff + internal tooling against the FuseMetrix service/api/fusemetrix-internal

Main IBA API

ServiceAudienceReference
IBA APIThe canonical, actively-maintained primary IBA API. Use this for anything new./api/iba-api
IBA MobileThe subset of the IBA API consumed by the mobile app — being actively carved out of IBA API./api/iba-mobile

A historical collection (Tunnel Flight - Full) documents an older endpoint surface from 2022–2024. It lives at api/bruno/_archive/ for reference but is not rendered on this site. ~183 endpoints in it haven’t been migrated to the current IBA API and need triage — see the archive README for details.

Each service page lists every endpoint, shows the request schema and example payloads, and offers a “Try it” form that fires real requests against the live API. Read Getting started before your first request.

How it works

The reference is generated at build time:

  1. Bruno collections live under api/bruno/<slug>/ as plain .bru text files.
  2. The prebuild script docs/scripts/bruno-to-openapi.ts walks each collection, converts to OpenAPI 3.1 YAML, and validates the result.
  3. A second prebuild script docs/scripts/openapi-to-mdx.ts reads each YAML and emits one MDX page per (service, tag) pair into docs/app/api/<slug>/..., with parameters, example payloads, a copyable curl command, and a “View source on GitHub” link to the originating .bru file.

Editing the API reference means editing .bru files — no SaaS dependency, no Postman workspace login. Execute requests via Bruno desktop  opened against the api/bruno/ collection, or via the copyable curl snippet on each endpoint page.

Conventions

For HTTP-level rules that apply across all services (status code meaning, error envelope shape, auth header format), see Conventions.

See also

  • Getting started — how to obtain an Authorization token and client-id for the “Try it” feature.
  • Conventions — HTTP-level rules shared by every service.
Last updated on