Rentager

Developers · v1

Documentación Rentager — API e integraciones

Conecta OTAs, calendarios y tus herramientas al CRM de alquiler vacacional. API REST, webhooks y guías paso a paso.

Primeros pasos

La API de Rentager te permite leer y escribir propiedades, reservas, huéspedes y disponibilidad del CRM de alquiler vacacional. Base URL de producción:

https://api.rentager.com/v1

Sandbox (datos de prueba, sin afectar calendarios reales de Airbnb/Booking):

https://sandbox.api.rentager.com/v1
  1. Crea una cuenta en Rentager y verifica el email.
  2. En Dashboard → Integraciones → API keys, genera una clave secreta.
  3. Conecta al menos una OTA desde el catálogo de integraciones (Airbnb, Booking.com, Vrbo…).
  4. Haz tu primera llamada autenticada a GET /properties.

Autenticación

Todas las peticiones usan Bearer token. Nunca expongas la clave en el frontend del huésped.

curl https://api.rentager.com/v1/properties \
  -H "Authorization: Bearer rtg_live_••••••••" \
  -H "Content-Type: application/json"
  • rtg_live_* producción
  • rtg_test_* — sandbox

Conectar OTAs (Airbnb, Booking.com, Vrbo)

Las conexiones OTA se gestionan en la UI o vía API. Flujo recomendado para hosts:

Airbnb

OAuth host → sync de calendario, precios y mensajes. Polling cada 5 min + webhooks de reserva.

POST /integrations/airbnb/connect

Booking.com

Importa listados y bloquea disponibilidad bidireccional para evitar dobles reservas.

POST /integrations/booking/connect

Vrbo / iCal

Cuando no hay API nativa, usa feeds iCal de entrada/salida (ver sección iCal).

POST /integrations/ical

Catálogo completo de conectores: /integrations

Referencia API REST

Recursos principales del CMS de gestión de alquileres. Todos responden JSON.

Properties

GET    /v1/properties
GET    /v1/properties/{id}
POST   /v1/properties
PATCH  /v1/properties/{id}
DELETE /v1/properties/{id}
{
  "id": "prop_8f2a",
  "name": "Sea View Loft",
  "timezone": "Europe/Madrid",
  "channels": ["airbnb", "booking"],
  "base_price": { "amount": 14500, "currency": "EUR" },
  "status": "active"
}

Reservas

GET    /v1/reservations?property_id=prop_8f2a&from=2026-08-01
GET    /v1/reservations/{id}
POST   /v1/reservations
PATCH  /v1/reservations/{id}
{
  "id": "res_91c0",
  "property_id": "prop_8f2a",
  "check_in": "2026-09-12",
  "check_out": "2026-09-15",
  "guest_id": "gst_22",
  "channel": "airbnb",
  "status": "confirmed",
  "payout": { "amount": 31200, "currency": "EUR" }
}

Huéspedes

GET  /v1/guests
GET  /v1/guests/{id}
POST /v1/guests/{id}/messages

Calendario / disponibilidad

GET  /v1/properties/{id}/calendar?from=2026-08-01&to=2026-08-31
PUT  /v1/properties/{id}/calendar/blocks
PATCH /v1/properties/{id}/calendar/prices

Webhooks

Suscríbete a eventos en tiempo real. Firmamos cada payload con HMAC-SHA256 en la cabecera X-Rentager-Signature.

POST /v1/webhooks
{
  "url": "https://api.rentagermanagement.com/hooks/rentager",
  "events": [
    "reservation.created",
    "reservation.updated",
    "reservation.cancelled",
    "message.received",
    "calendar.conflict"
  ]
}

Responde 2xx en menos de 5s. Los reintentos usan backoff exponencial (hasta 8 intentos / 24h).

Feeds iCal

Útil para canales sin API o como respaldo de sync. Cada propiedad expone un feed de salida y acepta URLs de entrada.

GET /v1/properties/{id}/ical/export.ics
POST /v1/properties/{id}/ical/import
{ "url": "https://www.airbnb.com/calendar/ical/….ics" }

Errores y rate limits

Límite estándar: 120 req/min por API key (burst 30). Cabeceras: X-RateLimit-Remaining, X-RateLimit-Reset.

CodeSignificado
400Payload inválido (fechas, moneda, canal)
401API key ausente o revocada
409Conflicto de calendario / doble reserva evitada
429Rate limit excedido
{
  "error": {
    "code": "calendar_conflict",
    "message": "Dates overlap an existing Airbnb block",
    "request_id": "req_0b17"
  }
}

¿Listo para conectar tu stack?

Revisa el catálogo de integraciones o escribe a soporte si necesitas un conector custom.