Cómo buscar ofertas de hoteles por ubicación
La API de ofertas tiene un único punto final que devuelve ofertas de hoteles cerca de una ubicación geográfica. Este artículo explica cómo construir la solicitud, qué hace cada parámetro y qué esperar en la respuesta.
Punto final
GET https://travelapi.ai/hotels/api/v2/deals
Parámetros requeridos
El punto final requiere tres parámetros de consulta:
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
lat | flotador | Sí | Latitud de la ubicación de destino (por ejemplo, 34.0522) |
long | flotador | Sí | Longitud de la ubicación de destino (por ejemplo, -118.2437) |
currency | cadena | Sí | Código de moneda ISO 4217 (por ejemplo, USD, EUR, GBP) |
Parámetros opcionales
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
top_destination | booleano | No | Cuando true, devuelve ofertas para destinos de viaje populares en lugar de resultados estrictamente basados en la proximidad. |
Encabezados requeridos
| Encabezado | Valor | Descripción |
|---|---|---|
accept | application/json | Especifica el formato de respuesta. |
accept-language | en | Idioma del contenido localizado en la respuesta. |
timezone | Cadena de zona horaria de la IANA | La zona horaria del usuario (por ejemplo, America/Los_Angeles). |
x-correlation-id | UUID | Un identificador único para rastrear la solicitud entre sistemas. |
x-session-id | UUID | Un identificador de sesión para agrupar solicitudes relacionadas del mismo usuario. |
Ejemplo completo de cURL
Este ejemplo busca ofertas de hoteles cerca del centro de Miami, con precios en dólares estadounidenses:
curl -X GET "https://travelapi.ai/hotels/api/v2/deals?lat=25.7617&long=-80.1918¤cy=USD" \
-H "accept: application/json" \
-H "accept-language: en" \
-H "origin: https://yourdomain.com" \
-H "referer: https://yourdomain.com/deals" \
-H "timezone: America/New_York" \
-H "x-correlation-id: a1b2c3d4-e5f6-7890-abcd-ef1234567890" \
-H "x-session-id: 98765432-abcd-ef01-2345-678901234567"
Ejemplo con destinos principales
Para recuperar ofertas de destinos populares cerca de una ubicación en lugar de solo hoteles cercanos:
curl -X GET "https://travelapi.ai/hotels/api/v2/deals?lat=25.7617&long=-80.1918¤cy=USD&top_destination=true" \
-H "accept: application/json" \
-H "accept-language: en" \
-H "timezone: America/New_York" \
-H "x-correlation-id: a1b2c3d4-e5f6-7890-abcd-ef1234567890" \
-H "x-session-id: 98765432-abcd-ef01-2345-678901234567"
Estructura de respuesta esperada
La API devuelve una respuesta JSON que contiene una serie de objetos de ofertas de hotel. Cada acuerdo normalmente incluye:
- Información de la propiedad: nombre del hotel, clasificación de estrellas, dirección y coordenadas de ubicación.
- Precio: el precio de la oferta en la moneda solicitada, junto con el precio original o de referencia para que puedas mostrar el descuento.
- Detalles del descuento: el porcentaje o descuento absoluto en comparación con la tarifa estándar.
- Imágenes: una o más imágenes de propiedad adecuadas para mostrar en una tarjeta de oferta.
- Ventana de disponibilidad: cuando la oferta es válida, lo que puede incluir rangos de fechas de check-in o fechas límite de reserva.
Una estructura de respuesta típica se ve así:
{
"deals": [
{
"property_id": "h12345",
"property_name": "Ocean View Resort & Spa",
"star_rating": 4,
"address": "123 Beachfront Ave, Miami Beach, FL",
"latitude": 25.7906,
"longitude": -80.13,
"image_url": "https://images.example.com/property/h12345/main.jpg",
"original_price": 289,
"deal_price": 199,
"currency": "USD",
"discount_percentage": 31,
"dealtype": "limitedtime",
"checkinfrom": "2026-03-10",
"checkinto": "2026-03-20"
}
]
}> Nota: El esquema de respuesta exacto puede variar. Consulte la documentación API más reciente o inspeccione una respuesta en vivo para confirmar los nombres y la estructura de los campos actuales.
Ejemplo de JavaScript
Así es como puedes llamar a la API de ofertas desde una aplicación JavaScript:
async function fetchDeals(latitude, longitude, currency = 'USD') {
const params = new URLSearchParams({
lat: latitude.toString(),
long: longitude.toString(),
currency: currency
});
const response = await fetch(
https://travelapi.ai/hotels/api/v2/deals?${params},
{
method: 'GET',
headers: {
'accept': 'application/json',
'accept-language': 'en',
'timezone': Intl.DateTimeFormat().resolvedOptions().timeZone,
'x-correlation-id': crypto.randomUUID(),
'x-session-id': sessionStorage.getItem('sessionId') || crypto.randomUUID()
}
}
);
if (!response.ok) {
throw new Error(Deals API returned ${response.status});
}
return response.json();
}
// Fetch deals near Miami
const deals = await fetchDeals(25.7617, -80.1918, 'USD');
Manejo de coordenadas
Si no tiene las coordenadas del usuario disponibles, puede obtenerlas usando:
- API de geolocalización del navegador:
navigator.geolocation.getCurrentPosition()proporciona las coordenadas GPS del dispositivo. - Geolocalización basada en IP: servicios como MaxMind o ipinfo.io pueden estimar la ubicación de un usuario a partir de su dirección IP.
- Servicios de codificación geográfica: convierte el nombre o la dirección de una ciudad en coordenadas utilizando la codificación geográfica de Google Maps, Mapbox o API similares.
Consulte Cómo mostrar ofertas en su aplicación para obtener más información sobre codificación geográfica y presentación de resultados de ofertas.