# Get the organization's Get Started onboarding status.

`GET https://api.suger.cloud/org/{orgId}/onboarding/status`

Returns the six-step Get Started checklist state (account, marketplace, crm, notification, readiness, goLive), derived live from the organization's actual configuration, plus per-check readiness detail with actionable reasons. Read-only. Use it to answer which onboarding step is incomplete and why. Distinct from VerifyIntegration, which actively re-verifies a single integration's credentials. Available for seller organizations; buyer, reseller and partner organizations receive 404.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `orgId` | path | string | yes | Organization ID |

## Responses

### 200 — Success

Content-Type: `application/json` · Schema: `OnboardingStatus`

**`OnboardingStatus`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `completedCount` | integer | no | Number of done steps (skipped steps never count). |
| `dismissed` | boolean | no | Org-scoped checklist dismissal (page stays reachable). |
| `skippedSteps` | array<string> | no | Raw persisted skip intent, verbatim. Distinct from step.state == "skipped": derived-done overrides skip for RENDERING, so a skipped step that later completes shows done while its intent stays here. To change it, send this list back — modified — to UpdateOnboardingInfo (PATCH /org/{orgId}/onboarding/info), whose skippedSteps is a full replacement array. Build that array from THIS list; rebuilding it from the visible step states silently erases intent hidden behind steps that have since completed. Never omitted (empty = []). |
| `steps` | array<OnboardingStep> | no |  |
| `totalCount` | integer | no |  |

**`OnboardingStep`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `checks` | array<OnboardingCheck> | no | Readiness detail rows; present on the readiness step only. |
| `key` | OnboardingStepKey | no |  |
| `state` | OnboardingStepState | no |  |

**`OnboardingCheck`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `blocking` | boolean | no | Blocking checks gate the readiness step; non-blocking rows are recommendations or informational. |
| `integrationId` | string | no | The marketplace integration this row belongs to (multi-integration orgs). |
| `key` | OnboardingCheckKey | no |  |
| `reason` | string | no | Machine-readable reason when not green (e.g. DATA_FEED_NOT_ENROLLED). |
| `state` | OnboardingCheckState | no |  |

### 404 — Organization not found, or not a seller organization

Content-Type: `application/json`

### 500 — Internal server error

Content-Type: `application/json`

## Example

_Generated from this operation's schema. Values are placeholders — substitute your own ids, and set `SUGER_TOKEN` to a bearer token from the [OAuth client-credentials exchange](https://doc.fours.com/settings/oauth-app/)._

### Request

```bash
curl -X GET 'https://api.suger.cloud/org/{orgId}/onboarding/status' \
  -H "Authorization: Bearer $SUGER_TOKEN"
```

### Response — 200

```json
{
  "completedCount": 1,
  "dismissed": true,
  "skippedSteps": [
    "string"
  ],
  "steps": [
    {
      "checks": [
        {
          "blocking": true,
          "integrationId": "01H0000000000000000000",
          "key": "cloudFormationStack",
          "reason": "string",
          "state": "green"
        }
      ],
      "key": "account",
      "state": "done"
    }
  ],
  "totalCount": 1
}
```

### Error — 404

```json
"string"
```

---

API reference: https://doc.fours.com/api/
