/install cabin
Cabin — Flight Search & Booking with USDC
Search real flights across 500+ airlines and book with USDC on Base.
API Base URL
https://api.cabin.team
Endpoints
Search Flights
When the user wants to find flights:
curl -X POST https://api.cabin.team/v1/search \
-H "Content-Type: application/json" \
-d '{
"from": "HAN",
"to": "ATH",
"date": "2026-03-15",
"return_date": "2026-03-22",
"adults": 1,
"class": "ECONOMY",
"currency": "USD",
"max_results": 5
}'
Parameters:
from(required): Origin IATA airport codeto(required): Destination IATA airport codedate(required): Departure date (YYYY-MM-DD)return_date(optional): Return date for round-tripadults(optional, default 1): Number of passengersclass(optional): ECONOMY, PREMIUM_ECONOMY, BUSINESS, FIRSTcurrency(optional, default USD): Currency for pricesmax_results(optional, default 10): Maximum results
Response includes:
results[]— Array of flight offers with prices, airlines, times, stopsimage_url— URL to a rendered PNG comparison image of resultssearch_id— ID to reference when booking
Presenting results to users:
- Show the rendered image (fetch from image_url) for visual comparison
- Use structured data for specific questions ("which is cheapest?", "any direct flights?")
- Always show price in both USD and USDC equivalent
Book a Flight
When the user wants to book:
curl -X POST https://api.cabin.team/v1/book \
-H "Content-Type: application/json" \
-d '{
"offer_id": "offer_1",
"search_id": "abc123",
"passengers": [{
"type": "adult",
"given_name": "John",
"family_name": "Doe",
"email": "[email protected]",
"born_on": "1990-01-15",
"gender": "m"
}]
}'
Required passenger info:
- given_name, family_name
- born_on (YYYY-MM-DD)
- gender (m/f)
Response includes:
booking_id— Cabin booking reference (CBN-YYYY-XXXX)amount_usdc— Amount to pay in USDCpayment.deposit_address— USDC deposit address on Basepayment.checkout_url— Payment page URL to share with user
USDC Payment Flow
After booking, the user needs to pay in USDC on Base:
- Show the user the
amount_usdcandpayment.checkout_url - User can either:
a. Send USDC directly to
payment.deposit_addresson Base b. Visitcheckout_urlfor a guided payment experience - After payment, booking is confirmed automatically
If the agent has wallet capabilities (e.g., evm-wallet skill):
# Check USDC balance on Base
node src/balance.js base --json
# Send USDC to deposit address
node src/send.js base USDC \x3Cdeposit_address> \x3Camount_usdc> --yes --json
Check Booking Status
curl https://api.cabin.team/v1/booking/CBN-2026-XXXX
Statuses: awaiting_payment → confirmed → checked_in
Get Confirmation Page
https://api.cabin.team/v1/booking/CBN-2026-XXXX/confirmation
Share this URL with the user after payment confirmation.
Get Check-in Page
https://api.cabin.team/v1/booking/CBN-2026-XXXX/checkin
Share when it's time to check in for the flight.
Common IATA Codes
| Code | City |
|---|---|
| HAN | Hanoi |
| BKK | Bangkok |
| SIN | Singapore |
| NRT | Tokyo Narita |
| HND | Tokyo Haneda |
| ICN | Seoul |
| LHR | London |
| CDG | Paris |
| FCO | Rome |
| ATH | Athens |
| JFK | New York |
| LAX | Los Angeles |
| SFO | San Francisco |
| DXB | Dubai |
| IST | Istanbul |
Workflow Examples
Simple one-way search
User: "Find me a flight from Bangkok to Tokyo next Friday"
- Parse: from=BKK, to=NRT (or HND), date=next Friday
- Call POST /v1/search
- Show image_url to user
- Present top 3-5 options with prices
Round-trip booking
User: "Book the cheapest round-trip from London to Barcelona, March 15-22"
- Search: from=LHR, to=BCN, date=2026-03-15, return_date=2026-03-22
- Present options
- User picks one → collect passenger details
- POST /v1/book with passenger info
- Share payment URL → user pays in USDC
- Confirm booking → share confirmation page
Multi-passenger
User: "We need flights for 3 people, Seoul to Bali, April 1-10"
- Search with adults=3
- Prices shown are per-person
- When booking, collect details for all 3 passengers
- Total USDC amount = per-person × 3
Error Handling
- No results: Try nearby airports or different dates
- Booking expired: Search results expire after 30 minutes, search again
- Payment timeout: Bookings expire 1 hour after creation if unpaid
- Invalid airport code: Suggest the correct IATA code
USDC on Base
- Chain: Base (Ethereum L2)
- Token: USDC (0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913)
- Gas fees: ~$0.01 per transaction
- Confirmation: ~2 seconds
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install cabin - After installation, invoke the skill by name or use
/cabin - Provide required inputs per the skill's parameter spec and get structured output
What is Cabin Flights?
Search and book real flights with USDC payments. Gives your AI agent the power to find flights across 500+ airlines and complete bookings paid in USDC on Base. No credit cards, no banks — crypto-native travel commerce. It is an AI Agent Skill for Claude Code / OpenClaw, with 1408 downloads so far.
How do I install Cabin Flights?
Run "/install cabin" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Cabin Flights free?
Yes, Cabin Flights is completely free (open-source). You can download, install and use it at no cost.
Which platforms does Cabin Flights support?
Cabin Flights is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Cabin Flights?
It is built and maintained by kobuta23 (@kobuta23); the current version is v1.0.0.