Code Examples
Basic Search
bash
# Dates are optional — they default to 90/93 days from today
curl -H "X-API-KEY: your_api_key_here" \
"{{API_BASE_URL}}/v1/accommodations?provider=booking&address=Paris"Search by Coordinates
javascript
const params = new URLSearchParams({
provider: 'booking',
lat: '48.8584',
lng: '2.2945',
});
const response = await fetch(`{{API_BASE_URL}}/v1/accommodations?${params}`, {
headers: { 'X-API-KEY': process.env.API22_API_KEY },
});
const { results } = await response.json();Search by Bounding Box
Ideal for map-based UIs — pass the viewport corners to search a visible area.
bash
curl -H "X-API-KEY: your_api_key_here" \
"{{API_BASE_URL}}/v1/accommodations?provider=booking&nelat=48.90&nelng=2.42&swlat=48.80&swlng=2.25"Advanced Filters
python
import requests
import os
response = requests.get(
'{{API_BASE_URL}}/v1/accommodations',
headers={'X-API-KEY': os.getenv('API22_API_KEY')},
params={
'provider': 'booking',
'address': 'New York City',
'checkin': '2026-06-01',
'checkout': '2026-06-05',
'adults': 2,
'children': 1,
'minguestrating': 8.0,
'max': 200, # per-night price in USD
},
)
data = response.json()Error Handling and Retries
javascript
class API22Client {
constructor(apiKey) {
this.apiKey = apiKey;
this.baseUrl = '{{API_BASE_URL}}/v1';
}
async request(endpoint, params = {}, maxRetries = 3) {
const url = new URL(`${this.baseUrl}${endpoint}`);
Object.entries(params).forEach(([key, value]) => {
if (value !== undefined && value !== null) {
url.searchParams.append(key, value.toString());
}
});
for (let attempt = 0; attempt < maxRetries; attempt++) {
const response = await fetch(url, {
headers: { 'X-API-KEY': this.apiKey },
});
// Rate limit — back off and retry
if (response.status === 429) {
const waitTime = Math.pow(2, attempt) * 1000;
await new Promise((r) => setTimeout(r, waitTime));
continue;
}
if (!response.ok) {
const error = await response.json();
throw new Error(`${error.code}: ${error.message}`);
}
return await response.json();
}
throw new Error('Max retries exceeded');
}
async searchAccommodations(provider, params) {
return this.request('/accommodations', { provider, ...params });
}
}
const client = new API22Client(process.env.API22_API_KEY);
const results = await client.searchAccommodations('booking', { address: 'Paris' });