flightbox Docs

SDKs

Python (pip install flightbox — ships with the CLI)

from flightbox import Flightbox   # AsyncFlightbox for asyncio

fb = Flightbox("https://app.flightbox.co", api_key="fb_…")
suite = fb.create_suite("checkout", open("checkout.yaml").read())
batch = fb.run(suite["id"], base_url="https://preview-42.vercel.app")
result = fb.wait(batch["batch_id"])
for run in result["runs"]:
    print(run["run_id"], run["success"], run["failure_class"])
fb.pdf(batch["batch_id"])

JavaScript / TypeScript (npm install @flightbox/sdk — zero dependencies)

import { Flightbox } from "@flightbox/sdk";

const fb = new Flightbox({ baseUrl: "https://app.flightbox.co", apiKey: "fb_…" });
const suite = await fb.createSuite("checkout", yamlSpec);
const { batch_id } = await fb.run(suite.id, { baseUrl: previewUrl });
const result = await fb.wait(batch_id);

Usage, budgets, monitoring (both SDKs)

fb.usage()                      # runs + net spend this month, by agent class
fb.set_budget(500.0)            # your hard stop; None = uncapped
fb.monitor(suite_id, cadence="daily", webhook_url=slack)   # Monitored Journey
fb.schedules(); fb.unmonitor(schedule_id)

Both SDKs are thin, typed, 1:1 wrappers over the REST API — auth, errors (FlightboxError with status + detail), and polling. No magic.