API Móvil
Sportware expone una API REST completa para la aplicación móvil nativa y para integraciones de terceros. La documentación interactiva (OpenAPI) está disponible en https://sportware.dev/api-docs.
Autenticación
La API usa autenticación por token Bearer obtenido mediante el flujo de login por teléfono + OTP.
Flujo de Login
POST /api/login
{
"phone": "+34612345678"
}
→ Envía SMS con código OTP
POST /api/login/verify
{
"phone": "+34612345678",
"code": "123456"
}
→ { "token": "Bearer xxxxxxxx" }
El token se incluye en todas las peticiones posteriores:
Authorization: Bearer <token>
Endpoints Disponibles
Sesión
| Método | Endpoint | Descripción |
|---|---|---|
POST |
/api/login |
Solicitar OTP por teléfono |
POST |
/api/login/verify |
Verificar OTP y obtener token |
DELETE |
/api/logout |
Cerrar sesión |
Perfil del Usuario
| Método | Endpoint | Descripción |
|---|---|---|
GET |
/api/me |
Obtener perfil del usuario autenticado |
PATCH |
/api/me |
Actualizar datos del perfil |
POST |
/api/me/push-token |
Registrar token para notificaciones push |
DELETE |
/api/me/push-token |
Eliminar token de notificaciones push |
Registro de Nuevos Usuarios
| Método | Endpoint | Descripción |
|---|---|---|
POST |
/api/register |
Crear nueva cuenta de jugador |
Torneos
| Método | Endpoint | Descripción |
|---|---|---|
GET |
/api/tournaments |
Listado de torneos disponibles |
GET |
/api/tournaments/:id |
Detalle de un torneo |
GET |
/api/tournaments/mine |
Torneos del usuario autenticado |
GET |
/api/tournaments/:id/matches |
Partidos de un torneo |
GET |
/api/tournaments/:id/standings |
Clasificación de un torneo |
POST |
/api/tournaments/:id/register |
Inscribirse en un torneo |
Inscripciones
| Método | Endpoint | Descripción |
|---|---|---|
DELETE |
/api/registrations/:id |
Cancelar inscripción |
Documentación OpenAPI
La especificación completa de la API está disponible en formato OpenAPI en:
GET /api/openapi
Esto permite generar clientes automáticamente para cualquier plataforma (iOS, Android, web).
Campo club.location
En las respuestas que incluyen un club, el campo location devuelve las coordenadas del club en formato:
[latitude, longitude]
Ejemplo:
"club": {
"id": 2,
"name": "North Padel Club",
"country": "UY",
"city": "Montevideo",
"logo_url": "https://sportware.dev/rails/active_storage/blobs/redirect/...",
"location": [-34.901112, -56.164532]
}
logo_url devuelve la URL pública del logo del club y será null si el club no tiene logo.
Si el club no tiene ambas coordenadas cargadas, location será null.
Aplicación Móvil
La app móvil de Sportware está disponible para iOS y Android. Conecta directamente con esta API y ofrece:
- Login por teléfono (OTP)
- Explorar torneos por club o zona geográfica
- Inscribirse a torneos con tu pareja
- Ver calendario de partidos propios
- Recibir notificaciones push de resultados y cambios
- Consultar clasificaciones en tiempo real
Para más información: https://sportware.dev/mobile-app