Skip to content
cloudhostDocs
API reference

Onboarding

The first-run flow, the team's getting-started steps and each project's production checklist.

GET/v1/me/onboarding

The first-run flow#

The signed-in person's first-run flow: its steps in order with their status (done, skipped, todo; auto when real state ticked it), the next step, whether it is complete or should be shown, the facts behind it, the current team, and the MCP setup for AI tools.

Credential
A dashboard session only (API keys are refused)
Roles
Any role

Response

200Onboarding

  • stateobject

    what was saved (step, done, skipped, team_kind, plan, build, started_at, dismissed_at, completed_at, celebrated)

  • stepsobject[]
  • nextstring | null
  • completeboolean
  • showboolean
  • factsmap of boolean
  • teamobject
  • agentobject

    the MCP setup for AI tools, the key as a placeholder

Errors

StatusDescription
401unauthorized: missing, invalid, expired or revoked credential
403Not allowed: session_only
500internal: an unexpected failure

Example

curl "https://api.ibel.ai/v1/me/onboarding" \
  -H "Authorization: Bearer $SESSION"
PATCH/v1/me/onboarding

Save progress in the first-run flow#

Every field optional: step (where the person is), done and skipped (lists of steps), team_kind (personal or team), plan (hobby or pro, the choice; the plan itself changes with POST /v1/billing/plan), build (starter, upload, import, git, cli, later), dismissed, completed, restart (reopen it), celebrated (a project id whose first deploy was shown). Unknown fields are refused. Answers like GET. Needs a dashboard session.

Credential
A dashboard session only (API keys are refused)
Roles
Any role

Request bodyapplication/json

  • stepstring

    one of welcome, team, plan, build, cli, git, agent

  • donestring[]
  • skippedstring[]
  • team_kindstring

    one of personal, team

  • planstring

    one of hobby, pro

  • buildstring

    one of starter, upload, import, git, cli, later

  • dismissedboolean
  • completedboolean
  • restartboolean
  • celebratedstring (uuid)

Response

200Onboarding

  • stateobject

    what was saved (step, done, skipped, team_kind, plan, build, started_at, dismissed_at, completed_at, celebrated)

  • stepsobject[]
  • nextstring | null
  • completeboolean
  • showboolean
  • factsmap of boolean
  • teamobject
  • agentobject

    the MCP setup for AI tools, the key as a placeholder

Errors

StatusDescription
400Bad request: bad_request, bad_json
401unauthorized: missing, invalid, expired or revoked credential
403Not allowed: session_only
500internal: an unexpected failure

Example

curl -X PATCH "https://api.ibel.ai/v1/me/onboarding" \
  -H "Authorization: Bearer $SESSION" \
  -d '{"step":"welcome","done":["…"],"skipped":["…"],"team_kind":"personal","plan":"hobby","build":"starter","dismissed":true,"completed":true,"restart":true,"celebrated":"8c1e0c55-1f2a-4d3b-9e8f-0a1b2c3d4e5f"}'
GET/v1/team/getting-started

The team's getting-started steps#

The team's first steps, each ticked from real state: project, deploy, git, domain, invite (shared teams only), cli, agent; show is false once all are done or the person dismissed the card.

Credential
An API key or a dashboard session
Roles
Any role

Response

200GettingStarted

  • itemsobject[]
  • doneinteger
  • totalinteger
  • completeboolean
  • dismissedboolean
  • showboolean
  • first_liveobject | null

Errors

StatusDescription
401unauthorized: missing, invalid, expired or revoked credential
500internal: an unexpected failure

Example

curl "https://api.ibel.ai/v1/team/getting-started" \
  -H "Authorization: Bearer $KEY"
POST/v1/team/getting-started/dismiss

Hide the getting-started card#

For this person. Needs a dashboard session.

Credential
A dashboard session only (API keys are refused)
Roles
Any role

Response

200object

  • dismissedboolean

Errors

StatusDescription
401unauthorized: missing, invalid, expired or revoked credential
403Not allowed: session_only
500internal: an unexpected failure

Example

curl -X POST "https://api.ibel.ai/v1/team/getting-started/dismiss" \
  -H "Authorization: Bearer $SESSION"
DELETE/v1/team/getting-started/dismiss

Show the getting-started card again#

Needs a dashboard session.

Credential
A dashboard session only (API keys are refused)
Roles
Any role

Response

200object

  • dismissedboolean

Errors

StatusDescription
401unauthorized: missing, invalid, expired or revoked credential
403Not allowed: session_only
500internal: an unexpected failure

Example

curl -X DELETE "https://api.ibel.ai/v1/team/getting-started/dismiss" \
  -H "Authorization: Bearer $SESSION"
GET/v1/functions/{name}/checklist

The production checklist#

What is left before the project is ready for production, each item ticked from its real state: git (a connected repository or a git push), domain, preview (a branch deployment), env (environment variables), alert, analytics (web analytics on). dismissed marks what this person hid; complete is true when every item is done or hidden.

Credential
An API key or a dashboard session
Roles
Any role

Parameters

  • namestringpathrequired

    the function's or app's name

    pattern ^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$ · up to 63 characters

Response

200Checklist

  • projectobject
  • itemsobject[]
  • doneinteger
  • totalinteger
  • completeboolean
  • dismissedboolean

Errors

StatusDescription
401unauthorized: missing, invalid, expired or revoked credential
404Not found: not_found
500internal: an unexpected failure

Example

curl "https://api.ibel.ai/v1/functions/my-api/checklist" \
  -H "Authorization: Bearer $KEY"
POST/v1/functions/{name}/checklist/dismiss

Hide a checklist item, or the checklist#

Body {"item": "<key>"} hides one item; an empty body hides the whole card. For this person. Needs a dashboard session.

Credential
A dashboard session only (API keys are refused)
Roles
Any role

Parameters

  • namestringpathrequired

    the function's or app's name

    pattern ^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$ · up to 63 characters

Request bodyapplication/json

  • itemstring

    one of git, domain, preview, env, alert, analytics

Response

200Checklist

  • projectobject
  • itemsobject[]
  • doneinteger
  • totalinteger
  • completeboolean
  • dismissedboolean

Errors

StatusDescription
400Bad request: bad_item
401unauthorized: missing, invalid, expired or revoked credential
403Not allowed: session_only
404Not found: not_found
500internal: an unexpected failure

Example

curl -X POST "https://api.ibel.ai/v1/functions/my-api/checklist/dismiss" \
  -H "Authorization: Bearer $SESSION" \
  -d '{"item":"git"}'
DELETE/v1/functions/{name}/checklist/dismiss

Show the checklist again#

Shows the card and every item again; ?item= for one. Needs a dashboard session.

Credential
A dashboard session only (API keys are refused)
Roles
Any role

Parameters

  • namestringpathrequired

    the function's or app's name

    pattern ^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$ · up to 63 characters

  • itemstringquery

    one of card, git, domain, preview, env, alert, analytics

Response

200Checklist

  • projectobject
  • itemsobject[]
  • doneinteger
  • totalinteger
  • completeboolean
  • dismissedboolean

Errors

StatusDescription
400Bad request: bad_item
401unauthorized: missing, invalid, expired or revoked credential
403Not allowed: session_only
404Not found: not_found
500internal: an unexpected failure

Example

curl -X DELETE "https://api.ibel.ai/v1/functions/my-api/checklist/dismiss" \
  -H "Authorization: Bearer $SESSION"
GET/v1/apps/{name}/checklist

The production checklist#

What is left before the project is ready for production, each item ticked from its real state: git (a connected repository or a git push), domain, preview (a branch deployment), env (environment variables), alert, analytics (web analytics on). dismissed marks what this person hid; complete is true when every item is done or hidden.

Credential
An API key or a dashboard session
Roles
Any role

Parameters

  • namestringpathrequired

    the function's or app's name

    pattern ^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$ · up to 63 characters

Response

200Checklist

  • projectobject
  • itemsobject[]
  • doneinteger
  • totalinteger
  • completeboolean
  • dismissedboolean

Errors

StatusDescription
401unauthorized: missing, invalid, expired or revoked credential
404Not found: not_found
500internal: an unexpected failure

Example

curl "https://api.ibel.ai/v1/apps/my-api/checklist" \
  -H "Authorization: Bearer $KEY"
POST/v1/apps/{name}/checklist/dismiss

Hide a checklist item, or the checklist#

Body {"item": "<key>"} hides one item; an empty body hides the whole card. For this person. Needs a dashboard session.

Credential
A dashboard session only (API keys are refused)
Roles
Any role

Parameters

  • namestringpathrequired

    the function's or app's name

    pattern ^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$ · up to 63 characters

Request bodyapplication/json

  • itemstring

    one of git, domain, preview, env, alert, analytics

Response

200Checklist

  • projectobject
  • itemsobject[]
  • doneinteger
  • totalinteger
  • completeboolean
  • dismissedboolean

Errors

StatusDescription
400Bad request: bad_item
401unauthorized: missing, invalid, expired or revoked credential
403Not allowed: session_only
404Not found: not_found
500internal: an unexpected failure

Example

curl -X POST "https://api.ibel.ai/v1/apps/my-api/checklist/dismiss" \
  -H "Authorization: Bearer $SESSION" \
  -d '{"item":"git"}'
DELETE/v1/apps/{name}/checklist/dismiss

Show the checklist again#

Shows the card and every item again; ?item= for one. Needs a dashboard session.

Credential
A dashboard session only (API keys are refused)
Roles
Any role

Parameters

  • namestringpathrequired

    the function's or app's name

    pattern ^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$ · up to 63 characters

  • itemstringquery

    one of card, git, domain, preview, env, alert, analytics

Response

200Checklist

  • projectobject
  • itemsobject[]
  • doneinteger
  • totalinteger
  • completeboolean
  • dismissedboolean

Errors

StatusDescription
400Bad request: bad_item
401unauthorized: missing, invalid, expired or revoked credential
403Not allowed: session_only
404Not found: not_found
500internal: an unexpected failure

Example

curl -X DELETE "https://api.ibel.ai/v1/apps/my-api/checklist/dismiss" \
  -H "Authorization: Bearer $SESSION"