Skip to main content
Fly

Travel,built for AI agents.

Flights, hotels, cars, cruises, tours, dining, eSIMs and more through one API your agent can find, sign up for and use on its own. It plans, prices and holds. A person approves the money.

1
URL to start
0
forms to fill
1 tap
to approve a booking
The wall

Your agent plans Lisbon in four seconds.Then it hits a sign-up form.

Captchas. Keys pasted by hand. A different format at every supplier. No safe way to put a machine near a booking. Every agent stops at the same wall and hands you a list of links.

  • Formsbuilt for a person with a mouse
  • FormatsEDIFACT, XML, SOAP: hundreds, all different
  • Fearnobody lets a loop near a booking
The supply

Every trip.One API.

From the flight to the eSIM to the table for dinner: 20+ travel products, one request, one error model, one order lifecycle. Learn one, book them all. It runs on Mondee's supplier agreements, so there is nothing to sign.

How an agent starts

One URL.No forms. No waiting.

Paste a URL. Your agent reads Fly's signed manifest, signs itself up and holds a sandbox key the moment you approve its code. Every API is already a tool. It certifies itself. You switch it live.

onboardsearchrepriceholdbook — approved by you

Sign up for Fly and find 5 nights in Lisbon for two, under $2,000.

  1. onboard()0.18s
  2. search(FLT)0.42s
  3. search(HTL)0.71s
  4. hold(3)0.61s

Signed up — you approved code K7QM-2XPA. Flights, a stay in Alfama and a Sintra day trip are repriced and held. Ready for your approval.

Watch the replay
Website-ready

Connect APIs.Render one card.

Every product answers in the same shape, so one component renders a flight, a stay and a tour side by side.

Combine
3 APIs · one envelopeSample
Lisbon, 5 nights
FlightsReturn to Lisbon · 2 travellersfrom $512
StaysAlfama boutique · 5 nightsfrom $820
ExperiencesSintra day trip · 2 guestsfrom $158
Firm total fromPOST /v1/reprice
Build this card
How a booking flows

Search to order.Six calls.

The same six operations for every product. Pick a step to see the contract's own path and request.

POST/v1/searchReference

Find offers for an intent. Searches that fan out answer 202 SEARCH_WARMING and fill in as each supplier replies.

{
  "context": {
    "domain": "FLT",
    "currency": "USD"
  },
  "message": {
    "intent": {
      "slices": [
        {
          "origin": "GRU",
          "destination": "MIA",
          "date": "2026-11-10"
        }
      ],
      "travelers": [
        {
          "type": "ADT"
        },
        {
          "type": "CHD",
          "age": 9
        }
      ],
      "cabin": "ECONOMY"
    }
  }
}

Request bodies are the contract's flight quickstart: /v1/search with domain FLT.

Control

Full autonomy.No blank cheques.

Hard limits on every key

Spend, products, speed and expiry, fixed when the key is made. An agent can narrow a key. It can never widen one.

403 SCOPE_WIDENING
A kill switch that trips itself

Twenty identical calls in a minute and the key freezes. Only a person unfreezes it.

423 LOOP_DETECTED
No money moves without you

Agents search, price and hold. A booking is a proposal: you approve the server's price, or nothing happens.

proposal → approve
Every action signed

Who asked. Which agent. Which key. On every order, hold and ledger line.

principal · agent · key
SDKs

Your language.Generated.

Clients are generated from the same contract the API serves, version 1.64.0.

# .npmrc: @mondee-one:registry=<the contracts project's npm registry> npm install @mondee-one/[email protected]
const found = await connect.request(
  "/v1/search",
  "post",
  {
    "context": {
      "domain": "FLT",
      "currency": "USD"
    },
    "message": {
      "intent": {
        "slices": [
          {
            "origin": "GRU",
            "destination": "MIA",
            "date": "2026-11-10"
          }
        ],
        "travelers": [
          {
            "type": "ADT"
          },
          {
            "type": "CHD",
            "age": 9
          }
        ],
        "cabin": "ECONOMY"
      }
    }
  },
);
// 202 / SEARCH_WARMING is progress, not an error: poll GET /v1/search/{searchRef} after message.retryAfterMs.
const offer = found.message.offers[0];
const offerRef: string = offer.offerRef;
console.log(offer.price.amount, offer.price.currency); // integer minor units + ISO currency
Plans

Start free.Go live when ready.

Every vertical is free to build with in sandbox. Plans add live booking, higher limits and support as you grow.

Sandbox

$0per month

For building and testing your product.

  • Test data for every vertical
  • 5,000 calls a month
  • Community support
Get a sandbox key
Most popular

Growth

$499per month

For apps taking their first live bookings.

  • Live booking on Flights, Stays and Ground
  • 250,000 calls a month
  • Booking webhooks
  • Email support, reply within a business day
Start Growth

Scale

$1,490per month

For high-volume products and multi-brand teams.

  • Every vertical live
  • 2M calls a month
  • 99.95% uptime SLA
  • A dedicated integration engineer
Start Scale
FAQ

Before youbuild.

Do I need my own supplier contracts?

No. Fly runs on Mondee's supplier agreements, so you sell under your own brand from day one.

What does 202 SEARCH_WARMING mean?

Searches that fan out to many suppliers answer 202 straight away. Show what is in, say what is still coming, and poll with the searchRef until the search completes.

How do retries avoid double-booking?

Every order carries an Idempotency-Key. Retrying with the same key replays the original result instead of creating a second booking.

How should my app handle errors?

Branch on the error code and its retryable flag, not on the HTTP status. PRICE_CHANGED is never retried: show the old and new price and ask again.

Can an AI agent book on its own?

Not without you. Agents search, price and hold on their own; a booking is a proposal a person approves at the server's price, with one tap.

How long does an integration take?

Most teams return search results in sandbox within days. Going live needs a short certification, where we check a handful of test orders with you.

Get started

The next billion bookingswon't come from a browser.

They'll come from agents. Give yours one URL and let it fly.