Traversing with pagination
ChatKitty paginates all collection resources. Requesting a resource collection returns the first page of the collection optionally with HAL hypermedia links to subsequent pages if more pages are available.
Traverse the page links to iterate through a collection.
{
  "_embedded": {
    "users": [
      {
        "id": 1,
        "name": "jane@chatkitty.com",
        "displayName": "Jane Doe",
        "_links": {
          "self": {
            "href": "https://api.chatkitty.com/applications/1/users/1"
          },
          "channels": {
            "href": "https://api.chatkitty.com/applications/1/users/1/channels"
          },
          "application": {
            "href": "https://api.chatkitty.com/applications/1"
          }
        }
      },
      {
        "id": 2,
        "name": "john@chatkitty.com",
        "displayName": "John Doe",
        "_links": {
          "self": {
            "href": "https://api.chatkitty.com/applications/1/users/2"
          },
          "channels": {
            "href": "https://api.chatkitty.com/applications/1/users/2/channels"
          },
          "application": {
            "href": "https://api.chatkitty.com/applications/1"
          }
        }
      }, // Other items in this slice ...
    ]
  },
  "_links": {
    "first": {
      "href": "https://api.chatkitty.com/applications/1/users?page=0&size=25"
    },
    "prev": {
      "href": "https://api.chatkitty.com/applications/1/users?page=0&size=25"
    },
    "self": {
      "href": "https://api.chatkitty.com/applications/1/users?page=1&size=25"
    },
    "next": {
      "href": "https://api.chatkitty.com/applications/1/users?page=2&size=25"
    },
    "last": {
      "href": "https://api.chatkitty.com/applications/1/users?page=2&size=25"
    }
  },
  "page": {
    "size": 25,
    "totalElements": 50,
    "totalPages": 2,
    "number": 0
  }
}
Properties
Embedded properties 
A page resource embeds a slice of a resource collection in a JSON array property with the same name as the resource collection. For example, with a collection of users resources, the resource collection name would be users, and the page would include a JSON array in its _embedded property named users, as per the HAL specification.
{
  "_embedded": {
    "users": [
      {
        "id": 1,
        "name": "jane@chatkitty.com",
        "displayName": "Jane Doe",
        "_links": {
          "self": {
            "href": "https://api.chatkitty.com/applications/1/users/1"
          },
          "channels": {
            "href": "https://api.chatkitty.com/applications/1/users/1/channels"
          },
          "application": {
            "href": "https://api.chatkitty.com/applications/1"
          }
        }
      },
      {
        "id": 2,
        "name": "john@chatkitty.com",
        "displayName": "John Doe",
        "_links": {
          "self": {
            "href": "https://api.chatkitty.com/applications/1/users/2"
          },
          "channels": {
            "href": "https://api.chatkitty.com/applications/1/users/2/channels"
          },
          "application": {
            "href": "https://api.chatkitty.com/applications/1"
          }
        }
      }, // Other items in this slice ...
    ]
  }, // Page links and metadata
}
HAL links
| Link | Methods | Description | 
|---|---|---|
| self | GET | Self link to this page. | 
| first | GET | Optional: Link to the first page of this collection. Present if known. | 
| prev | GET | Optional: Link to the previous page of this collection. Present if there are more items before the first item in this page. | 
| next | GET | Optional: Link to the next page of this collection. Present if there are more items after the last item in this page. | 
| last | GET | Optional: Link to the last page of this collection. Present if known. | 
{
  // ... Embedded properties,
  "_links": {
    "first": {
      "href": "https://api.chatkitty.com/applications/1/users?page=0&size=25"
    },
    "prev": {
      "href": "https://api.chatkitty.com/applications/1/users?page=0&size=25"
    },
    "self": {
      "href": "https://api.chatkitty.com/applications/1/users?page=1&size=25"
    },
    "next": {
      "href": "https://api.chatkitty.com/applications/1/users?page=2&size=25"
    },
    "last": {
      "href": "https://api.chatkitty.com/applications/1/users?page=2&size=25"
    }
  }, // Page metadata ...
}
Page Metadata 
Metadata about a page containing its size, total number of elements in the collection, the total number of pages in the collection, and the page number.
| Name | Type | Description | 
|---|---|---|
| size | Int | The number of elements in this page. | 
| number | Int | Optional: The zero-based index of this page. Present if known. | 
| totalElements | Long | Optional: The total number of elements in the collection. Present if known. | 
| totalPages | Int | Optional: The total number of pages in the collection. Present if known. | 
{
  // ... Embedded properties and page links,
  "page": {
    "size": 25,
    "totalElements": 50,
    "totalPages": 2,
    "number": 0
  }
}