Ir al contenido principal
API REST v1

Documentación de la API

REST API + webhooks. Todo lo necesario para conectar tus sistemas a MiEspacio en un día.

Primeros pasos

URL base

Todas las solicitudes de API se realizan a la siguiente URL base:

/api//v1

Los endpoints públicos se pueden acceder sin autenticación. Los endpoints autenticados requieren un token Bearer obtenido a través del endpoint de login.

Endpoints

Endpoints públicos

Estos endpoints están disponibles sin autenticación.

MétodoURLDescripciónAuth
GET/companiesListar empresasNo
GET/companies/{slug}Detalles de empresaNo
GET/companies/{slug}/servicesServicios de empresaNo
GET/companies/{slug}/reviewsReseñas de empresaNo
GET/companies/{uuid}/booking/availabilityDisponibilidad de reservasNo
POST/companies/{uuid}/bookingsCrear reservaNo
GET/restaurantsListar restaurantesNo
GET/eventsListar eventosNo
GET/vacanciesListar ofertas de empleoNo
GET/blog/postsPublicaciones del blogNo
GET/business-typesTipos de negocioNo
GET/platform-statsEstadísticas de la plataformaNo

Endpoints de autenticación

Usados para obtener y gestionar tokens de acceso.

MétodoURLDescripciónAuth
POST/auth/loginIniciar sesiónNo
POST/auth/registerRegistrarseNo
POST/auth/refreshRefrescar token
GET/auth/meUsuario actual

Autenticación

MiEspacio usa autenticación Bearer token con Laravel Sanctum. Para acceder a endpoints autenticados:

  1. Envía una solicitud POST a /auth/login con tus credenciales.
  2. Incluye el token devuelto en la cabecera Authorization de las solicitudes posteriores.
  3. Refresca el token antes de que expire usando el endpoint de refresco.

Ejemplo de cabecera:

Authorization: Bearer your-token-here

Límites de velocidad

Las solicitudes de API están limitadas por IP para garantizar un uso justo.

ÁmbitoLímite
Endpoints públicos2.000 sol/min
Endpoints de reservas300 sol/min
Endpoints de autenticación25 sol/min

Cuando se supera el límite, recibirás una respuesta 429 Too Many Requests. La cabecera Retry-After indica cuántos segundos esperar.

Formato de respuesta

Todas las respuestas se devuelven en formato JSON. Las respuestas exitosas suelen seguir esta estructura:

{
  "data": [
    {
      "id": 1,
      "name": "La Maison Barcelona",
      "slug": "la-maison-barcelona"
    }
  ],
  "meta": {
    "current_page": 1,
    "last_page": 4,
    "per_page": 20,
    "total": 78
  }
}

Las respuestas paginadas incluyen metadatos de paginación estándar de Laravel (current_page, last_page, per_page, total).

Códigos de error

La API usa códigos de estado HTTP estándar para indicar el resultado de una solicitud.

CódigoSignificado
200OK — Solicitud exitosa
201Created — Recurso creado correctamente
400Bad Request — Parámetros de solicitud inválidos
401Unauthorized — Autenticación faltante o inválida
403Forbidden — Permisos insuficientes
404Not Found — El recurso no existe
422Unprocessable Entity — Errores de validación
429Too Many Requests — Límite de velocidad excedido
500Internal Server Error — Algo salió mal en nuestro servidor

Las respuestas de error incluyen un mensaje y, cuando aplica, un código de error estructurado:

{
  "message": "The selected time slot is no longer available.",
  "errors": {
    "slot": [
      "Please choose another available time."
    ]
  }
}

¿Necesitas una clave de API?

Contacta con nuestro equipo para solicitar acceso a la API para tu aplicación.

Contactar