Initiate an outbound handshake
POST /admin/federation/peers/initiate
Admin “Pair by URL” entry. Creates a local pending_outbound row + sends a signed offer envelope to the peer. Idempotent on instance_url.
Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ”object
Peer’s instance URL (https, no path, no trailing slash).
Optional; defaults to the URL host. Operator can rename later from the peer detail page.
Responses
Section titled “ Responses ”Local pending_outbound row created (offer POST may have failed; check notes).
One row from the federation_peers registry (Phase 1.22.B-a + ADR 0043 §“Trust model”). Pairing alone shares no content — see federation_shares (1.22.C) for the access-control layer.
object
Https://peer.example (no trailing slash, no path)
PEM-wrapped Ed25519 public key (RFC 8410). May be the
placeholder string PENDING-HANDSHAKE-RESPONSE while
status is pending_outbound — the peer’s real key
replaces it when the confirm envelope arrives.
Handshake state machine (migration 00052 + v1.md §11). Outbound delivery (1.22.D) gates on connected only.
Per-peer opt-in for peer-of-peer discovery (Phase 1.22.B-d). When true, this peer appears in GET /federation/peers/visible — other peers can then surface it as a discovery suggestion. Default false; explicit opt-in.
Malformed request
object
Human-readable error summary
Example
the request could not be completedAuthentication required, missing, or invalid
object
Human-readable error summary
Example
the request could not be completedExample
{ "error": "authentication required: sign in and retry with a valid session or API token"}Authenticated but missing required capabilities
object
Human-readable error summary
Example
the request could not be completed