Luna SaludReferencia de la APILuna Salud

Paginación y filtrado

Los endpoints de lista de la API de Luna Health devuelven resultados en páginas para que puedas recuperar colecciones grandes de forma eficiente. Como la API es de solo lectura, paginas y filtras completamente con parámetros de consulta GET — no hay cuerpo de solicitud.

Pagina los resultados

Solicita una página a la vez y sigue solicitando hasta que una página llegue incompleta (o la respuesta indique que no hay página siguiente). Los parámetros exactos que acepta esta API se listan en Parámetros compatibles más abajo y en la página de referencia de cada endpoint.

# Obtén la primera página y luego la siguiente, ajustando los parámetros
curl "https://account.lunahealth.app/api/appointments?limit=50" \
  -H "Authorization: Bearer TU_CLAVE_API"
async function fetchAll(url, apiKey) {
  const results = [];
  let offset = 0;
  const limit = 50;
  for (;;) {
    const res = await fetch(`${url}?limit=${limit}&offset=${offset}`, {
      headers: { Authorization: `Bearer ${apiKey}` },
    });
    const page = await res.json();
    const items = Array.isArray(page) ? page : page.data ?? [];
    results.push(...items);
    if (items.length < limit) break;
    offset += limit;
  }
  return results;
}
import requests

def fetch_all(url, api_key, limit=50):
    results, offset = [], 0
    while True:
        res = requests.get(
            url,
            params={"limit": limit, "offset": offset},
            headers={"Authorization": f"Bearer {api_key}"},
        )
        page = res.json()
        items = page if isinstance(page, list) else page.get("data", [])
        results.extend(items)
        if len(items) < limit:
            break
        offset += limit
    return results

Filtra los resultados

Reduce una lista añadiendo parámetros de consulta de filtro — por ejemplo, un rango de fechas, un estado o un término de búsqueda. Combina filtros con paginación para mantener las respuestas pequeñas y rápidas. Los filtros disponibles en cada endpoint se documentan en su página de referencia.

Buenas prácticas

Parámetros compatibles

NombreTipoDescripción
end_datestringFecha de fin opcional para filtrar (formato ISO)
fromstring (date-time)Fecha de inicio opcional para filtrar por fecha de creación (formato ISO 8601)
limitnumberNúmero de elementos por página
pagenumberNúmero de página (indexado en 0)
querystringConsulta de búsqueda para filtrar usuarios
start_datestringFecha de inicio opcional para filtrar (formato ISO)
statusstringFiltrar por estado
tostring (date-time)Fecha de fin opcional para filtrar por fecha de creación (formato ISO 8601)