---
title: "Get Onboarding Insights"
method: GET
path: "/onboarding/{provider}/insights"
tags: ["health-providers"]
---

# Get Onboarding Insights

`GET /onboarding/{provider}/insights`

Seven onboarding insight cards for the teaser animation.

Mirrors the cards the mobile HealthKit teaser extracts locally for Apple
Health users, but computed server-side from the provider the user just
connected. Kinds with no supporting data are omitted.

``provider`` is the brand the mobile client just connected: ``garmin``
(direct OAuth), ``apple_health``, or any Terra-backed wearable (``coros``,
``whoop``, …). The factory's brand scope is the gatekeeper — passing a
brand the user isn't connected to returns 422 — and it is what keeps the
read deduped against the user's *other* links (#1693).

## Path parameters

- `provider` string, required

## Query parameters

- `user_id` string, nullable

## Response `200`

Successful Response

- OnboardingInsightsResponse — Response for GET /onboarding/{provider}/insights.
  - `insights` OnboardingInsight[], required
    - `kind` 'hrv' | 'sleep' | 'sleep_worst_night' | 'steps' | 'workouts' | 'resting_heart_rate' | 'active_energy', required
    - `sentiment` 'positive' | 'caution' | 'urgent' | 'neutral', required
    - `value_ms` integer, nullable
    - `avg_hours` number, nullable
    - `hours` number, nullable
    - `date` string, nullable
    - `avg` integer, nullable
    - `count` integer, nullable
    - `bpm` integer, nullable
    - `avg_kcal` integer, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/imperfect/apis/imperfect-api.md) · [All operations](https://skmtc.dev/imperfect/apis/imperfect-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/imperfect/imperfect-api/revisions/cc2293a44257/schema)
