# Regions & Endpoints

Amigo provides region-specific API endpoints to support data residency and latency requirements. If your organization is provisioned in a specific region, use the corresponding base URL. For organizations on dedicated clusters, you can also target your cluster explicitly via the `x-mongo-cluster-name` header.

{% hint style="info" %}
**Classic API endpoints.** The regional endpoints below are for the Classic API at `api.amigo.ai`. The Platform API has its own regional endpoints, listed in [Platform API Regional Endpoints](#platform-api-regional-endpoints) below.
{% endhint %}

## Regional Base URLs

| Region | Location                   | Base URL                              |
| ------ | -------------------------- | ------------------------------------- |
| **US** | N. Virginia (`us-east-1`)  | `https://api.amigo.ai`                |
| **CA** | Montreal (`ca-central-1`)  | `https://api-ca-central-1.amigo.ai`   |
| **EU** | Frankfurt (`eu-central-1`) | `https://api-eu-central-1.amigo.ai`   |
| **AU** | Sydney (`ap-southeast-2`)  | `https://api-ap-southeast-2.amigo.ai` |

{% hint style="info" %}
Contact your Amigo representative for regional availability and upcoming regions.
{% endhint %}

{% hint style="warning" %}
**Region matching required.** Use the regional base URL that matches your organization's data residency. Requests to a mismatched region return "Organization not found" errors.
{% endhint %}

## Platform API Regional Endpoints

The Platform API is available through regional endpoints that keep all traffic within the workspace's region. This includes Data-MCP queries, which execute entirely within the regional infrastructure.

| Region | Platform API Base URL                          |
| ------ | ---------------------------------------------- |
| **US** | `https://api.platform.amigo.ai`                |
| **CA** | `https://api-ca-central-1.platform.amigo.ai`   |
| **EU** | `https://api-eu-central-1.platform.amigo.ai`   |
| **AU** | `https://api-ap-southeast-2.platform.amigo.ai` |

The global endpoint (`api.platform.amigo.ai`) still works for all regions and routes to the correct regional infrastructure based on the workspace's configured region. Use regional endpoints when your compliance requirements mandate that API traffic stay within a specific jurisdiction.

## LLM Regional Availability

Not all LLMs are deployed in every region. When selecting [version set presets](/developer-guide/operations/devops/channel-tagging.md), make sure the preset's LLMs are available in your target region.

| Tier     |  US |    CA   |  EU |    AU   |
| -------- | :-: | :-----: | :-: | :-----: |
| Economy  |  ✓  |    ✓    |  ✓  |    ✓    |
| Standard |  ✓  |    ✓    |  ✓  |    ✓    |
| Premium  |  ✓  | Partial |  ✓  | Partial |

Use `forge channel llm-info` to see the full model catalog, and `forge channel validate-preset <preset> <channel> --region <region>` to verify compatibility before deployment.

{% hint style="warning" %}
**Premium model regional restriction.**

Some premium-tier models are only available in **US** and **EU** regions. The following presets use these models and cannot be deployed to CA or AU:

* `text_premium`
* `async`
* `async_premium`

Use economy or standard presets for CA and AU regions.
{% endhint %}

### Global Deployment Map

{% @mermaid/diagram content="%%{init: {"flowchart": {"useMaxWidth": true, "nodeSpacing": 30, "rankSpacing": 40}, "theme": "base", "themeVariables": {"primaryColor": "#D4E2E7", "primaryTextColor": "#100F0F", "primaryBorderColor": "#083241", "lineColor": "#575452", "textColor": "#100F0F", "clusterBkg": "#F1EAE7", "clusterBorder": "#D7D2D0"}}}%%
graph TB
Global\[Amigo Platform<br/>Global Network]

```
Global --> US["🇺🇸 US Region<br/>N. Virginia us-east-1<br/>api.amigo.ai"]
Global --> CA["🇨🇦 CA Region<br/>Montreal ca-central-1<br/>api-ca-central-1<br/>.amigo.ai"]
Global --> EU["🇪🇺 EU Region<br/>Frankfurt eu-central-1<br/>api-eu-central-1<br/>.amigo.ai"]
Global --> AU["🇦🇺 AU Region<br/>Sydney ap-southeast-2<br/>api-ap-southeast-2<br/>.amigo.ai"]

style US fill:#DDE3DB,stroke:#2c3827,color:#100F0F,stroke-width:3px
style CA fill:#DDE3DB,stroke:#2c3827,color:#100F0F,stroke-width:3px
style EU fill:#DDE3DB,stroke:#2c3827,color:#100F0F,stroke-width:3px
style AU fill:#DDE3DB,stroke:#2c3827,color:#100F0F,stroke-width:3px
style Global fill:#D4E2E7,stroke:#083241,color:#100F0F,stroke-width:3px" %}
```

### cURL example

```bash
curl -X GET \
  -H "Authorization: Bearer <YOUR_JWT_TOKEN>" \
  "https://api-ca-central-1.amigo.ai/v1/<your-org-id>/organization/"
```

### SDK configuration

Specify the regional base URL via the SDK `base_url` or `baseUrl` setting.

{% tabs %}
{% tab title="Python" %}

```python
from amigo_sdk import AmigoClient

with AmigoClient(
    api_key="<key>",
    api_key_id="<key-id>",
    user_id="<user>",
    organization_id="<org>",
    base_url="https://api-ca-central-1.amigo.ai",
) as client:
    org = client.organization.get()
```

{% endtab %}

{% tab title="TypeScript" %}

```typescript
import { AmigoClient } from "@amigo-ai/sdk";

const client = new AmigoClient({
  apiKey: process.env.AMIGO_API_KEY!,
  apiKeyId: process.env.AMIGO_API_KEY_ID!,
  userId: process.env.AMIGO_USER_ID!,
  orgId: process.env.AMIGO_ORGANIZATION_ID!,
  baseUrl: "https://api-ca-central-1.amigo.ai",
});

const org = await client.organizations.getOrganization();
```

{% endtab %}
{% endtabs %}

### Environment variables

You can also set the regional endpoint via environment variables.

```env
# US
AMIGO_BASE_URL=https://api.amigo.ai

# CA
# AMIGO_BASE_URL=https://api-ca-central-1.amigo.ai

# EU
# AMIGO_BASE_URL=https://api-eu-central-1.amigo.ai

# AU
# AMIGO_BASE_URL=https://api-ap-southeast-2.amigo.ai
```

## Dedicated Clusters

Some enterprises run on dedicated, isolated clusters. In these cases, include `x-mongo-cluster-name` to direct requests to your assigned cluster.

{% hint style="info" %}
**Cluster name.** Your Amigo team provides the exact cluster name if your tenant uses a dedicated cluster. Do not guess this value.
{% endhint %}

**Header**: `x-mongo-cluster-name: <cluster-name>`

**When to use**:

* **Required**: organization provisioning (Create Organization)
* **Recommended**: early provisioning flows when the organization may not yet be discoverable via the global config
* **Optional**: normal operations for established organizations. Most endpoints do not require it once your org is fully set up.

### cURL example (dedicated cluster)

```bash
curl -X PUT \
  -H "Authorization: Bearer <YOUR_JWT_TOKEN>" \
  -H "x-mongo-cluster-name: <your-dedicated-cluster-name>" \
  -H "Content-Type: application/json" \
  "https://api-eu-central-1.amigo.ai/v1/<your-org-id>/organization/" \
  -d '{
    "org_name": "Example Corp",
    "title": "Example Corp AI",
    "main_description": "Intelligent assistants for Example Corp",
    "sub_description": "Personalized, compliant AI",
    "user_dimensions": [],
    "logo": "<base64>",
    "square_logo": "<base64>",
    "favicon": "<base64>",
    "signup_page_headshot": "<base64>",
    "default_user_preferences": {},
    "onboarding_instructions": ["Welcome to Example Corp AI"],
    "azure_devops_team_name": "example-team"
  }'
```

### SDK examples (dedicated cluster)

{% tabs %}
{% tab title="Python" %}

```python
# If your SDK version exposes a raw HTTP method, include the header
# for organization provisioning requests. Otherwise, use cURL as shown above.
```

{% endtab %}

{% tab title="TypeScript" %}

```typescript
// If your SDK version exposes a raw HTTP helper, include the header
// for organization provisioning requests. Otherwise, use cURL as shown above.
```

{% endtab %}
{% endtabs %}

## Recommendations

{% hint style="success" %}
**Best practices**

1. Confirm your organization's region with your Amigo representative and set the matching base URL.
2. For dedicated cluster tenants, store your cluster name in a secure configuration store.
3. Include the `x-mongo-cluster-name` header where instructed for dedicated clusters.
   {% endhint %}

{% hint style="warning" %}
**Troubleshooting "Organization not found"**

If you see this error:

* Verify you are calling the correct regional base URL.
* For provisioning flows, make sure the `x-mongo-cluster-name` header is set (if you are on a dedicated cluster).
  {% endhint %}


---

# 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.amigo.ai/developer-guide/getting-started/regions-and-endpoints.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.
