📄

API Pagination Calculator — Offset & Cursor Tool

Calculate offset, limit, cursor, and page-based pagination parameters for API responses. Generates Link headers and standard response headers instantly.

API ToolsAPI & Backend
Loading tool...

How to Use API Pagination Calculator — Offset & Cursor Tool

How to Use the API Pagination Calculator:

  1. Enter Total Items: Input the total number of records in your collection or dataset. This is the full count before any pagination is applied — for example, the total number of rows returned by a SELECT COUNT(*) query. The calculator uses this to determine the total number of pages and whether a next or previous page exists.

  2. Set Page Size: Enter how many items should appear per page (also called limit or per_page in many APIs). Common values are 10, 20, 25, 50, or 100. Smaller page sizes reduce payload but require more requests; larger pages reduce round-trips but increase response size.

  3. Enter Current Page: Provide the 1-indexed page number you want to calculate parameters for. For example, entering page 3 with 10 items per page will produce an offset of 20. If the page exceeds the total pages, it will be automatically clamped to the last valid page.

  4. Provide a Base URL (optional): Enter your API endpoint URL (e.g., https://api.example.com/users). This is used to generate the Link header and example request URLs. You can use a placeholder if your URL is not yet determined — any URL works as a template.

  5. Load a Preset: Use the preset buttons at the top to quickly populate common scenarios: small datasets (50 items), medium datasets (500 items), large datasets (10,000 items), or a typical REST API setup (1,000 items, 20/page, page 2). Presets are useful for learning the tool or verifying your own calculations.

  6. Click Calculate: Press the Calculate button to instantly compute all pagination values. The summary cards display total pages, the current item range (e.g., items 21–30), and the previous/next page numbers so you can verify navigation logic at a glance.

  7. Switch Between Pagination Styles: Use the four tabs in the results panel to view parameters for each style:

    • Offset/Limit: Shows the computed offset and limit values, plus an example request URL using ?offset=N&limit=N query parameters.
    • Page-based: Shows the page and per_page parameters used by APIs like GitHub and many Laravel or Rails backends.
    • Cursor: Shows base64-encoded cursor tokens for current, previous, and next pages — useful for keyset/cursor-based pagination that avoids offset drift on live data.
    • Headers: Displays the full set of response headers including X-Total-Count, X-Total-Pages, X-Page, X-Per-Page, and the RFC 5988 Link header with first/prev/next/last relations.
  8. Copy Values: Hover over any code block to reveal the copy button, or click the inline copy icon next to cursor values. Use these to paste directly into your API implementation, documentation, or test suite.

Common Use Cases:

  • REST API implementation: Determine correct offset and limit values when building paginated list endpoints.
  • API documentation: Generate accurate example URLs and response headers for your OpenAPI/Swagger docs.
  • Frontend integration: Verify that your UI correctly computes page numbers and knows when to disable prev/next buttons.
  • Testing and QA: Generate expected header values to assert against in integration tests.
  • Cursor migration: Understand cursor tokens when migrating from offset-based to cursor-based pagination.
  • Client SDK development: Reference correct query parameter names and header conventions for SDK wrappers.
  • Debugging pagination bugs: Quickly recalculate expected values to compare against actual API responses.

Tips and Best Practices:

  • Offset/limit pagination is simple but degrades on very large datasets or frequently-changing data — consider cursors for feeds or timelines.
  • Cursor pagination avoids the "missing items" problem when records are inserted or deleted between page requests.
  • The Link header follows RFC 5988 and is the standard used by GitHub, GitLab, and many other APIs — prefer it over custom pagination headers when possible.
  • X-Total-Count is widely supported but can be expensive on large tables; consider making it optional or cached.
  • Always validate that (page - 1) * pageSize does not exceed total items to avoid returning empty pages.
  • Use consistent casing for query parameters (?page vs ?Page) and document your convention in your API spec.
  • Page size limits (e.g., max 100) should be enforced server-side to prevent abuse.
  • When using cursor pagination, encode the cursor as opaque base64 to allow changing the internal representation without breaking clients.

Frequently Asked Questions

Most Viewed Tools

📺

Screen Size Converter — Diagonal Dimension Tool

6,939 views

Calculate screen width and height from diagonal size and aspect ratio. Convert between inches and centimeters for displays, TVs, and monitors with instant dimension calculations.

Use Tool →
🖨️

DPI Calculator — Print Resolution Tool

5,107 views

Calculate DPI (dots per inch), image dimensions, and print sizes. Convert between pixels and physical dimensions for printing and displays.

Use Tool →
🔐

TOTP Code Generator — 2FA Testing Tool

3,796 views

Generate time-based one-time passwords from a TOTP secret key. Enter your base32 secret, choose a period and digit length, and get the current and next codes with a live countdown timer. Useful for testing and debugging 2FA integrations.

Use Tool →
{}

JSONL Formatter — Line-by-Line Validator

3,718 views

Format, validate, and inspect JSON Lines (JSONL) and NDJSON files. Validates each line individually, reports parse errors by line number, outputs compact JSONL or a pretty-print preview, and lets you download the cleaned file.

Use Tool →
🔑

Password Entropy Calculator — Crack Time Estimator

3,614 views

Calculate the information-theoretic bit entropy of any password or API key. Detects character set pools automatically, shows the total number of possible combinations, and estimates crack time across five attack scenarios from rate-limited web logins to GPU cracking clusters.

Use Tool →
{ }

JSON to Zod — Schema Generator

3,588 views

Generate Zod validation schema code from a JSON sample object. Infers z.string(), z.number(), z.boolean(), z.array(), z.object(), and z.null() types automatically. Handles nested objects, arrays of objects with optional field detection, and outputs copy-ready TypeScript with import and z.infer type alias.

Use Tool →
🔐

TLS Cipher Suite Checker — Strength Analyzer

3,432 views

Check TLS protocol version compatibility and cipher suite strength ratings against current best practices. Supports IANA and OpenSSL cipher names — rates each suite as Strong, Weak, or Deprecated and explains why.

Use Tool →
⏱️

Seconds to Time Converter — HH:MM:SS Formatter

3,211 views

Convert seconds to HH:MM:SS time format instantly with precise calculations and easy-to-read formatting.

Use Tool →

Related API & Backend Tools

📡

Server-Sent Events (SSE) Formatter — Build and Debug Real-Time Streams

Build Server-Sent Events messages with id, event, data, retry, and comment fields for testing SSE endpoints. Fill in each field individually and instantly see the correctly formatted SSE message string with double-newline terminator. Supports multi-line data fields, keep-alive comment lines, and an escaped wire-format view. Five presets cover the most common SSE patterns. Free and runs entirely in your browser.

Use Tool →
📋

API Changelog Generator — Automatically Detect Breaking Changes and Write Release Notes

Convert API change descriptions into structured Keep-a-Changelog format. Enter a version, date, and one change per line prefixed with its type (added, changed, deprecated, removed, fixed, or security). The tool instantly groups them into the canonical section order and outputs a ready-to-paste CHANGELOG.md block. Supports four real-world presets for REST API releases, breaking changes, patch releases, and unreleased work. Free and runs entirely in your browser.

Use Tool →
📊

GraphQL Cost Estimator — Analyze Query Complexity and Depth

Assign custom field weights to a GraphQL schema and calculate the total query complexity score. Paste any GraphQL query, configure per-field costs, and get a per-field breakdown table showing depth, multipliers, and cumulative cost.

Use Tool →

GraphQL Subscription Builder — Generate WebSocket Payloads and Client Queries

Build GraphQL subscription query strings and generate WebSocket connection code snippets for Apollo Client, urql, and graphql-ws. Define your operation name, variables, and selection fields visually, then copy the ready-to-use code.

Use Tool →
🔄

Postman to OpenAPI Converter — Spec Migration Tool

Convert Postman Collection v2.1 JSON to OpenAPI 3.0 specification format. Upload or paste your collection, and get a downloadable openapi.yaml or openapi.json with mapped paths, parameters, request bodies, and example responses.

Use Tool →
🔑

JWT Token Validator — Signature Verifier

Decode and validate JWT tokens instantly in your browser. Inspect header and payload claims, check expiry, and verify HMAC signatures (HS256/HS384/HS512). Free and private.

Use Tool →
🔐

OAuth Token Validator — JWT & OIDC Decoder

Validate and inspect OAuth tokens in your browser. Decode JWT access tokens and ID tokens to view claims, scopes, and expiry. Analyse opaque tokens for entropy and format. Free and private.

Use Tool →
📊

Rate Limit Header Parser — Throttle Info Decoder

Parse and visualize X-RateLimit headers from raw HTTP API responses. Paste response headers to instantly see your quota state — limit, remaining, used, and reset time — displayed as color-coded progress meters. Supports GitHub, OpenAI, Twitter/X, Shopify, and IETF standard rate limit headers.

Use Tool →

Share Your Feedback

Help us improve this tool by sharing your experience

We will only use this to follow up on your feedback