Quickstart: curl
Everything is JSON over HTTPS except the data plane, which is Native’s own binary envelope. Two bearers: the session (hyc0_…) for the control plane and a project key (hyp1_…) for the data plane.
ORIGIN=https://infra-hyphae.run
# 1. Account and session (24 h)curl -s -X POST $ORIGIN/v0/signup -H 'Content-Type: application/json' \ -d '{"email":"[email protected]","password":"at least 8 characters","invite_code":"'"$INVITE_CODE"'"}'# → {"user_id":"usr_…","token":"hyc0_…","issued_at":"…","expires_at":"…"}# without a valid invite_code on the hosted deployment: 403 authorization_deniedexport TOKEN=hyc0_…
# 2. A project, asleepcurl -s -X POST $ORIGIN/v0/projects -H "Authorization: Bearer $TOKEN" \ -H 'Content-Type: application/json' -d '{"name":"demo"}'# → {"id":"prj_…","state":"stopped",…}export PRJ=prj_…
# 3. Wake the engine; head becomes a live probecurl -s -X POST $ORIGIN/v0/projects/$PRJ/wakeup -H "Authorization: Bearer $TOKEN"curl -s $ORIGIN/v0/projects/$PRJ/head -H "Authorization: Bearer $TOKEN"
# 4. A project key (the secret appears exactly once)curl -s -X POST $ORIGIN/v0/projects/$PRJ/keys -H "Authorization: Bearer $TOKEN" \ -H 'Content-Type: application/json' -d '{"label":"app"}'export KEY=hyp1_…
# 5. The data plane: Native's /v2, verbatim, through the proxycurl -s $ORIGIN/v2/capabilities -H "Authorization: Bearer $KEY" \ -H 'X-Hyphae-Protocol-Minor: 3' --output capabilities.hyprsp01# The body is application/vnd.hyphae.product-v1 (HYPRSP01); decode it with hcloud or the SDK.Errors are always {"error":{"code":"…","message":"…"}} with one of the 16 error codes. Every write on the control plane produces a receipt on the server (project, actor, action, time, hash of the input).
All routes, with request and response schemas: HTTP API reference.