Inicio Rápido
La API expone rutas públicas para consultar platos típicos por región:
/api
Lista todas las regiones disponibles
/api/<region>
Obtiene platos de una región específica
/api/<region>/<id>
Detalle completo de un plato
https://api-comida-peru.luisgagocasas.com/api
Parámetros de Consulta
limit
Número de resultados (por defecto 20, máx 100)
offset
Paginación de resultados
tipo
Filtra por categoría: Entrada, Fondo, Postre, Bebida
ingrediente
Busca por ingrediente específico
q
Búsqueda libre por nombre o preparación
sort
Ordena por: id, nombre o tipo
Explora por Región
Haz clic en cualquier región para ver sus platos típicos
Ejemplos de Uso
Listar todas las regiones
fetch('https://api-comida-peru.luisgagocasas.com/api')
.then(response => response.json())
.then(data => console.log(data.regiones))
.catch(error => console.error('Error:', error));
curl https://api-comida-peru.luisgagocasas.com/api
import requests
response = requests.get('https://api-comida-peru.luisgagocasas.com/api')
regiones = response.json()['regiones']
print(regiones)
Obtener platos de Lima (con límite)
fetch('https://api-comida-peru.luisgagocasas.com/api/lima?limit=5')
.then(response => response.json())
.then(data => {
console.log(`Total de platos: ${data.total}`);
data.platos.forEach(plato => {
console.log(`${plato.id}. ${plato.nombre} - ${plato.tipo}`);
});
});
curl 'https://api-comida-peru.luisgagocasas.com/api/lima?limit=5'
import requests
response = requests.get(
'https://api-comida-peru.luisgagocasas.com/api/lima',
params={'limit': 5}
)
data = response.json()
for plato in data['platos']:
print(f"{plato['id']}. {plato['nombre']} - {plato['tipo']}")
Filtrar por tipo de plato (Fondos de arequipa)
fetch('https://api-comida-peru.luisgagocasas.com/api/arequipa?tipo=Fondo')
.then(response => response.json())
.then(data => {
console.log(`Encontrados ${data.total} platos de fondo`);
data.platos.forEach(plato => console.log(plato.nombre));
});
curl 'https://api-comida-peru.luisgagocasas.com/api/arequipa?tipo=Fondo'
import requests
response = requests.get(
'https://api-comida-peru.luisgagocasas.com/api/arequipa',
params={'tipo': 'Fondo'}
)
platos = response.json()['platos']
print(f"Encontrados {len(platos)} platos de fondo")
Buscar por ingrediente (platos con ají en Arequipa)
fetch('https://api-comida-peru.luisgagocasas.com/api/arequipa?ingrediente=ájí')
.then(response => response.json())
.then(data => {
data.platos.forEach(plato => {
console.log(`${plato.nombre}: ${plato.ingredientes.join(', ')}`);
});
});
curl 'https://api-comida-peru.luisgagocasas.com/api/arequipa?ingrediente=ájí'
import requests
response = requests.get(
'https://api-comida-peru.luisgagocasas.com/api/arequipa',
params={'ingrediente': 'ájí'}
)
for plato in response.json()['platos']:
print(f"{plato['nombre']}: {', '.join(plato['ingredientes'])}")
Búsqueda libre y ordenamiento
fetch('https://api-comida-peru.luisgagocasas.com/api/puno?q=quinua&sort=nombre&limit=10')
.then(response => response.json())
.then(data => {
console.log(`Platos con "quinua": ${data.total}`);
data.platos.forEach(plato => console.log(plato.nombre));
});
curl 'https://api-comida-peru.luisgagocasas.com/api/puno?q=quinua&sort=nombre&limit=10'
import requests
response = requests.get(
'https://api-comida-peru.luisgagocasas.com/api/puno',
params={'q': 'quinua', 'sort': 'nombre', 'limit': 10}
)
data = response.json()
print(f"Platos con 'quinua': {data['total']}")
Obtener un plato específico por ID
fetch('https://api-comida-peru.luisgagocasas.com/api/lima/101')
.then(response => response.json())
.then(plato => {
console.log(`Plato: ${plato.nombre}`);
console.log(`Tipo: ${plato.tipo}`);
console.log(`Ingredientes: ${plato.ingredientes.join(', ')}`);
});
curl https://api-comida-peru.luisgagocasas.com/api/lima/101
import requests
response = requests.get('https://api-comida-peru.luisgagocasas.com/api/lima/101')
plato = response.json()
print(f"Plato: {plato['nombre']}")
print(f"Tipo: {plato['tipo']}")
print(f"Ingredientes: {', '.join(plato['ingredientes'])}")
Paginación de resultados
async function obtenerTodosLosPlatos(region) {
let offset = 0;
const limit = 20;
const todosLosPlatos = [];
while (true) {
const response = await fetch(
`https://api-comida-peru.luisgagocasas.com/api/${region}?limit=${limit}&offset=${offset}`
);
const data = await response.json();
todosLosPlatos.push(...data.platos);
if (offset + limit >= data.total) break;
offset += limit;
}
return todosLosPlatos;
}
obtenerTodosLosPlatos('lima').then(platos => {
console.log(`Total de platos obtenidos: ${platos.length}`);
});
import requests
def obtener_todos_los_platos(region):
offset = 0
limit = 20
todos_los_platos = []
while True:
response = requests.get(
f'https://api-comida-peru.luisgagocasas.com/api/{region}',
params={'limit': limit, 'offset': offset}
)
data = response.json()
todos_los_platos.extend(data['platos'])
if offset + limit >= data['total']:
break
offset += limit
return todos_los_platos
platos = obtener_todos_los_platos('lima')
print(f"Total de platos obtenidos: {len(platos)}")
Recomendaciones
Slugs de Región
Usa los slugs ASCII normalizados: apurimac, la-libertad, madre-de-dios
Filtros Moderados
Aplica filtros específicos para mejorar el rendimiento y evitar límites de tasa
Cacheo
Cachea las respuestas en tu cliente siempre que sea posible para optimizar peticiones
Paginación
Usa limit y offset para manejar grandes volúmenes de datos eficientemente
Licencia
El código fuente está bajo licencia MIT. Los datos JSON están bajo licencia CC BY 4.0.
Puedes usar, modificar y distribuir libremente tanto el código como los datos, siempre que des la atribución correspondiente.