View as Markdown

Pagination

List endpoints return newest first:

{ "object": "list", "data": [ ... ], "has_more": true, "url": "/v1/orders" }
params = {"limit": 100}
while True:
    page = requests.get(f"{API}/v1/orders", params=params, headers=auth).json()
    for order in page["data"]:
        handle(order)
    if not page["has_more"]:
        break
    params["starting_after"] = page["data"][-1]["id"]

Cursors are stable: new objects don't shift pages you're walking.