Skip to content

What Is KQL?

INFO

You may visit the KQL documentation for a comprehensive introduction.

Kirby's Query Language API combines the flexibility of Kirby's data structures, the power of GraphQL and the simplicity of REST.

The Kirby Query Language API takes POST requests with standard JSON objects and returns highly customized results that fit your application.

By default, the official KQL API endpoint is located at /api/query. An example request might look like this:

json
{
  "query": "page('photography').children",
  "select": {
    "url": true,
    "title": true,
    "text": "page.text.markdown",
    "images": {
      "query": "page.images",
      "select": {
        "url": true
      }
    }
  },
  "pagination": {
    "limit": 10
  }
}

Response:

json
{
  "code": 200,
  "status": "ok",
  "result": {
    "data": [
      {
        "url": "https://example.com/photography/trees",
        "title": "Trees",
        "text": "Lorem <strong>ipsum</strong> …",
        "images": [
          { "url": "https://example.com/media/pages/photography/trees/1353177920-1579007734/cheesy-autumn.jpg" },
          { "url": "https://example.com/media/pages/photography/trees/1940579124-1579007734/last-tree-standing.jpg" },
          { "url": "https://example.com/media/pages/photography/trees/3506294441-1579007734/monster-trees-in-the-fog.jpg" }
        ]
      },
      {
        "url": "https://example.com/photography/sky",
        "title": "Sky",
        "text": "<h1>Dolor sit amet</h1> …",
        "images": [
          { "url": "https://example.com/media/pages/photography/sky/183363500-1579007734/blood-moon.jpg" },
          { "url": "https://example.com/media/pages/photography/sky/3904851178-1579007734/coconut-milkyway.jpg" }
        ]
      }
    ],
    "pagination": {
      "page": 1,
      "pages": 1,
      "offset": 0,
      "limit": 10,
      "total": 2
    }
  }
}

TIP

Nuxt Kirby provides a custom API endpoint for KQL requests /api/kql that enables bearer token authentication. Check out the Authentication guide for more information.

Released under the MIT License.