Overview
Rift Studio exposes two main API surfaces:
- Public HTTPS endpoints — under `/api/*` for licensing, version checks, telemetry, and website account flows
- Lua scripting APIs — inside the DAW for custom automation, MIDI generation, and utility actions
Public HTTPS API
These endpoints are served from the same origin as the website. Responses are JSON unless otherwise noted.
- GET /api/version-check?version=0.0.0 — Returns the current public version, release channel, download URL, and whether an update is available. Legacy clients may also send `v=`.
- GET /api/time — Returns server time and Unix epoch for clock-sync and diagnostics.
- POST /api/telemetry — Accepts batched telemetry events from Rift Studio builds. Payloads are rate-limited.
Entitlement API
These endpoints are used by release builds of Rift Studio to activate and refresh license entitlements.
- POST /api/entitlements/activate —
- POST /api/entitlements/refresh —
- POST /api/entitlements/deactivate —
- POST /api/entitlements/heartbeat —
Activation request fields: - key — License key string - product — Product code, for example `RIFTSTUDIO_DAW_PRODUCER` - edition — Human-readable edition name - machineId — Stable machine fingerprint used for seat assignment
Activation/refresh response fields include: - productCode - edition - seatPolicy - featureFlags - cloudPlan - creditBalance - activationId - signature — RSA signature over the entitlement payload
Website Account API
The website account system uses same-origin endpoints for:
- POST /api/auth/signup —
- POST /api/auth/login —
- POST /api/auth/logout —
- GET /api/auth/me —
- POST /api/auth/send-verification —
- GET /api/auth/verify-email —
- POST /api/auth/forgot-password —
- POST /api/auth/reset-password —
- GET /api/account/licenses —
- GET /api/account/orders —
- PATCH /api/account/profile —
These routes are intended for the Rift Studio website and account panel. They enforce browser-origin checks and are not a public third-party integration API.
Lua Scripting API
The scripting engine exposes DAW control from Lua-compatible scripts.
setMixerLevel(0, -6) -- Set track 0 to -6 dB
playNote(60, 100) -- Trigger MIDI note 60 at velocity 100
setTempo(140) -- Set session tempo
createTrack() -- Create a new trackCommon callbacks: - onNote(note, velocity, channel) - onBeat(beat) - onBar(bar) - onTransport(playing)
Notes
- Authentication/account routes are rate-limited and same-origin protected. - License entitlements are signed on the server and verified in release builds. - Payment checkout is currently disabled on the public site, so billing endpoints are not part of the active public flow.