Skip to content

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.

Terminal window
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_denied
export TOKEN=hyc0_
# 2. A project, asleep
curl -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 probe
curl -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 proxy
curl -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.