diff --git a/src/Resource/ViewsResource.php b/src/Resource/ViewsResource.php
index 241dfc0..c2072dd 100644
--- a/src/Resource/ViewsResource.php
+++ b/src/Resource/ViewsResource.php
@@ -8,6 +8,7 @@ use Drupal\Core\Render\RenderContext;
 use Drupal\Core\Url;
 use Drupal\jsonapi\JsonApiResource\Link;
 use Drupal\jsonapi\JsonApiResource\LinkCollection;
+use Drupal\jsonapi\Query\OffsetPage;
 use Drupal\jsonapi\ResourceResponse;
 use Drupal\jsonapi_resources\Resource\EntityResourceBase;
 use Drupal\views\ResultRow;
@@ -56,6 +57,32 @@ final class ViewsResource extends EntityResourceBase {
     return $exposed_sort_params;
   }
 
+  /**
+   * Setup the pager offset/limit by extracting options from the request.
+   *
+   * @param \Drupal\views\ViewExecutable $view
+   *   View executable.
+   *
+   * @param \Symfony\Component\HttpFoundation\Request $request
+   *   The request.
+   */
+  protected function setupViewPager(ViewExecutable &$view, Request $request): void {
+    $page_params = $request->query->get(OffsetPage::KEY_NAME);
+
+    if (is_array($page_params)) {
+      if (isset($page_params[OffsetPage::OFFSET_KEY]) && is_numeric($page_params[OffsetPage::OFFSET_KEY])) {
+        $view->setOffset((int) $page_params[OffsetPage::OFFSET_KEY]);
+      }
+
+      if (isset($page_params[OffsetPage::SIZE_KEY]) && is_numeric($page_params[OffsetPage::SIZE_KEY])) {
+        // Limit to max items
+        // https://www.drupal.org/docs/core-modules-and-themes/core-modules/jsonapi-module/pagination#s--cant-i-set-a-page-limit-higher-than-50
+        $limit = min(OffsetPage::SIZE_MAX, intval($page_params[OffsetPage::SIZE_KEY]));
+        $view->setItemsPerPage($limit);
+      }
+    }
+  }
+
   /**
    * Get views pager.
    *
@@ -126,6 +153,9 @@ final class ViewsResource extends EntityResourceBase {
     $exposed_params = \array_merge($exposed_filter_params, $exposed_sort_params);
     $view->setExposedInput($exposed_params);
 
+    // Setup pager from request.
+    $this->setupViewPager($view, $request);
+
     return $view->preview($display_id);
   }
 
