Desarrolladores

Una API REST pensada para datos multiinquilino

Veintitrés endpoints versionados bajo /api/v1. Autenticación Bearer, permisos acotados, límites por token y registro de auditoría en cada llamada.

Autenticación
# Generate a token in Dashboard → Integrations.
# The secret is shown once and stored as a SHA-256 hash.

curl https://kourtiva.com/api/v1/me \
  -H "Authorization: Bearer $KOURTIVA_TOKEN"

# 401 on an invalid, expired or revoked token.
# 403 when the token lacks the required ability.
# 429 once the rate limit is exceeded.

Seguridad que no es opcional

  • Secretos guardados en hash: una filtración de base de datos no da ningún token usable
  • HTTPS obligatorio; el HTTP simple se rechaza en lugar de redirigirse
  • Permisos por token, así una integración de informes no puede escribir
  • Fechas de caducidad opcionales y revocación con efecto inmediato
  • El inquilino se resuelve en el servidor: nunca se acepta un ID de instalación del cliente
  • Se registran método, ruta, estado, duración y token en cada petición
Recursos

Qué puedes leer y escribir

Reservas

Lista, inspecciona y filtra reservas de tus pistas, incluido el estado de check-in.

Pistas y turnos

Definiciones de pistas y sus turnos reservables, con disponibilidad por fecha.

Deportes e instalaciones

Los deportes que ofreces y las instalaciones de cada sede.

Socios

Los jugadores registrados en tu instalación, con su historial de reservas.

Facturas y pagos

Registros financieros ligados a las reservas que los originaron.

Torneos

Competiciones, equipos inscritos y partidos.

Visitantes

Recuentos de afluencia y resúmenes para informes de ocupación.

Perfil de la instalación

El registro de tu propia instalación: el inquilino al que apunta el token.

Versionada, así las actualizaciones las programas tú

Todo vive bajo /api/v1. Los cambios incompatibles salen como una versión nueva en lugar de aparecer sin avisar en la que ya integraste.

Solicitar acceso a la API
Disponibilidad de pistas
GET /api/v1/courts/12/slots?date=2026-08-09

{
  "data": [
    { "starts_at": "08:00", "available": true  },
    { "starts_at": "09:00", "available": false },
    { "starts_at": "10:00", "available": true  }
  ]
}

¿Necesitas un endpoint que no tenemos?

Dinos con qué estás integrando y lo miraremos.