Update Setup Progress
Records where your active account stands in the Create account wizard: the step it resumes at, the "What will you run?" answer, and whether the setup is finished. The dashboard's wizard calls it after every step; use it when you drive the setup yourself.
Only an account with a setup has one to record: one created with onboarding: true (see Create Account), or your own account, which starts its setup when you sign up. Requires the settings:update permission.
Request body
Send at least one field.
step string
The step to resume at:
account (step 1 of your own account, the one made when you signed up), plan, billing, payment, review, team or start.use_case string
tunnels, apps, edge or unsure. It orders the Getting started card on the account's dashboard.completed bool
true finishes the setup: the dashboard stops opening the wizard. A second call keeps the first finish time.Response (200 OK)
The profile, the same object as GET /account/profile. Repeating a save that changes nothing also answers 200.
Errors
400 Bad Request
The body couldn't be parsed or had unknown fields, it had none of the three fields (
"Nothing to update"), or step / use_case wasn't one of the values above: {"error", "field"} with field set to step or use_case.401 Unauthorized
Missing or invalid auth.
403 Forbidden
No active account selected, you lack the
settings:update permission, or the account is suspended (code account_suspended).409 Conflict
"This account has no onboarding to record": the account never had a setup (it was created before the wizard existed, or without onboarding: true).Request
curl -X PUT "https://api.ngris.com/v1/account/onboarding" \
-H "X-API-KEY: <your_api_key>" \
-H "Content-Type: application/json" \
-d '{"use_case": "apps", "completed": true}'
Python
from ngris import Ngris
client = Ngris(api_key="<your_api_key>")
profile = client._put_raw("/account/onboarding", {"use_case": "apps", "completed": True})
Response — 200 OK
{
"entity_type": "individual",
"company": {
"legal_name": "",
"website": "",
"size": "",
"industry": "",
"country": ""
},
"onboarding": {
"step": "start",
"use_case": "apps",
"completed_at": "2026-10-15T10:12:58Z",
"pending": false
},
"viewer_can_finish": true
}