API reference / Regions

Regions

GET /regions#

Lists the public TURN regions. Use a region's slug as preferred_region or fixed_region in POST /credentials/ice, or to build a TURN hostname (<slug>.turnix.io) for shared-secret integrations.

text
GET https://turnix.io/api/v1/regions

Query parameters#

Parameter Description
for_org Set to any value (for example for_org=1) to list only the regions your organization's plan can use. On the free plan, these are the regions with is_trial: true.

Request#

bash
curl https://turnix.io/api/v1/regions \
  -H "Authorization: Bearer $TURNIX_API_TOKEN"
javascript
const res = await fetch("https://turnix.io/api/v1/regions", {
  headers: { Authorization: `Bearer ${process.env.TURNIX_API_TOKEN}` },
});
const regions = await res.json();
const usable = regions.filter((r) => r.is_online && r.is_operational);
python
regions = requests.get(
    "https://turnix.io/api/v1/regions",
    headers={"Authorization": f"Bearer {os.environ['TURNIX_API_TOKEN']}"},
    timeout=10,
).json()
usable = [r for r in regions if r["is_online"] and r["is_operational"]]

Response#

200 OK: a JSON array.

json
[
  {
    "slug": "us-west",
    "nat2": "us",
    "city": "Portland",
    "name": "US West",
    "lat": 45.5152,
    "lon": -122.6784,
    "is_online": true,
    "is_operational": true,
    "is_trial": false
  },
  {
    "slug": "singapore",
    "nat2": "sg",
    "city": "Singapore",
    "name": "Singapore",
    "lat": 1.28455,
    "lon": 103.84429,
    "is_online": false,
    "is_operational": false,
    "is_trial": false
  }
]
Field Type Description
slug string Region identifier. TURN host: <slug>.turnix.io
nat2 string ISO 3166-1 alpha-2 country code, lowercase
city string City where the region is located
name string Display name
lat, lon number Coordinates, used for geo-routing
is_online boolean The region's servers are reachable
is_operational boolean The region accepts new credentials. Use regions where both flags are true.
is_trial boolean The region is available on the free plan

The list of regions changes as we add capacity. Read it at runtime instead of hard-coding slugs, or check the Server page in the dashboard.

Last updated October 30, 2026