Skip to main content
Connect the devices and services you already use to bring records into Ritual automatically. Start with one source, check its sync status, and review the resulting data in Logs.

Choose a source

Fitbit connection is not enabled in the current build. The provider matrix below lists availability, authentication, and sync behavior for each source. For app and website usage on your Mac, see Computer activity.

Connection and sync details

Wearable connections share a common API at /api/wearables, with normalized samples, events, and sync history. Financial connections use /api/financial and project daily spending totals into a managed Spending habit. The reference below describes these APIs and provider-specific behavior.

Unified wearables API

Core endpoints

OAuth, callback, and webhook endpoints

Canonical model

When a canonical sample or event matches a habit with the same integration_source and metric_type, Ritual automatically projects it into habit_logs and forwards the compatible record to Tinybird when enabled.

Provider matrix


Plaid (bank connections for spending tracking)

Plaid is the first financial integration in Ritual. It is used to help users track spending behavior, not to provide a full banking or budgeting product. In the current build, Ritual:
  • creates a Plaid Link token on the backend
  • exchanges the public token for an access token server-side
  • stores financial connections, accounts, and normalized transactions
  • backfills available transaction history
  • computes one positive daily spending total per day
  • projects that total into a managed Spending habit

Financial integration API

Current spending rules

Plaid-backed spending is intentionally narrow in scope. In the current build, Ritual counts:
  • posted outflows on depository accounts
  • positive daily spending totals only
And excludes:
  • pending transactions
  • transfers
  • loan-like and credit-card payment transactions
  • non-depository accounts from the daily spending rollup
This means the integration is optimized for tracking daily spending behavior inside Ritual rather than reproducing a full transaction ledger.

Current connect and sync behavior

Data Ritual stores from Plaid

Ritual stores:
  • connection status and institution metadata
  • account metadata such as name, mask, type, and subtype
  • normalized transactions including date, amount, merchant/transaction name, direction, pending state, and provider category/code metadata
  • derived daily spending habit logs and sync metadata
Plaid access tokens remain server-side. The product purpose for this data is to support spending-tracking features selected by the user.

Current scope and limitations

The current Plaid integration should be documented as:
  • Plaid-only financial connectivity
  • spending tracking, not budgeting or accounting
  • daily rollups into a Spending habit
  • best suited for supported Plaid institutions and available transaction history
If the production Plaid rollout is still pending approval, present this section as beta or coming soon rather than as a generally available banking feature.

Apple Health (HealthKit via iOS Companion)

Apple Health uses the Ritual iOS companion app, not OAuth. The device registers once, stores a device secret in Keychain, and signs every ingest request with HMAC-SHA256. The backend enforces idempotency with client_event_id.

Apple Health endpoints

Incremental sync behavior

/api/wearables/apple/ingest/v2 is the current path for HealthKit sync. The client sends:

Apple Health metric mapping

The iOS app syncs provider metric types such as steps, hr, hrv, sleep_session, and workout. Ritual stores provider-neutral canonical names where possible.

Whoop

Whoop is connected through the unified wearables connection flow, but the actual sync still uses the provider-specific Whoop service under the hood.

OAuth scopes

offline read:recovery read:sleep read:workout read:cycles read:profile

Whoop endpoints Ritual calls

Whoop sync behavior

Canonical Whoop data Ritual stores


Oura Ring

Oura is now part of the unified cloud wearable flow. Ritual exchanges OAuth tokens, refreshes them automatically, fetches recent collections, and normalizes the results into shared samples and events.

OAuth scopes

email personal daily heartrate session workout tag

Oura endpoints Ritual calls

Oura sync behavior

Canonical Oura data Ritual stores


Garmin

Garmin is connected through unified OAuth plus a webhook ingest path. The manual sync endpoint is mainly an account refresh step that loads the provider user id and permissions; actual activity data is expected to arrive through Garmin webhooks.

OAuth and webhook flow

If GARMIN_WEBHOOK_SECRET is configured, the webhook requires the x-garmin-webhook-secret header.

Canonical Garmin data Ritual stores


Tesla

Tesla is connected through OAuth via the Tesla Fleet API. Ritual tracks odometer readings and calculates daily miles driven, projecting them into a managed habit.

Tesla integration API

What Ritual tracks from Tesla

Tesla sync behavior


Desktop context

Ritual Watcher and Ritual Recorder are separate from the unified wearables API. They are first-party desktop context features, not third-party integrations. For detailed docs on computer tracking, OCR capture, memory indexing, and hybrid search, see Context Understanding.

Weather

Weather context is also outside the unified wearables API. Ritual attaches local conditions and temperature context to logs automatically where location support is available.

Not yet enabled