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.
Search real flights across 500+ airlines and book with USDC on Base.
https://api.cabin.team
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 codedatereturn_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 resultsResponse 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 bookingPresenting results to users:
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:
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 userAfter booking, the user needs to pay in USDC on Base:
amount_usdc and payment.checkout_urlpayment.deposit_address on Base
b. Visit checkout_url for a guided payment experienceIf 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 <deposit_address> <amount_usdc> --yes --json
curl https://api.cabin.team/v1/booking/CBN-2026-XXXX
Statuses: awaiting_payment → confirmed → checked_in