> ## Documentation Index
> Fetch the complete documentation index at: https://docs.entire.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Regions and routing

> Which host to call for control-plane and repository requests.

Entire has two kinds of hosts. A **Core** is the control plane, and one runs in each jurisdiction such as US or EU. A **region API** holds repository data.

| Host | Example | What goes there |
| :- | :- | :- |
| Core | `https://us.auth.entire.io` | Installations: list repositories, mint access tokens, create repositories |
| Region API | `https://aws-us-east-2.api.entire.io` | Repository contents, branches, check runs |

## Cores

Entire's Cores are `https://us.auth.entire.io`, `https://eu.auth.entire.io`, `https://au.auth.entire.io`, `https://in.auth.entire.io`, `https://uk.auth.entire.io` and `https://sg.auth.entire.io`.

Any Core serves any installation. Call the Core nearest your service. Accept install receipts only from these issuers.

## Repository calls go to the region

Each repository in the [repository list](https://docs.entire.com/guides/api/plugins/act-for-an-installation.md#list-repositories) carries its placements. Send repository calls to the `api_base_url` of the placement whose role is `processing_primary`, under `/api/v1`, with an access token as bearer token.

The region knows the repository by its own ID, which `GET /api/v1/repos/{repository id}` returns:

```http theme={null}
GET https://aws-us-east-2.api.entire.io/api/v1/repos/repo_01M3...
Authorization: Bearer {access token}

{"id": "01M3QSHT...", "full_name": "acme/api", "default_branch": "main", ...}
```

Use that ID for the region's other repository endpoints, such as `/api/v1/git/repos/{id}/branches`. Core's own repository endpoints do not accept access tokens, so always go to the region. The one exception is [creating a repository](https://docs.entire.com/guides/api/plugins/act-for-an-installation.md#create-a-repository), which goes to a Core.

Names and hosts can change, so list the repositories again rather than caching placements for long.

**Cloning:** clone through `git-remote-entire` with the access token in `ENTIRE_TOKEN`. Plain HTTPS Git clones with the token are not supported yet.

## Allowed hosts

Send credentials only to hosts under `entire.io` that Entire named: a Core above, or an `api_base_url` from the repository list. The Go SDK enforces this.
