Full booking stack. Pay per request.
Four paid endpoints cover the agent's booking lifecycle. Flat-fee endpoints settle at $0.10 USDC; the booking call pays the escrow amount directly so funding and booking happen in one x402 round-trip.
Flight search, booking, and on-chain settlement over x402. Live airline inventory, escrowed in USDC on Solana. No merchant onboarding, no IATA accreditation, no monthly minimums.
# 1. Search live flight inventory (pay-per-call, $0.10 ×1..50) $ curl -X POST "https://travel.brij.fi/air/search" \ -H "PAYMENT-SIGNATURE: <sig>" \ -d '{"origin_iata":"SFO","destination_iata":"JFK","depart_date":"2026-12-15","adults":1,"cabin_class":"economy"}' # add "return_date":"2026-12-22" for a round trip (booked in one /air/book) # add "cheapest_per_itinerary":true,"limit":20 for compact results (LLM-friendly) # filters: "sort":"duration","max_stops":0,"departure_after":"12:00","departure_before":"18:00","max_price":"250.00" # 2. Create an escrow-backed booking intent ($0.10) $ curl -X POST "https://travel.brij.fi/air/intents" \ -H "PAYMENT-SIGNATURE: <sig>" \ -d '{"offer_id":"off_xxx","funding_wallet":"..."}' # 3. Fund the escrow and book (pays the escrow amount via x402) # intent_id travels in the body — no endpoint takes an id in the path $ curl -X POST "https://travel.brij.fi/air/book" \ -H "PAYMENT-SIGNATURE: <sig>" \ -d '{"intent_id":"'"$INTENT"'","passengers":[{"given_name":"Ada","family_name":"Lovelace","born_on":"1990-01-01","title":"ms","gender":"f","email":"[email protected]","phone_number":"+15551234567"}]}' # HTTP 200 + Payment-Response: <settled> # {"intent": {...}, "booking": {"order_id": "ord_xxx", "awaiting_payment": false, ...}} # The airline PNR (booking_reference) comes from GET /air/orders/{order_id}, # which requires the X-Customer-Support-Code returned at intent creation.
from x402 import X402Client client = X402Client(solana_wallet) # Search offers = client.post("https://travel.brij.fi/air/search", json={ "origin_iata": "SFO", "destination_iata": "JFK", "depart_date": "2026-12-15", "adults": 1, "cabin_class": "economy", # optional; "return_date" for round trips }).json() # Create intent from a selected offer (no passenger at this step) intent = client.post("https://travel.brij.fi/air/intents", json={ "offer_id": offers["search"]["offers"][0]["id"], "funding_wallet": solana_wallet.public_key, }).json() # Fund escrow + book in one x402-paid call. # intent_id goes in the body: no endpoint takes an id in the path. booked = client.post("https://travel.brij.fi/air/book", json={ "intent_id": intent["intent"]["id"], "passengers": [{ "given_name": "Ada", "family_name": "Lovelace", "born_on": "1990-01-01", "title": "ms", "gender": "f", "email": "[email protected]", "phone_number": "+15551234567", }], }).json() # booked["booking"]["order_id"] identifies the airline order. # The PNR lives behind GET /air/orders/{order_id} + X-Customer-Support-Code.
Four paid endpoints cover the agent's booking lifecycle. Flat-fee endpoints settle at $0.10 USDC; the booking call pays the escrow amount directly so funding and booking happen in one x402 round-trip.
Each step is a single x402-paid HTTP call. Your agent never holds an account, never manages a contract, never reconciles a monthly bill.
Traditional flight inventory requires multi-month onboarding, monthly minimums, and human-shaped contracts. BRIJ Travel exposes live airline inventory over the x402 protocol your agent already speaks.
BRIJ Travel publishes standard discovery documents so any x402-compatible agent, marketplace, or orchestrator can find and use it automatically.
One round-trip across the world. No contracts, no monthly minimums, no per-tenant API keys.