Skip to main content
Los listados de la API usan cursor. Cada respuesta incluye has_more y next_cursor. No uses page ni offsets.

Recorrer una página

import { Lapyme } from "lapyme";

const lapyme = new Lapyme({
  bearerAuth: process.env["LAPYME_API_KEY"] ?? "",
});

const page = await lapyme.products.list({
  limit: 50,
  query: "remera",
});

console.log(page.result.data);
console.log(page.result.nextCursor);

Recorrer todas las páginas

import { Lapyme } from "lapyme";

const lapyme = new Lapyme({
  bearerAuth: process.env["LAPYME_API_KEY"] ?? "",
});

let cursor: string | undefined;

do {
  const page = await lapyme.products.list({
    limit: 100,
    cursor,
  });

  for (const product of page.result.data) {
    console.log(product.id, product.name);
  }

  cursor = page.result.nextCursor ?? undefined;
} while (cursor);

Patrón reusable

import { Lapyme } from "lapyme";

const lapyme = new Lapyme({
  bearerAuth: process.env["LAPYME_API_KEY"] ?? "",
});

async function* listProducts(query?: string) {
  let cursor: string | undefined;

  do {
    const page = await lapyme.products.list({
      limit: 100,
      cursor,
      query,
    });

    yield* page.result.data;
    cursor = page.result.nextCursor ?? undefined;
  } while (cursor);
}

for await (const product of listProducts("remera")) {
  console.log(product.sku);
}
Guardá el cursor solo como un token opaco. No intentes parsearlo ni construirlo a mano.