> For the complete documentation index, see [llms.txt](https://docs.amigo.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.amigo.ai/developer-guide/getting-started/regions-and-endpoints.md).

# Regions & Endpoints

Amigo's APIs are deployed across multiple regions to reduce latency and support data residency requirements. Each region operates independently with its own compute and AI routing. This page lists the regional base URLs for both the Classic API and the Platform API, explains how routing differs between the two, and covers dedicated cluster headers.

## Regional Base URLs

Amigo runs in four regions. Use the tables below to find the base URL for each API.

### Classic API

| 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` |

### Platform API

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

### How routing differs between the APIs

* **Classic API: region matching is required.** Use the base URL that matches your organization's data residency. Requests to a mismatched region return "Organization not found" errors.
* **Platform API: region matching is required.** `https://api.platform.amigo.ai` is the US endpoint, not a global router. Use the hostname assigned to the workspace's region. Workspace region is fixed at creation, so clients should store the matching base URL with their workspace configuration rather than infer that the US hostname will forward requests.

AI-backed service and model availability can differ by deployment. Do not infer that every external model or processor runs in the workspace region; confirm the data path and regional availability for the features you enable.

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

For organizations on dedicated clusters, you can also target your cluster explicitly via the `x-mongo-cluster-name` header - see [Dedicated Clusters](#dedicated-clusters) below.

## 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 |

The legacy Python Agent Forge build provides `forge channel llm-info` and `forge channel validate-preset <preset> <channel> --region <region>` for Classic channel presets. These commands are not part of the current Go CLI's Platform-only command surface.

{% 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_premium`

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

### Global Deployment Map

```mermaid
%%{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="Classic 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="Classic 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 %}

{% tab title="Platform TypeScript" %}

```typescript
import { AmigoClient } from '@amigo-ai/platform-sdk'

const client = new AmigoClient({
  apiKey: process.env.AMIGO_PLATFORM_API_KEY!,
  workspaceId: process.env.AMIGO_WORKSPACE_ID!,
  baseUrl: 'https://api-ca-central-1.platform.amigo.ai',
})

const workspace = await client.workspaces.get()
```

{% 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",
    "user_dimensions": [],
    "logo": "<base64>",
    "square_logo": "<base64>",
    "favicon": "<base64>",
    "default_user_preferences": {},
    "azure_devops_team_name": "example-team"
  }'
```

The SDKs do not currently expose a raw-header helper; use cURL for dedicated-cluster provisioning requests.

## Recommendations

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

1. Confirm your organization or workspace 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
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.amigo.ai/developer-guide/getting-started/regions-and-endpoints.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
