MenuPagination

Every Property, 100 at a time

At most 100 Properties per call

One call names at most 100 Properties: the property_id[] of GET /restrictions and GET /bookings, and the distinct Properties of a Restriction Batch. Past that, the call answers 422 validation_failed and the issue carries maximum: 100.

Walk through every Property

GET /properties is paged so you can always reach the whole Connection Scope: pages hold up to 100 Properties (limit, 100 by default), ordered by id. Pass next_cursor as cursor until it is null. A walk through the pages never repeats a Property, and returns every Property present for the whole walk, even while Properties are renamed.

Then make one call per page: read the Restrictions of the page, and send one Restriction Batch per page. GET /bookings needs no such loop: leave property_id[] out to page through every booking of the Connection Scope.

Every Property (pseudo-code)
cursor = null

repeat:
    page = GET /api/v1/properties?limit=100&cursor={cursor}   # omit cursor on the first call
    ids = [property.id for property in page.data]                 # at most 100

    GET /api/v1/restrictions?property_id[]={ids[0]}&property_id[]={ids[1]}...&from=...&to=...
    POST /api/v1/restriction-batches                              # entries for these ids only

    cursor = page.next_cursor
until cursor is null