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`](/docs/methods/image.list) returns:

```json
{
  "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.

```bash
# 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"}}'
```
