> Documentation index: https://api.hlplanet.com/llms.txt. Every page is also available as Markdown by adding .md to its URL.

# Compare keyboards

`GET /v1/compare` puts two to six sizes or measured keyboards side by side. The first item is the reference; every other item reports its difference from it.

## Query parameters

| Parameter | Example | Meaning |
|---|---|---|
| `items` | `tkl,75,wooting-80he` | Required. 2 to 6 comma-separated size ids or keyboard ids |
| `iso` | `true` | Use the ISO layout (UK/EU: tall Enter, extra key next to left Shift). Default ANSI |

Negative `width_diff_mm` means the item is narrower than the reference, which leaves that much more room for the mouse. `missing_keys` are keys the reference has and the item lacks; they are usually on an Fn layer.

## Example

```bash
curl "https://api.hlplanet.com/v1/compare?items=tkl,75"
```

```json
{
  "layout": "ANSI",
  "reference": {
    "kind": "size",
    "id": "tkl",
    "name": "TKL (tenkeyless) (80%)",
    "size": "80%",
    "keys": 87,
    "width_mm": 368.6,
    "depth_mm": 144.8,
    "measured": false
  },
  "items": [
    {
      "kind": "size",
      "id": "75",
      "name": "75%",
      "size": "75%",
      "keys": 84,
      "width_mm": 325.8,
      "depth_mm": 140,
      "measured": false,
      "width_diff_mm": -42.9,
      "depth_diff_mm": -4.8,
      "missing_keys": {
        "summary": "System: Scroll Lock, Pause/Break; Right Windows key, Menu key",
        "count": 4,
        "codes": [
          "ScrollLock",
          "Pause",
          "MetaRight",
          "ContextMenu"
        ]
      },
      "extra_keys": {
        "summary": "Fn",
        "count": 1,
        "codes": [
          "Fn"
        ]
      }
    }
  ],
  "compare_url": "https://www.hlplanet.com/keyboard-layout/?compare=tkl,75,ref-tkl",
  "notes": "Negative width_diff_mm means narrower than the reference. Missing keys are usually reached through an Fn layer."
}
```
