> ## Documentation Index
> Fetch the complete documentation index at: https://docs.openhands.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Onboarding Status

> Return whether the current user must still complete onboarding.

Kept as a dedicated endpoint instead of riding on ``GET /api/v1/settings``
(the natural home for fields like ``email_verified``) because the settings
response is heavyweight: ``SaasSettingsStore.load`` joins User, Org, and
OrgMember rows and deep-merges the org-level and member-level
``agent_settings`` before returning. Onboarding gating runs on every
protected-route navigation, so we need a lightweight read of a single
boolean rather than paying for the full settings aggregation.



## OpenAPI

````yaml /openapi/openhands-cloud.json get /api/onboarding_status
openapi: 3.1.0
info:
  title: OpenHands
  description: 'OpenHands: Code Less, Make More'
  version: 0.0.1
servers: []
security: []
paths:
  /api/onboarding_status:
    get:
      summary: Onboarding Status
      description: >-
        Return whether the current user must still complete onboarding.


        Kept as a dedicated endpoint instead of riding on ``GET
        /api/v1/settings``

        (the natural home for fields like ``email_verified``) because the
        settings

        response is heavyweight: ``SaasSettingsStore.load`` joins User, Org, and

        OrgMember rows and deep-merges the org-level and member-level

        ``agent_settings`` before returning. Onboarding gating runs on every

        protected-route navigation, so we need a lightweight read of a single

        boolean rather than paying for the full settings aggregation.
      operationId: onboarding_status_api_onboarding_status_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}

````