📄 Pagination

All list endpoints in the Infinia API use cursor-based pagination. This ensures consistent performance and reliable results regardless of how much data your account accumulates over time.


How it works

Instead of navigating by page number, you receive a next_cursor value in each response. Pass it back in your next request to get the following page of results. When next_cursor is null, you've reached the end.

Request parameters

ParameterTypeDefaultMaxDescription
limitinteger50100Number of records to return
cursorstringCursor from the previous response's next_cursor

Response fields

FieldTypeDescription
dataarrayThe list of records for this page
next_cursorstring | nullPass this as cursor in your next request. null means there are no more pages
has_morebooleantrue if there are additional pages available, false if this is the last page

Example

First request — no cursor needed

curl --request GET \
  --url "https://app2test.infiniaweb.com/infinia_api/v1/payments/?limit=50" \
  --header "Authorization: Basic $(echo -n 'your_secret_id:your_secret_password' | base64)"

Response

{
  "data": [...],
  "next_cursor": "eyJpZCI6IDEyMzR9",
  "has_more": true
}

Next page — pass the cursor

curl --request GET \
  --url "https://app2test.infiniaweb.com/infinia_api/v1/payments/?limit=50&cursor=eyJpZCI6IDEyMzR9" \
  --header "Authorization: Basic $(echo -n 'your_secret_id:your_secret_password' | base64)"

When has_more is false and next_cursor is null, you've fetched all available records.


Keeping filters consistent

The cursor encodes the position within a specific result set. You must pass the same filters on every request throughout a pagination session — changing any filter parameter mid-session will cause the cursor to be rejected or return unexpected results.

# First request
GET /payments/?limit=50&status=COMPLETED&date_from=2025-01-01T00:00:00

# Correct — same filters, adding the cursor
GET /payments/?limit=50&status=COMPLETED&date_from=2025-01-01T00:00:00&cursor=eyJpZCI6IDEyMzR9

# Wrong — filter changed mid-session
GET /payments/?limit=50&status=AWAITING&date_from=2025-01-01T00:00:00&cursor=eyJpZCI6IDEyMzR9

If you need to apply different filters, start a new pagination session from the beginning without a cursor.


Migrating from page_number / page_size

If you are currently using page_number and page_size, these parameters will be disabled on July 1st. Both will continue to work until that date, but we encourage migrating as soon as possible.

Old parameterReplacement
page_sizelimit
page_numbercursor

The main difference is that instead of calculating which page to jump to, you follow the next_cursor from one response to the next.