🇵🇪 Construido en Perú

🍽️ API de Platos Típicos del Perú

Descubre la riqueza gastronómica peruana a través de una API moderna, rápida y completamente gratuita.

🚀

Inicio Rápido

La API expone rutas públicas para consultar platos típicos por región:

GET /api Lista todas las regiones disponibles
GET /api/<region> Obtiene platos de una región específica
GET /api/<region>/<id> Detalle completo de un plato
URL Base: 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

JavaScript
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
curl https://api-comida-peru.luisgagocasas.com/api
Python
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)

JavaScript
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
curl 'https://api-comida-peru.luisgagocasas.com/api/lima?limit=5'
Python
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)

JavaScript
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
curl 'https://api-comida-peru.luisgagocasas.com/api/arequipa?tipo=Fondo'
Python
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)

JavaScript
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
curl 'https://api-comida-peru.luisgagocasas.com/api/arequipa?ingrediente=ájí'
Python
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

JavaScript
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
curl 'https://api-comida-peru.luisgagocasas.com/api/puno?q=quinua&sort=nombre&limit=10'
Python
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

JavaScript
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
curl https://api-comida-peru.luisgagocasas.com/api/lima/101
Python
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

JavaScript
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}`);
});
Python
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.