Go to Rilla

Pagination

Page through conversation exports.

Pagination model

Only POST /export/conversations is paginated. The teams and users endpoints return their results in one response.

FieldBehavior
pageStarts at 1.
limit1–50 results per array per page. Defaults to 50.
totalPagesThe maximum page count across conversations, awaitingUpload, and errored.

Export all pages

Implement consume to store or process each page.

Complete pagination example
// apiKey and consume are supplied by your application.
let page = 1;
let totalPages = 1;

do {
  const response = await fetch(
    'https://customer.rillavoice.com/export/conversations',
    {
      method: 'POST',
      headers: {
        Authorization: apiKey,
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({
        fromDate: '2026-09-01T00:00:00Z',
        toDate: '2026-09-02T00:00:00Z',
        page, limit: 50,
      }),
    },
  );
  if (!response.ok) {
    throw new Error(`Export failed: ${response.status}`);
  }
  const data = await response.json();
  await consume({
    conversations: data.conversations,
    awaitingUpload: data.awaitingUpload ?? [],
    errored: data.errored,
  });
  totalPages = data.totalPages;
  page += 1;
} while (page <= totalPages);

Date types

timeOfRecording is the default. processedDate selects by processing time and omits awaitingUpload and totalAwaitingUpload, because those recordings haven’t been processed.

For an ongoing sync, persist stable record IDs and make downstream writes idempotent. Avoid assuming that an earlier export window can never change.

On this page