Recipes
Code Examples
JavaScript, Python, and cURL examples for the Direct Travel API.
Examples for the unified search, which returns one stay per property with a suppliers map across different providers in a single request.
Unified search
# searches all suppliers at once
curl -H "X-API-KEY: <API_KEY>" \
"https://api.stay22.com/v3/accommodations?address=Paris"Each result carries a suppliers.<name> map; suppliers.<name>.link is a Stay22 deeplink that carries your aid:
{
"meta": { "page": 1, "pageSize": 10, "total": 29758, "hasMore": true, "currency": "USD" },
"results": [
{
"id": "42f1014f...0000",
"url": "https://www.stay22.com/allez/roam/...?aid=<AID>",
"name": "Appartement aux portes de Paris",
"suppliers": {
"booking": { "link": "https://www.stay22.com/allez/booking/usds_42f1014f...0000?aid=<AID>" }
}
}
],
"_links": { "next": "https://api.stay22.com/v3/accommodations?address=Paris&page=2" }
}See Response & supplier model.
Paginate
To page through results, follow _links.next until it is absent (see Pagination).
async function* allStays(params) {
let url = `https://api.stay22.com/v3/accommodations?${new URLSearchParams(params)}`;
while (url) {
const res = await fetch(url, { headers: { 'X-API-KEY': process.env.API22_API_KEY } });
const { results, _links } = await res.json();
yield* results;
url = _links.next ?? null;
}
}Add dates for live prices
With checkin/checkout, each supplier gains a price (see Pricing & quotes):
import requests, os
res = requests.get(
'https://api.stay22.com/v3/accommodations',
headers={'X-API-KEY': os.getenv('API22_API_KEY')},
params={'address': 'New York City', 'checkin': '2026-07-01', 'checkout': '2026-07-04'},
)
data = res.json()Cluster a dense map viewport
curl -H "X-API-KEY: <API_KEY>" \
"https://api.stay22.com/v3/accommodations?nelat=48.90&nelng=2.42&swlat=48.80&swlng=2.25&cluster=auto"See Clustering.