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
| Service | Audience | Reference |
|---|---|---|
| Convergence — External | Third-party partners integrating with IBA (USA-region booking system) | /api/convergence-external |
| Convergence — Internal | IBA staff + internal tooling against the Convergence service | /api/convergence-internal |
| FuseMetrix — External | Third-party partners integrating with IBA (non-USA-region booking system) | /api/fusemetrix-external |
| FuseMetrix — Internal | IBA staff + internal tooling against the FuseMetrix service | /api/fusemetrix-internal |
Main IBA API
| Service | Audience | Reference |
|---|---|---|
| IBA API | The canonical, actively-maintained primary IBA API. Use this for anything new. | /api/iba-api |
| IBA Mobile | The 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:
- Bruno collections live under
api/bruno/<slug>/as plain.brutext files. - The prebuild script
docs/scripts/bruno-to-openapi.tswalks each collection, converts to OpenAPI 3.1 YAML, and validates the result. - A second prebuild script
docs/scripts/openapi-to-mdx.tsreads each YAML and emits one MDX page per(service, tag)pair intodocs/app/api/<slug>/..., with parameters, example payloads, a copyablecurlcommand, and a “View source on GitHub” link to the originating.brufile.
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
Authorizationtoken andclient-idfor the “Try it” feature. - Conventions — HTTP-level rules shared by every service.