---
title: "List Health Providers"
method: GET
path: "/health-providers"
tags: ["health-providers"]
---

# List Health Providers

`GET /health-providers`

List all health provider connections for the current user.

Returns an empty list when the caller holds an authenticated Firebase
token but no domain User has been created yet (anonymous onboarding,
pre-Terra-auth). This avoids a noisy 403 on the welcome screen.

## Response `200`

Successful Response

- HealthProviderListResponse — Response with list of user's health provider connections.
  - `connections` HealthProviderConnectionResponse[], required
    - `id` string, required
    - `provider` 'garmin' | 'whoop' | 'coros' | 'terra' | 'apple_health', required — Health data providers (OAuth connections).
    - `provider_user_id` string, required
    - `brand` string, nullable
    - `permissions` string[], required
    - `status` 'active' | 'expired' | 'revoked' | 'error', required — Status of a health provider connection.
    - `last_sync_at` string, date-time, nullable
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required

---

[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/55d56c4beab4/schema)
