Pagination

Most collection based endpoints support pagination.

Request

You can request between 1 and 100 items per page, the default is 10.

Each request with pagination support, allows you to set the page size and page number using the query parameters below.

Page size (results per page): page[size]
Page number (current page): page[number]

Response

Responses with pagination support will contain the following envelope.

{
  "data": [
    //..
  ],
  "links": {
    "first": "https://api.travelconnectionleisure.com/v1/venues?page%5Bnumber%5D=1",
    "last": "https://api.travelconnectionleisure.com/v1/venues?page%5Bnumber%5D=19",
    "prev": null,
    "next": "https://api.travelconnectionleisure.com/v1/venues?page%5Bnumber%5D=2"
  },
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 19,
    "links": [
      {
        "url": null,
        "label": "« Previous",
        "active": false
      },
      {
        "url": "https://api.travelconnectionleisure.com/v1/venues?page%5Bnumber%5D=1",
        "label": "1",
        "active": true
      }
      // ..
    ],
    "path": "https://api.travelconnectionleisure.com/v1/venues",
    "per_page": 10,
    "to": 10,
    "total": 183
  }
}

Fetch all items

Here is an example to fetch all items in one process using PHP.

$pageNumber = 1;
$venues     = [];

while (true) {
  $response = $client->get('venues?page[size]=100&page[number]=' . $pageNumber);
  $json     = json_decode($response->getBody()->getContent(), true);
  
  if (empty($json['data'])) {
    break;
  }
  
  $venues = array_merge($json['data'], $venues);
  
  $pageNumber++;
}

foreach ($venues as $venue) {
  // ..
}