> For the complete documentation index, see [llms.txt](https://developer.celigo.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.celigo.com/api/getting-started/environments.md).

# Environments & regions

Region and environment are different things. The **region** is the data center that hosts your account. An **environment** is an isolated space inside that account. This page covers both.

## Regions (data centers)

Each region is a physically isolated data center. You cannot reach data in one region from another. There are no cross-region tokens.

| Region | UI                         | API base URL                   | Where data lives |
| ------ | -------------------------- | ------------------------------ | ---------------- |
| US     | `https://integrator.io`    | `https://api.integrator.io`    | United States    |
| EU     | `https://eu.integrator.io` | `https://api.eu.integrator.io` | European Union   |
| AU     | `https://au.integrator.io` | `https://api.au.integrator.io` | Australia        |
| CA     | `https://ca.integrator.io` | `https://api.ca.integrator.io` | Canada           |

> **How do I know which region I'm on?** Look at the URL in your browser when you're signed in. The subdomain is the region: `integrator.io` is US, `eu.integrator.io` is EU, `au.integrator.io` is AU, `ca.integrator.io` is CA.

Everything else is identical across regions.

* Request and response shapes.
* Pagination, rate-limit, and error semantics.
* The `@celigo/celigo-cli` tool.

## Environments within an account

An account is divided into isolated environments. Every account with the environments feature enabled has a Production environment, which cannot be disabled. Add non-production environments for development, testing, or staging.

Each environment holds its own users, integrations, connections, flows, exports, imports, and scripts. Nothing is shared implicitly.

Two consequences for API callers:

* **The hostname is the same for every environment.** Your region's base URL serves all of them. There is no per-environment hostname, header, or query parameter.
* **A token belongs to one environment.** The token you send is what selects the environment. To reach a non-production environment, switch into it in integrator.io, then create a token there.

> ⚠️ **Resources cannot be referenced across environments.** A flow can reference only the connections, exports, imports, and scripts that live in its own environment. To reuse a resource elsewhere, clone it into the target environment.

Two adaptor fields use the word "sandbox" for an unrelated purpose. `salesforce.sandbox` and `netsuite.environment` select which org or account the **external** system exposes. Neither one controls the integrator.io environment a resource belongs to.

### List your environments

> **The environments feature must be enabled.** Accounts without it receive `feature_not_enabled` and cannot list or create environments. Contact your Celigo account team to add it to your subscription.

Call `GET /v1/environments` to list every environment on the account:

```http
GET /v1/environments HTTP/1.1
Host: api.integrator.io
Authorization: Bearer <YOUR_API_TOKEN>
```

A `200 OK` returns an unpaginated array. The fields that identify an environment:

* `_id` — 24-character hexadecimal identifier. Read-only. Use it when cloning a resource into this environment.
* `name` — display name, unique within the account. Required when you create an environment.
* `description` — free-text purpose. `null` on environments the platform provisioned automatically.
* `enabled` — `true` when the environment is in service. Read-only; change it through the toggle endpoint.

For the full schema and the write operations, see [Environments](https://developer.celigo.com/api/api-reference/environments).

## Targeting a region

### Via the CLI

Set a profile per region. Give each environment its own profile too, since every environment has its own token:

```bash
celigo profile add us --api-token "$US_TOKEN" --api-base-url https://api.integrator.io
celigo profile add eu --api-token "$EU_TOKEN" --api-base-url https://api.eu.integrator.io
celigo profile add au --api-token "$AU_TOKEN" --api-base-url https://api.au.integrator.io
celigo profile add ca --api-token "$CA_TOKEN" --api-base-url https://api.ca.integrator.io

celigo --profile us integrations list
celigo --profile au integrations list
```

See [Profiles & regions](https://developer.celigo.com/cli/getting-started/profiles) for the full profile model.

### Via environment variables

```bash
export CELIGO_API_TOKEN=$US_TOKEN
export CELIGO_BASE_URL=https://api.integrator.io
```

### Via request

Every curl / SDK call swaps the hostname:

```bash
# US
curl https://api.integrator.io/v1/integrations -H "Authorization: Bearer $US_TOKEN"

# EU
curl https://api.eu.integrator.io/v1/integrations -H "Authorization: Bearer $EU_TOKEN"

# AU
curl https://api.au.integrator.io/v1/integrations -H "Authorization: Bearer $AU_TOKEN"

# CA
curl https://api.ca.integrator.io/v1/integrations -H "Authorization: Bearer $CA_TOKEN"
```

## Residency & compliance

The EU, AU, and CA data centers address **data residency** requirements — GDPR and UK-GDPR in Europe, the Privacy Act in Australia, PIPEDA in Canada, and customer contracts that require in-region processing. Data created on a regional tenant never leaves that region.

If your use case requires residency, confirm with your Celigo account team that your tenant was provisioned in the region you need. You cannot migrate a production tenant from one region to another in place — the move involves re-creating integrations and re-binding connections.


---

# 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://developer.celigo.com/api/getting-started/environments.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.
