Aside: I forgot that we support both page/perPage and limit/offset, but I guess that's fine since we cache all of them into a single key.