Pagination abstraction and /api/(un)save