List endpoints use cursor pagination, not page numbers or offsets, so a bulk import of old photos never reshuffles the top of an in-progress listing.

image.list returns:

{
  "items": [ /* … */ ],
  "next_cursor": "018f3a6b-9d1e-7c4a-8b2f-1a2b3c4d5e6f"
}

To fetch the next page, pass the returned next_cursor back as the cursor parameter. When next_cursor is empty (""), you have reached the last page.

Items are ordered by capture time — taken_at, falling back to created_at — newest first. The cursor is opaque; do not parse or construct it, and do not assume it is a timestamp or an id.

Use the optional limit parameter (default 50) to control page size.

# first page
curl -s https://peinture.gumeniuk.com/rpc \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"image.list","params":{"limit":50}}'

# next page — feed next_cursor back in
curl -s https://peinture.gumeniuk.com/rpc \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"image.list","params":{"cursor":"018f3a6b-9d1e-7c4a-8b2f-1a2b3c4d5e6f"}}'