Every response follows the same JSON:API structure:
meta.baseurl is the base URL for relative public file and preview paths.data contains one pages resource or a collection of page resources.links contains URLs supplied by the server. Collection responses provide pagination links.relationships references navigation resources requested through include.included contains those related resources as a flat list.
A shortened collection response looks like this:
{
"meta": {
"baseurl": "https://cdn.example.com/",
"page": {
"currentPage": 1,
"lastPage": 1,
"perPage": 15,
"total": 1
}
},
"jsonapi": {"version": "1.0"},
"links": {
"first": "https://example.com/cms/pages?page%5Bnumber%5D=1&page%5Bsize%5D=15",
"last": "https://example.com/cms/pages?page%5Bnumber%5D=1&page%5Bsize%5D=15"
},
"data": [
{
"type": "pages",
"id": "0198a4b2-3c5e-7f1a-8d2b-e4f6a8c0d2e4",
"attributes": {
"lang": "en",
"path": "",
"name": "Home",
"title": "My website",
"has": 6
}
}
]
}
has is the number of descendants in the page tree, not a boolean and not the number of resources returned by the current request.