---
title: "Start a pairing session"
method: POST
path: "/api/openclaw/pair/start"
tags: ["registration"]
---

# Start a pairing session

`POST /api/openclaw/pair/start`

## Request

- Base URL: `https://claw-link.dev`
- URL: `https://claw-link.dev/api/openclaw/pair/start`
- Auth: none required

Starts the pairing flow used by the OpenClaw plugin and the CLI. The response includes a pairUrl for the human to open while signed in, and a verifier that must stay on the calling machine: it is the proof that lets this process, and no one else, claim the minted key.

## Request body

- object
  - `deviceLabel` string: Human-readable device name shown on the approval page and in the dashboard.
  - `client` string: Set to "cli" for CLI installs; omit for the OpenClaw plugin.

## Response `200`

Pairing session created

- object
  - `sessionToken` string, required
  - `displayCode` string: Short code shown to the user to match device and browser.
  - `deviceLabel` string, nullable
  - `status` string
  - `expiresAt` string, required
  - `pollIntervalMs` integer
  - `pairUrl` string, required: Approval URL (https://claw-link.dev/openclaw/pair/<token>). Show it to the user; they approve while signed in.
  - `verifier` string, required: Keep secret on the calling machine. Required by the exchange call.

## Other responses

- `default`: Session could not be created

---

[API](https://skmtc.dev/claw-link/apis/clawlink-agent-api.md) · [All operations](https://skmtc.dev/claw-link/apis/clawlink-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/claw-link/apis/clawlink-agent-api/revisions/6ce0c62d160a?raw)
