Skip to main content
List endpoints use offset pagination with two query parameters.
skip
integer
default:"0"
Number of records to skip before collecting results.
take
integer
default:"20"
Number of records to return. Maximum 100. Requests above 100 are clamped to 100.
Every list response echoes your paging window and the total count:
{
  "count": 1320,
  "skip": 0,
  "take": 20,
  "products": [ /* … */ ]
}

Iterating all pages

Increase skip by take until skip + take >= count.
async function* allProducts() {
  const take = 100;
  let skip = 0, count = Infinity;
  while (skip < count) {
    const res = await fetch(
      `https://api.kalixo.io/v2/catalog/products?skip=${skip}&take=${take}`,
      { headers: { "x-api-key": process.env.KALIXO_API_KEY } }
    );
    const page = await res.json();
    count = page.count;
    yield* page.products;
    skip += take;
  }
}
Use take=100 for bulk syncs to minimise round trips, and combine with filters to fetch only what you need.