Listar restaurantes para descubrir
POST /api/discover/list-restaurants
Descripción
Lista de forma paginada los restaurantes publicados en Tu zona.
Detalles
* Con la ubicación del comensal los ordena del más cercano al más lejano e informa la distancia. * Los restaurantes sin ubicación cargada aparecen igual, al final y sin distancia. * Puede acotarse a una ciudad, a un tipo de cocina o buscar por nombre. * Cada restaurante indica si está abierto en este momento según su horario.
Permisos requeridos
public
Request
| Nombre | Tipo | Requerido | Reglas |
|---|---|---|---|
| search | string | No |
min:2
max:100
|
| cuisineCode | string | No |
max:40
|
| countryCode | string | No |
min:2
max:2
|
| municipalityCode | string | No |
max:10
|
| latitude | string | No |
decimal
min_value:-90
max_value:90
|
| longitude | string | No |
decimal
min_value:-180
max_value:180
|
Paginación
| defaultLimit | 20 |
| maxLimit | 50 |
| allowedSorts | [distanceSort, name] |
| defaultSort | distanceSort |
| defaultDir | asc |
| tieBreak | name asc |
| withTotal | true |
Respuesta
Campos que devuelve dentro de data. Nada fuera de esta lista sale en la respuesta.
| Campo | Tipo | Descripción |
|---|---|---|
| restaurants | array | Restaurantes publicados en Tu zona |
| restaurants[].slug | string | Dirección pública con la que se abre el restaurante |
| restaurants[].name | string | Nombre del restaurante |
| restaurants[].logoUrl | string Admite vacío | Dirección de la imagen del logo |
| restaurants[].cuisineCode | string Admite vacío | Código del tipo de cocina |
| restaurants[].cuisineName | string Admite vacío | Nombre del tipo de cocina |
| restaurants[].cuisineIcon | string Admite vacío | Ícono del tipo de cocina |
| restaurants[].cuisineTone | string Admite vacío | Tono de color del tipo de cocina |
| restaurants[].cityName | string Admite vacío | Ciudad del restaurante |
| restaurants[].distanceMeters | int Admite vacío | Distancia al comensal en metros; vacía sin ubicación |
| restaurants[].isOpen | bool | Si atiende en este momento |
| pagination | pagination | Página devuelta y total de resultados |
Ejemplo de request
curl -X POST https://restofy.pro/api/discover/list-restaurants \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <accessToken>"
Los valores son demo: reemplázalos por datos reales del negocio.
Ejemplo de respuesta
Actualizado: 2026-10-09T02:12:12Z
HTTP 200
Request
{
"latitude": 4.652,
"longitude": -74.06
}
Response
{
"success": true,
"message": "Restaurantes",
"data": {
"restaurants": [
{
"slug": "cafe-bistro",
"name": "Café Bistró",
"logoUrl": null,
"cuisineCode": "cafe",
"cuisineName": "Café",
"cuisineIcon": "fa-mug-saucer",
"cuisineTone": "zinc",
"cityName": "Bogotá, D.C.",
"distanceMeters": 494,
"isOpen": true
},
{
"slug": "panaderia-la-espiga",
"name": "Panadería La Espiga",
"logoUrl": null,
"cuisineCode": null,
"cuisineName": null,
"cuisineIcon": null,
"cuisineTone": null,
"cityName": "Cali",
"distanceMeters": null,
"isOpen": false
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 2,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
}
}
}