Pagination

How to work with paginated responses when querying the Lua API. By default, responses are paginated with 25 results per page.

Making Paginated Requests

To fetch different pages of results, you can append the page parameter to your API requests. For example, to retrieve the second page of users:

Response Structure

  • Name
    data
    Type
    array
    Description

    An array of objects representing the items on the current page. Each object contains customer information such as id, name, and email.

  • Name
    links
    Type
    object
    Description

    Contains URLs for navigating between pages, including first, last, previous, and next page links.

  • Name
    meta
    Type
    object
    Description

    Provides metadata about the pagination, including current page, total pages, items per page, and total item count.

The meta object tells us we're on page 1 of 4, with 25 items per page and a total of 100 items.

Request

curl -X https://lua.sh/api/v1/customers \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d page=2

Response

{
  "data": [
      {
          "id": "9d1a6ef4-05b2-420c-8237-ba4f99cb206c",
          "name": "Elon Musk",
          "email": "[email protected]"
      },
      {
          "id": "8d1a6ef1-05b3-420c-1233-ca4f99cb2064",
          "name": "Steve Jobs",
          "email": "[email protected]"
      }
  ],
  "links": {
    "first": "https://lua.sh/api/v1/customers?page=1",
    "last": "https://lua.sh/api/v1/customers?page=1",
    "prev": null,
    "next": null
  },
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 1,
    "links": [
      {
        "url": null,
        "label": "Previous",
        "active": false
      },
      {
        "url": "https://lua.sh/api/v1/customers?page=1",
        "label": "1",
        "active": true
      },
      {
        "url": null,
        "label": "Next",
        "active": false
      }
    ],
    "path": "https://lua.sh/api/v1/customers",
    "per_page": 25,
    "to": 3,
    "total": 3
  }
}