# Regions

Maple runs in a US region and an EU region. The hosts for the app, ingest, API and MCP server in each, how to find your organization's region, and how to point SDKs and tools at it.

Each region is a separate instance with its own dashboard, ingest endpoint, API, database and storage. The EU region runs in Frankfurt. An organization's telemetry is stored and processed only in its region, and nothing is copied between them.

## Hosts

|               | United States                   | European Union (Frankfurt)         |
| ------------- | ------------------------------- | ---------------------------------- |
| Dashboard     | `https://app.maple.dev`         | `https://app.eu.maple.dev`         |
| Ingest (OTLP) | `https://ingest.maple.dev`      | `https://ingest.eu.maple.dev`      |
| REST API      | `https://api.maple.dev/v2`      | `https://api.eu.maple.dev/v2`      |
| MCP server    | `https://api.maple.dev/mcp`     | `https://api.eu.maple.dev/mcp`     |
| API docs      | `https://api.maple.dev/v2/docs` | `https://api.eu.maple.dev/v2/docs` |

Examples on this site use the US hosts. For an EU organization, replace `maple.dev` with `eu.maple.dev` in the host and change nothing else.

Keys do not cross regions. An ingest key or API key created in one region is rejected by the other, so a mismatch shows up as `401` rather than as data landing in the wrong place.

## Find your organization's region

- **Settings → General** shows a **Data region** row: "United States" or "European Union (Frankfurt)".
- The organization switcher in the sidebar shows `· US` or `· EU` after the organization name.
- The dashboard host you use is the region: `app.maple.dev` is US, `app.eu.maple.dev` is EU.

## Choosing a region

A new organization chooses its region in the first onboarding step. The region cannot be changed later. Organizations created before regions existed are in the US region.

What the EU region covers is described on [EU hosting](/eu).

## Point your tools at a region

| Tool                                                                 | US (default)                | EU                                                       |
| -------------------------------------------------------------------- | --------------------------- | -------------------------------------------------------- |
| Any OpenTelemetry SDK or Collector, as `OTEL_EXPORTER_OTLP_ENDPOINT` | `https://ingest.maple.dev`  | `https://ingest.eu.maple.dev`                            |
| [`@maple-dev/effect-sdk`](/docs/sdks/effect) (server and Cloudflare) | nothing to set              | `MAPLE_REGION=eu`, or `region: "eu"` in the layer config |
| [`@maple-dev/effect-sdk`](/docs/sdks/effect-client) (browser)        | nothing to set              | `region: "eu"`                                           |
| [`@maple-dev/browser`](/docs/session-replay/browser-sdk)             | nothing to set              | `region: "eu"`                                           |
| [`maple` CLI](/docs/reference/cli#using-the-cli-with-hosted-maple)   | `maple auth login`          | `maple auth login --api-url https://api.eu.maple.dev`    |
| [MCP clients](/docs/reference/mcp)                                   | `https://api.maple.dev/mcp` | `https://api.eu.maple.dev/mcp`                           |

In the Maple SDKs an explicit endpoint always wins over `region`. For `@maple-dev/effect-sdk` on a server that means `MAPLE_ENDPOINT`, then `OTEL_EXPORTER_OTLP_ENDPOINT`, then `MAPLE_REGION`. An unrecognized region value logs a warning and falls back to US.

## Next steps

- [Authentication](/docs/reference/authentication): which key goes where
- [Ingest API](/docs/reference/ingest): paths, limits and status codes
- [Retention](/docs/reference/retention): how long each region keeps your data
