Roam

How /allez/roam uses ML to pick the best provider for each user.

The /allez/roam endpoint uses a machine-learning model to pick the provider most likely to convert for each user, so you don't hard-code one. Stay22 supports a wide basket of OTAs — Booking.com, Expedia, Hotels.com, Vrbo, and more — and roam chooses among them per request.

The model is trained on billions of annual clicks across all providers and predicts the best-converting provider for the destination, time, and user context.

How it works

https://www.stay22.com/allez/roam?aid=<AID>&address=paris

When a user clicks a roam link:

  1. Stay22 sees the destination, time of day, and other context
  2. The model scores each available provider for that specific user
  3. Country-specific weights adjust the scores (some providers convert better in certain regions)
  4. The highest-scoring provider wins, and the user is redirected there

Available providers in roam

For accommodation, roam chooses between:

  • Booking.com
  • Expedia
  • Hotels.com
  • Vrbo
  • Agoda
  • and more coming soon . .

The exact pool depends on availability - if a provider doesn't have inventory for the destination, it's excluded automatically.

Controlling roam behavior

Exclude providers

To exclude specific providers from roam's selection:

https://www.stay22.com/allez/roam?aid=<AID>&address=paris&excludeproviders=vrbo,expedia

Force a specific provider (testing)

For debugging or A/B testing, override the AI selection while still using the roam endpoint:

https://www.stay22.com/allez/roam?aid=<AID>&address=paris&provider=booking

This forces the redirect to Booking.com but still goes through all the roam middleware (geo-routing, TLD selection, etc.).

Two ways to enable roam

Roam activates when:

  • The endpoint is /allez/roam
  • OR the roam=true query parameter is set on any endpoint

Roam requires a resolvable destination - it works with address, lat-lng as location parameters. It does not work with the link parameter (since you're already specifying the destination provider).

Provider or roam?

Use caseRecommendation
General accommodation links/allez/roam - let the AI optimize
Affinity to a specific OTA/allez/{provider} - hard-code the provider
Testing conversion by provider/allez/roam?provider=X - force a provider through roam
Excluding underperforming OTAs/allez/roam?excludeproviders=X,Y

See also

On this page