# Setting up data destinations

## Overview

Terra’s Health & Fitness API is **event-based;** meaning it pushes all user health payloads via **events** directly to your **data** **destination** and removes the need to request data via the API.

Therefore, setting up data destinations is a core step in your integration process.

Terra API provides many options for **data destinations** such as webhooks, SQL databases, Supabase, and buckets.

In this section, you'll learn how to set up your preferred destination in your Terra Dashboard.

***

## **Set up Data Destination**

* Head to [your Terra Dashboard > Connections page](https://dashboard.tryterra.co/dashboard/connections).
* Click on "Add New", and select from 10 data destinations: Webhook, Database, Bucket and other.
* Add the necessary details and click on "Apply".

{% hint style="info" %}
**You don't have a data destination yet?**

No worries! If you are just starting off building your product and want to test how Terra works, you can use [https://webhook.site](https://webhook.site/#!/) to set up a temporary destination for Webhooks.

For further information about each destination, please see [Destinations](/reference/health-and-fitness-api/destinations.md) in the Reference page.
{% endhint %}

***

## IP Whitelisting

Terra sends data to your destinations from a fixed set of IP addresses. If your infrastructure uses a firewall or IP access list, add the following IPs to ensure Terra can reach your destination:

* **18.133.218.210**
* **18.169.82.189**
* **18.132.162.19**
* **18.130.218.186**
* **13.43.183.154**
* **3.11.208.36**
* **35.214.201.105**
* **35.214.230.71**
* **35.214.252.53**

{% hint style="warning" %}
These IPs apply to **all** data destinations — webhooks, databases, queues, and storage buckets. Ensure they are whitelisted wherever you accept connections from Terra.
{% endhint %}

***

## Destination-specific steps

Terra API supports various data destinations, some require additional steps to setup correctly. Click each for further information and detailed setup instructions:

[**Webhooks**](/health-and-fitness-api/integration-setup/setting-up-data-destinations/webhooks.md)

* The most basic destination. Terra makes a POST request to your specified URL with new data events.

[**SQL database (Postgres, MySQL)**](/health-and-fitness-api/integration-setup/setting-up-data-destinations/sql-database-postgres-mysql.md)

* Store structured data directly into your PostgreSQL or MySQL databases. Terra manages table creation and inserts download links for full payloads.

[**Supabase**](/health-and-fitness-api/integration-setup/setting-up-data-destinations/supabase.md)

* Combines Postgres tables and S3-compatible storage in one platform. Terra provisions everything automatically via OAuth.

[**Cloud Storage (AWS S3, GCS, Azure Blob)**](/health-and-fitness-api/integration-setup/setting-up-data-destinations/cloud-storage-s3-gcp.md)

* Dump raw data payloads directly into your preferred cloud storage bucket. Suitable for archival, batch processing, or data lake strategies.

[**Queuing services (AWS SQS, Kafka)**](/health-and-fitness-api/integration-setup/setting-up-data-destinations/queuing-services-sqs-kafka.md)

* Integrate with managed message queues for resilient, scalable, and asynchronous data ingestion.

[**MongoDB**](/health-and-fitness-api/integration-setup/setting-up-data-destinations/mongodb.md)

* Store full data payloads directly in your MongoDB collections with automatic indexing.

[**Firestore**](/health-and-fitness-api/integration-setup/setting-up-data-destinations/firestore.md)

* Store full data payloads as documents in your Google Cloud Firestore database.


---

# 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/setting-up-data-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.
