control plane
Humans use a session JWT or user token (with a grant). Daemons use a realm token (cliq_dt_…).
Interactive OpenAPI on this site: Hub API (public /v1). Tenancy provisioning stays on private Hub /internal routes (BFF only — not published here).

Auth

User JWTs / user tokens are rejected for daemon enroll / poll. Grants: Auth.

Realms & tokens

Realm CRUD, members, invites, team list, agents, and A2A are under /v1/realms/* — see Realms and the Hub API tab groups (Realm teams, Realm agents, Realm A2A, Public A2A).
Or: cliq realm token <realm_id> laptop. Plaintext token returned once. Revoke via /auth/revoke_token with type: "realm". Public invoke (host root, not /v1): GET /a2a/r/{slug}/.well-known/agent-card.json, POST /a2a/r/{slug}/send.

Daemon enroll

POST /daemons/get (user credential) returns daemons in your realm intersection — same data as CliqHub Daemons.

Dispatch

Exactly one of daemon_ids or realm_id for install. Realm run (Hub UI):
Pin to one daemon: POST /dispatch/run with daemon_id + workspace_id + team_id.
Enqueue is a write on dispatch / runs. Daemon claims via offer, then Hub calls local /v1/execute. See Concepts.

Internal vs public