# Understanding sources and destinations

To integrate with Terra, you must define **Data Sources** where user data originates (e.g. Fitbit, Garmin, etc.) and **Data Destinations** where Terra sends this data (e.g. Webhook, MongoDB, etc.)

Once that is done, Terra’s Health & Fitness API pushes all user health payloads via **events** directly to your **data** **destination** (e.g. webhook). This removes the need to request data via the API.

## Data sources

Data Sources are the external health and fitness platforms your users authorize to share data with Terra. These include wearables (e.g., Fitbit, Garmin, Oura), fitness applications, and medical devices. Terra standardises data from these diverse sources into a uniform format.

Refer to [**Setting up data sources**](/health-and-fitness-api/integration-setup/setting-up-data-sources.md) for setup instructions.

## Data Destinations

Data Destinations specify where Terra should deliver processed user data. Supported destinations include Webhooks, SQL databases (PostgreSQL, MySQL), cloud storage (AWS S3, GCP GCS, Azure Blob), and message queuing services (AWS SQS, Kafka).

Refer to [**Setting up data destinations**](/health-and-fitness-api/integration-setup/setting-up-data-destinations.md) for setup instructions.

## Automatic data delivery

Terra's Health & Fitness API operates on an event-driven model. Once Data Sources are enabled, a Data Destination is configured, and a user successfully authenticates:

1. New data becomes available from the user's connected Data Source.
2. Terra retrieves and processes this data, creating a standardised event payload.
3. This payload is **automatically pushed** to your configured Data Destination.

This automatic push mechanism means you receive new data as it becomes available, without needing to poll the API. For example, if using a Webhook destination, Terra will send an HTTP POST request to your server with the new data payload.

## Summary of steps

The typical process for setting up your integrations involves:

1. Add data [**sources**](/reference/health-and-fitness-api/core-concepts.md#source-provider-integration) with one click (e.g. Fitbit, Oura, Garmin)
2. Add a data [**destination**](/reference/health-and-fitness-api/core-concepts.md#destinations) of choice (e.g. Webhook, MongoDB, PostgreSQL, AWS S3, etc.)

{% @storylane/embed subdomain="app" url="<https://app.storylane.io/share/8qriif1vn3mf>" linkValue="8qriif1vn3mf" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.tryterra.co/health-and-fitness-api/integration-setup/understanding-sources-and-destinations.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
