boxioo Developers

Pagination

Comment parcourir de longues listes d'objets ou d'enregistrements.

Les endpoints de liste (ex. GET /v1/objects, GET /v1/objects/:apiName) acceptent deux paramètres de requête :

ParamDéfautMinMax
limit251100
offset00

La réponse porte toujours un bloc pagination :

{
  "data": [/* ... jusqu'à `limit` éléments ... */],
  "pagination": {
    "limit": 25,
    "offset": 50,
    "total": 137,
    "hasMore": true
  }
}

Parcourir toute la liste

let offset = 0;
const limit = 100;
let all: any[] = [];
 
while (true) {
  const res = await fetch(
    `https://api.boxioo.com/v1/objects/contact?limit=${limit}&offset=${offset}`,
    { headers: { Authorization: `ApiKey ${KEY}` } },
  );
  const page = await res.json();
  all = all.concat(page.data);
  if (!page.pagination.hasMore) break;
  offset += limit;
}

Pourquoi offset et pas cursor ?

La pagination par curseur est plus robuste face aux insertions concurrentes (impossible de sauter une ligne par accident). Pour l'instant, offset est le seul mode — simple et suffisant pour le cas d'usage typique façon Zapier.

Une option cursor pourra être ajoutée plus tard pour les jobs de synchro à fort débit. Elle arrivera comme paramètre additionnel ; les clients existants continueront de fonctionner.

Tri

La plupart des endpoints de liste acceptent :

ParamValeursDéfaut
orderBycreatedAt, updatedAt, parfois namecreatedAt
orderasc, descdesc

Synchro incrémentale

Pour les jobs BI qui pollent périodiquement :

ParamCe qu'il fait
createdAfterISO 8601 — uniquement les éléments créés à partir de cet horodatage
updatedAfterISO 8601 — uniquement les éléments modifiés à partir de cet horodatage

Une synchro horaire typique :

curl "https://api.boxioo.com/v1/objects/contact?updatedAfter=2026-05-26T00:00:00Z&orderBy=updatedAt&order=asc&limit=100" \
  -H "Authorization: ApiKey bk_live_..."

Parcourez les pages, puis stockez le plus grand updatedAt vu comme votre nouveau point de reprise.

On this page