# Regions & data residency

> Where Kurrens runs inference, how requests move between regions, and where your data is processed.

Kurrens runs inference in three regions on two continents. Every region runs the same models at the same declared
precision, so a request that fails over to another region gets the same model and the same output format.

<RegionMap />

## How requests are routed

**Serverless.** Requests are served from **Johor** by default. If Johor is at capacity or degraded, the request is served
from **Jakarta**; if both Asia Pacific regions are unavailable, from **Dublin**. You don't need to change anything in
your client — the base URL stays `https://api.kurrens.ai/v1`.

**Dedicated endpoints.** A dedicated endpoint is pinned to the region you choose — Johor, Jakarta, or Dublin — and never
leaves it. Use this when you need data residency in a specific country, or low latency from Europe. See
[Dedicated endpoints](/docs/dedicated/overview).

<Aside type="note" title="Capacity comes first">
  Under load we send a request to the next region rather than queueing it, and return `429` only when no region has
  capacity. See [Rate limits](/docs/getting-started/rate-limits).
</Aside>

## Where your data is processed

| | Johor, Malaysia | Jakarta, Indonesia | Dublin, Ireland |
|---|---|---|---|
| Prompts and completions | In memory, never stored | In memory, never stored | In memory, never stored |
| Serves serverless traffic | Default | Failover | Failover |
| Dedicated endpoints | Available | Available | Available |

Prompts and completions are processed in memory in the region that serves the request and are discarded when the response
completes — in every region. Request metadata (token counts, latency, status code) is kept for billing, as described in
[Zero data retention](/docs/data-security/zero-data-retention).

## Region ids

The region ids above are published per model in our catalog at
[kurrens.ai/models.json](/models.json) (`datacenters`), which is the file OpenRouter reads.

```json
"datacenters": [
  { "country_code": "MY", "region": "ap-southeast-1" },
  { "country_code": "ID", "region": "ap-southeast-3" },
  { "country_code": "IE", "region": "eu-west-1" }
]
```

The binding statement of where we process data is in our [Data Policy](/legal/data-policy) and
[Privacy Policy](/legal/privacy).
