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

# Connect a Device Provider

> Garmin、Oura、WHOOP の認証情報とコールバックを設定します。

対象 mirobody
`1.5.10`
· 元ファイル
[`docs/site/provider-setup.md`](https://github.com/thetahealth/mirobody/blob/b37cd7b24af5251a4364aab30905a7497fc69dcb/docs/site/provider-setup.md)

> [!NOTE]
>
> このページの日本語版はまだありません。以下は英語の原文です。

Mirobody includes Garmin, Oura and WHOOP integrations. Each deployment needs
its own credentials from the vendor's developer program.
Apple Health uses a separate [import and client-push workflow](https://docs.mirobody.ai/ja/providers/apple-health.md).

## Prepare the connection

1. Register your application with the vendor.
2. Configure a public HTTPS callback on your deployment.
3. Put credentials in the active configuration overlay, not the shipped defaults.
4. Apply the configuration and authorize the account in the web client.

The callback format is:

```text theme={null}
https://your-host/api/v1/pulse/theta/<provider_slug>/callback
```

| Vendor | Provider slug | Credential keys |
| - | - | - |
| Oura | `theta_oura` | `OURA_CLIENT_ID`, `OURA_CLIENT_SECRET`, `OURA_REDIRECT_URL` |
| WHOOP | `theta_whoop` | `WHOOP_CLIENT_ID`, `WHOOP_CLIENT_SECRET`, `WHOOP_REDIRECT_URL` |
| Garmin | `theta_garmin` | `GARMIN_CLIENT_ID`, `GARMIN_CLIENT_SECRET`, `GARMIN_REDIRECT_URL` |

The redirect URL in vendor registration must match the configured URL exactly.
Oura and WHOOP use OAuth 2.0; the shipped Garmin connection uses OAuth 1.0a.

## Example configuration

```yaml theme={null}
OURA_CLIENT_ID: your-client-id
OURA_CLIENT_SECRET: your-client-secret
OURA_REDIRECT_URL: https://your-host/api/v1/pulse/theta/theta_oura/callback
```

For Docker, save this in the mounted overlay selected by `ENV` and
`MIROBODY_CONFIG_FILE`. Editing a checkout's `config.devices.yaml` does not
change the copy inside an existing image. See
[Configuration](https://docs.mirobody.ai/en/configuration.md).

## Check synchronization

Apply changes with `docker compose up -d`, then inspect the app and worker logs:

```bash theme={null}
docker compose logs --tail 80 mirobody mirobody_worker
```

A provider with missing credentials is skipped. If authorization fails, check
the callback URL and credentials. If connected data does not arrive, check
worker status and the database connection.
The [full setup reference](https://github.com/thetahealth/mirobody/blob/b37cd7b24af5251a4364aab30905a7497fc69dcb/docs/provider-setup.md) includes developer portals,
optional endpoints and vendor-specific details.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.