Official SDKs are generated from the OpenAPI 3.1 spec, so every field in the docs exists as a typed property. Community clients are maintained by people who needed a language we didn't cover — we're glad, not territorial.
@openflight/sdkNode 18+. ESM and CJS builds.
Retries, rate-limit awareness and typed responses out of the box. The webhook verifier is included — do not write your own HMAC check at 11pm, use the one that's already tested.
// npm install @openflight/sdk import OpenFlight from "@openflight/sdk"; const of = new OpenFlight({ apiKey: process.env.OPENFLIGHT_KEY }); const board = await of.flights.search({ origin: "KAUS", status: "delayed" }); for (const f of board) { console.log(f.id, f.departure.delay_minutes); }
openflightPython 3.9+. Depends on httpx.
Synchronous client with an async twin (AsyncClient). Pydantic models for every response.
# pip install openflight import os, openflight client = openflight.Client(api_key=os.environ["OPENFLIGHT_KEY"]) flight = client.flights.get("OF1502") pred = client.predictions.delay(flight_id="OF1502") print(pred.minutes, pred.confidence) # → 12 0.83
openflight-goGo 1.22+. Every method takes a context.Context, as is right and proper.
// go get github.com/openflight/openflight-go import of "github.com/openflight/openflight-go" client := of.NewClient(of.WithAPIKey(os.Getenv("OPENFLIGHT_KEY"))) flight, err := client.Flights.Get(ctx, "OF1502") if err != nil { log.Fatal(err) } fmt.Println(flight.Status, flight.Departure.Gate)
OpenFlightSwiftSwift 5.9+, iOS 16+ / macOS 13+. Full async/await since 2.0.
Included because two of our biggest customers are iOS-first. If you're not shipping an Apple app, skip to the community section.
// Swift Package Manager: .package(url: "https://github.com/openflight/openflight-swift", from: "2.0.0") let client = OpenFlightClient(apiKey: ProcessInfo.processInfo.environment["OPENFLIGHT_KEY"]!) let flight = try await client.flights.get(id: "OF1502") print(flight.status, flight.departure.gate ?? "—")
openflight-phpPHP 8.1+. Maintained by Tomasz W., who also maintains the webhook signature check that caught two of our spec typos.
// composer require openflight/php-client $client = \OpenFlight\Client::fromEnv(); $board = $client->flights()->search(['origin' => 'KAUS', 'status' => 'delayed']); foreach ($board as $flight) { echo $flight->id, ' ', $flight->departure->delay_minutes, PHP_EOL; }
| Language | Package | Maintainer | Notes |
|---|---|---|---|
| Ruby | openflight-rb | @flyingcat | Covers REST; GraphQL via separate gem |
| .NET | OpenFlight.DotNet | @meridian-dev | NuGet, targets .NET 8 |
| Rust | openflight-rs | @henning | Tokio async, generated from the spec |
| Elixir | openflight_ex | @pipeline-dreams | Status + webhooks only |
Missing your language? The OpenAPI spec is downloadable from the dashboard — most of the community clients above started as a one-evening openapi-generator run that grew on people.
Official SDKs track the API major version: SDK 3.x talks to /v3. When v4 eventually arrives (nothing announced, stop asking, Viktor), v3 SDKs will keep working against a compatibility window for at least six months. Community SDKs version independently — pin what you trust. Release notes for everything live in the changelog.