---
title: "Installation"
description: "Drop-in installation with zero-config defaults – adds a KQL endpoint without affecting existing routes."
canonical_url: "https://kirby.tools/docs/headless/getting-started/installation"
---

# Installation

> Drop-in installation with zero-config defaults – adds a KQL endpoint without affecting existing routes.

## Install the Plugin

<card icon="i-ri-terminal-box-line" title="Composer">

The recommended way to install the plugin:

```bash
composer require johannschopplich/kirby-headless
```

</card>

<card icon="i-ri-folder-zip-line" title="ZIP File Download">

Download the <latest-version>



</latest-version>

 or head over to the [releases page](https://github.com/johannschopplich/kirby-headless/releases) to see all versions. Extract the ZIP file to your `site/plugins` folder.

</card>

## Default Behavior

The plugin works out of the box without additional configuration. By default:

- KQL endpoint available at `/api/kql`, protected by Kirby's native API authentication ([bearer token auth](/docs/headless/configuration/authentication) is opt-in)
- Existing routes and templates remain unaffected

<note>

Kirby Headless does not interfere with Kirby's default routing unless you enable global routes. Your existing templates and routes continue to work as expected.

</note>

## Configuration

Customize the plugin behavior with these options:

- [Authentication](/docs/headless/configuration/authentication) – Bearer token or basic auth
- [CORS](/docs/headless/configuration/cors) – Cross-origin request settings
- [Panel](/docs/headless/configuration/panel) – Preview URLs and redirects

---

Every page of this site as Markdown: <https://kirby.tools/sitemap.md>
