> For the complete documentation index, see [llms.txt](https://docs.upriverdata.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.upriverdata.com/integrations/monte-carlo.md).

# Monte Carlo

Monte Carlo is a data observability platform that monitors warehouses and pipelines and posts alerts when data quality issues appear.

Connecting Monte Carlo to Upriver lets Upriver look up incident metadata (title, status, severity, and primary table) when a Monte Carlo alert arrives. Alerts themselves are ingested from the [Slack](/integrations/slack.md) and [Microsoft Teams](/integrations/microsoft-teams.md) channels you already monitor.

***

## What Upriver needs

Upriver uses one Monte Carlo **account-level API key** (an account service key) with read-only access. Creating account-level keys is governed by role permissions in Monte Carlo — granted to **Account Owners** by default, and to custom roles that allow it.

Paste these values into Upriver under **Settings → Integrations → Monte Carlo**:

| Field      | Required | Description                                                      |
| ---------- | -------- | ---------------------------------------------------------------- |
| **Key ID** | Yes      | The Key ID shown when the key is created (sent as `x-mcd-id`)    |
| **Secret** | Yes      | The Secret shown when the key is created (sent as `x-mcd-token`) |

You can connect one Monte Carlo integration per Upriver account. Upriver does not return the secret after you save; rotate it by updating the integration.

***

## How to generate the API key

Follow Monte Carlo’s [API authentication](https://docs.getmontecarlo.com/docs/api-authentication) guide:

1. Log in to Monte Carlo and open the **API settings** page on your dashboard.
2. Click **Add**.
3. Choose an **account-level (service) key** — not a personal key, which is tied to an individual user — and set an expiration period.
4. Give the key a description that identifies it, for example `Upriver`.
5. Scope the key to read-only permissions. Monte Carlo’s built-in **Viewers (All)** [authorization group](https://docs.getmontecarlo.com/docs/managing-authorization-groups) is enough for Upriver; it never writes to Monte Carlo.
6. Copy the **Key ID** and **Secret**.

{% hint style="warning" %}
Monte Carlo shows the Secret only once. Store it securely — you cannot retrieve it later.
{% endhint %}

{% hint style="info" %}
If you set an expiration period, the integration stops working when the key expires. Create a new key and update the Upriver integration before that date.
{% endhint %}

***

## Connect in Upriver

1. In Upriver, go to **Settings → Integrations**.
2. Add **Monte Carlo**.
3. Enter the **Key ID** and **Secret** you copied from Monte Carlo.
4. Save the integration.
