Listar restaurantes de la vitrina
POST /api/restaurants/list-restaurants
Descripción
Devuelve los restaurantes publicados en la vitrina, paginados.
Detalles
Retorna los restaurantes disponibles de la vitrina pública con su perfil, horario del día y estado abierto o cerrado. Con las coordenadas del visitante calcula la distancia aproximada en kilómetros y permite ordenar por cercanía. Soporta búsqueda por nombre y filtro de abiertos ahora. Los restaurantes pausados no aparecen en el listado.
Permisos requeridos
public
Request
| Nombre | Tipo | Requerido | Reglas |
|---|---|---|---|
| search | string | No |
max:120
|
| latitude | string | No |
decimal
min_value:-90
max_value:90
|
| longitude | string | No |
decimal
min_value:-180
max_value:180
|
| openNow | bool | No | — |
Paginación
| defaultLimit | 20 |
| maxLimit | 100 |
| allowedSorts | name, createdAt, distanceSort |
| defaultSort | name |
| defaultDir | asc |
Ejemplo de request
curl -X POST https://restofy.pro/api/restaurants/list-restaurants \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <accessToken>" \
-H "X-Tenant-Key: <tenantKey>"
Los valores son demo: reemplázalos por datos reales del negocio.
Ejemplo de respuesta
Actualizado: 2026-09-08T16:35:34Z
HTTP 200
Request
[]
Response
{
"success": true,
"message": "Operación realizada correctamente",
"data": {
"restaurants": [
{
"restaurantUuid": "a1aaaa01-0000-4000-8000-000000000001",
"name": "Café Bistró",
"slug": "cafe-bistro",
"description": null,
"city": "Bogotá",
"address": null,
"logoUrl": null,
"coverUrl": null,
"whatsapp": null,
"cuisine": null,
"latitude": null,
"longitude": null,
"distanceKm": null,
"closesAt": "23:59:59",
"isOpen": true,
"version": 1
},
{
"restaurantUuid": "a1aaaa01-0000-4000-8000-000000000002",
"name": "Panadería La Espiga",
"slug": "panaderia-la-espiga",
"description": null,
"city": "Cali",
"address": null,
"logoUrl": null,
"coverUrl": null,
"whatsapp": null,
"cuisine": null,
"latitude": null,
"longitude": null,
"distanceKm": null,
"closesAt": null,
"isOpen": false,
"version": 1
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 2,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
}
}
}