About BRIJ Flights
Review the Service identity, supported languages, protocol versions, and source metadata discovered by the directory.Service details
Service Id
ff71b60d-73c2-44f3-a473-94fb8501eecd
Service origin
https://travel.brij.fi
ListedSeptember 24, 2026, 6:49 PM
Last checkedNovember 9, 2026, 1:40 AM
Protocol details
SourceOpenAPI
Endpoints
Endpoint details are saved from the OpenAPI document. Authentication requirements and prices are advertised information, not a verified payment or access guarantee. The document may contain additional endpoints.POST/affiliates
Get your referral code (free, idempotent)
Free. {wallet} → {code, link}. One short code per Solana wallet — share app.brij.fi/?ref=<code> (or pass referrer on POST /air/intents). Referred bookings credit 20% of the platform fee to your wallet — earned when the booking captures (ticket actually issued), vested only once the journey has been flown with no refund issued (pending until then). Statement: GET /affiliates/{code}. Payouts are periodic USDC transfers once the balance clears the minimum.GET/affiliates/{code}
Read the statement of an affiliate code.
Free, public, self-serve: referred captured bookings, referred vested bookings (flown, unrefunded), accrued (vested), pending (not flown yet), paid, balance (micros USDC) and the share_bps.GET/air/airlines
Supported airlines (free).
Free, no auth. Aggregate carrier catalog over every fulfiller tier: source "api" is the API-settled (Duffel) catalog, refreshed at most daily; a tier name ("trip.com" = the OTA, "ryanair.com" = ryanair.com) means that fulfiller has actually QUOTED the carrier — observed coverage that grows with searches and understates an OTA's true span. Presence is recognition, not a bookability promise: what is bookable for a route is what POST /air/search returns.POST/air/book
Pay the escrow and request booking.
The intent id travels in the request body; the resource URL is static. Paid x402 endpoint. The payment challenge is dynamic for the intent: `payTo` is the intent escrow address, `asset` is the expected escrow mint, and `amount` is the expected escrow amount. After x402 settlement, the API records the passenger list (lead first), verifies exact escrow funding on-chain, and enqueues the booking worker. Airline payment and escrow capture happen asynchronously. If booking fails after x402 settlement, retry the same `/book` call; excess funds remain refundable to `refund_wallet`. **Lowcost travel document.** For an intent created on a trip.com: offer, each passenger additionally requires nationality, passport_number, and passport_expiry (YYYY-MM-DD, in the future) — the supplier's booking form demands them. Missing or expired documents are refused BEFORE payment (400 travel_document_required / travel_document_expired). Booking is asynchronous exactly like fastbooking: poll GET /air/intents/{intent_id} until bo…The operation requires declared authentication; API keys, bearer tokens and other schemes are not evidence of AEP support.POST/air/intents
Create an escrow-backed booking intent from a selected offer.
Paid x402 endpoint. Send a valid `PAYMENT-SIGNATURE` header to create the intent. Without payment, the API returns `402 Payment Required`. Optional request field referrer: an affiliate code (see POST /affiliates) — the resolved affiliate wallet is frozen on the intent and credited a share of the platform fee once the booking captures and the journey is flown without refund; unknown or self-referring codes are silently ignored. Creates the local booking intent and initializes its Solana escrow. This does not fund the escrow, pay the airline, or issue a ticket. **Lowcost (trip.com: offers).** These book through a browser-driven fulfiller, not an airline API, so a few rules differ. The escrow amount is the offer's own price (fare menus from POST /air/offer-details are bookable: an offer_id like "trip.com:<flight>##<n>@s<search>" locks fare n and the escrow prices at that fare). A fare offer_id is only bookable while its menu is fresh (~30 min) — a stale one returns 409 fare_menu_expired, re-open the fares an…0.10 USDThe operation requires declared authentication; API keys, bearer tokens and other schemes are not evidence of AEP support.GET/air/intents/{intent_id}
Fetch a booking intent by id.
Free. Poll it after /air/book: status moves to booked once the escrow is captured, and booking_reference carries the airline PNR as soon as the ticket is issued. A booking is finished for the traveller when booking_reference is present: relay it to them.POST/air/offer-details
Drill into one offer: fare menu, bag prices, live price.
Paid x402 endpoint: $0.01 USDC for fastbooking: offers, $0.10 USDC for offers from a browser tier (trip.com:, ryanair:) — reading their fare menu costs a real browser session at the supplier — the PAYMENT-REQUIRED challenge always quotes the applicable price. fastbooking: offers — re-fetches the offer from the flight provider and returns it in the same shape as search results, with CURRENT price and expires_at, plus available_services: the purchasable extras (checked bags with weight limits and prices) on that exact fare. fare_options lists EVERY fare of this flight (same aircraft, every brand: Basic, Standard, Flex…), fresh from the supplier and price-ascending, each with its own bookable offer_id — including fares the search left out of its page. Pick the row you want and pass its offer_id to POST /air/intents. browser-tier offers (trip.com:, ryanair:) — return the offer with fare_options filled from the supplier's own fare menu: per fare, the price, cabin, seats_left, and conditions[] (the supplier's ve…0.01 USDThe operation requires declared authentication; API keys, bearer tokens and other schemes are not evidence of AEP support.GET/air/orders/{order_id}
Fetch airline order status.
Returns the booking reference and order status for ANY fulfiller — a Duffel ticket is read from Duffel, a partner-tier booking (trip.com, ryanair.com) from the marketplace's own record: the supplier reference, the airline PNR the settlement oracle extracted from the confirmation email, and the engaged amount. If all you need is the PNR, GET /air/intents/{intent_id} carries it for free as booking_reference. Paid x402 endpoint at a token $0.01 USDC, and still gated by the X-Customer-Support-Code returned at intent creation. Refusals are never charged: a missing or wrong code (401/403) or an unknown order (404) happens before the payment settles. Note the response distinguishes an unknown order (404) from a wrong code (403).0.01 USDThe operation requires declared authentication; API keys, bearer tokens and other schemes are not evidence of AEP support.POST/air/refund-requests
Request a manual refund after the intent has been booked.
The intent id travels in the request body; the resource URL is static. Paid x402 endpoint. Send a valid `PAYMENT-SIGNATURE` header to record the refund request. Without payment, the API returns `402 Payment Required`. Records a refund request for a booked intent. The on-chain escrow has already been captured by the time the intent is `booked`, so refunds at this stage are processed manually by an operator. This endpoint persists the request and pages the operator on Telegram; the response is `202 Accepted` and is **not** a guarantee of refund — eligibility and any applicable carrier penalties are reviewed manually. For pre-capture states (`active`), the booking_sync worker handles refunds automatically; this endpoint returns `409 use_automatic_refund` for those. The caller must include the `X-Customer-Support-Code` header matching the code returned at intent creation. For multi-passenger bookings, X-Passenger-Family-Name is the LEAD passenger's family name (position 0 of the /air/book list).0.10 USDThe operation requires declared authentication; API keys, bearer tokens and other schemes are not evidence of AEP support.POST/air/search
Search live flight offers.
Flight search can be paid with x402 or sponsored by the BRIJ gateway. For direct x402 clients, send a valid `PAYMENT-SIGNATURE` header. Without payment, the API returns `402 Payment Required` carrying the **current** price. For BRIJ Wallet preview calls, the gateway may send `X-BRIJ-SPONSORED-*` headers. Providers should treat that as a BRIJ-sponsored preview, not as a user-paid x402 settlement. Every price in the response is the price a buyer pays: total_amount / total_amount_decimal (offers, fare_options, highlights) are all-in, and max_price filters on that figure. POST /air/intents asks exactly this amount as expected_escrow_amount (a wallet enrolled in a fee-waiving cohort is asked less, never more). Base x402 price is 0.10 USDC. The price is multiplied (up to 50×) by the current search load: completed searches in the last 60 seconds and any upstream rate-limit response in the last 5 minutes. Always read the latest `PAYMENT-REQUIRED` challenge before signing - the price your client saw a moment ago …The operation requires declared authentication; API keys, bearer tokens and other schemes are not evidence of AEP support.POST/air/search-updates