Skip to content

pair_create

POST
/v1/pair
curl --request POST \
--url https://example.com/v1/pair \
--header 'Content-Type: application/json' \
--data '{ "scope": "view", "name": "example", "relay": true }'

Local only (unix socket or loopback bearer). Issues a one-time pairing code for handup pair. With relay: true, opens a fresh relay channel and returns a relay pairing link that carries the channel, the device’s relay credential, the daemon’s Noise public key, and the code.

Media typeapplication/json

Local-only: create a pairing request (body for POST /v1/pair).

object
scope
One of:
null
name

Device name; the pairing page may suggest one when empty.

string | null
relay

Pair through the end-to-end encrypted relay (remote.relay.url) instead of the remote listener.

boolean
Media typeapplication/json
object
code
required

One-time code (single use, expires after 2 minutes).

string
url
required

Pairing page URL; the code travels in the fragment so it never reaches server logs.

string
expires_at
required

Epoch milliseconds.

integer format: int64
scope
required
string
Allowed values: view decide submit
name
string | null
fingerprint

TLS leaf certificate SHA-256 fingerprint when the remote listener uses TLS.

string | null
mode
required
string
Example
{
"scope": "view"
}

Remote access (or the relay) is off or has no reachable base URL

The relay refused or could not be reached