---
title: "Pair Device"
method: POST
path: "/api/auth/pair-device"
tags: ["auth"]
---

# Pair Device

`POST /api/auth/pair-device`

## Request

- Base URL: `https://app.ctlsurf.com` (the document declares no server; this is the origin it was published from)
- URL: `https://app.ctlsurf.com/api/auth/pair-device`
- Auth: HTTP bearer

Issue an API key for a desktop app that redirected the user here.

The desktop app starts a localhost HTTP server, then opens the browser to
ctlsurf's /pair-device page. After the user approves, the frontend POSTs
here and redirects the browser to redirect_uri?key=...

kind="sidekick" mints a first-party app key (cak_): one credential that does
notebook/MCP access AND the managed Supporting Services (transcription + LLM),
bound to the user's Business org. Any other kind mints a regular cpk_ MCP key.

## Request body

- PairDeviceRequest
  - `name` string, required
  - `redirect_uri` string, required
  - `kind` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/ctlsurf/apis/notebook-control-plane.md) · [All operations](https://skmtc.dev/ctlsurf/apis/notebook-control-plane/llms.txt) · [OpenAPI document](https://skmtc.dev/ctlsurf/apis/notebook-control-plane/revisions/ddfbbe20d5ce?raw)
