For AI agents: markdown of this page — /docs-content-en/infra/providers/regions.md documentation index — /llms.txt
Provider regions
GET /v1/infra/providers/:providerId/regions
Returns the list of data centers (zones) where the provider can place virtual machines. The id value is used as the region parameter when creating a server. By default, choose the first element of the array — it is the platform's current fallback zone with a reserve of free IPs.
Parameters
| Parameter | In | Type | Req. | Description |
|---|---|---|---|---|
providerId |
path | string | yes | Provider ID from GET /v1/infra/providers, e.g. bitrix-cloud |
Examples
curl — personal key
curl -H "X-Api-Key: YOUR_API_KEY" \
https://vibecode.bitrix24.com/v1/infra/providers/bitrix-cloud/regions
curl — OAuth application
curl -H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
https://vibecode.bitrix24.com/v1/infra/providers/bitrix-cloud/regions
JavaScript — personal key
const res = await fetch(
'https://vibecode.bitrix24.com/v1/infra/providers/bitrix-cloud/regions',
{ headers: { 'X-Api-Key': 'YOUR_API_KEY' } }
)
const { data: regions } = await res.json()
const defaultRegion = regions[0].id // current platform fallback
JavaScript — OAuth application
const res = await fetch(
'https://vibecode.bitrix24.com/v1/infra/providers/bitrix-cloud/regions',
{
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
}
)
Response fields
| Field | Type | Description |
|---|---|---|
success |
boolean | Always true on success |
data |
array | Array of regions |
data[].id |
string | Region ID, passed as region when creating a server (e.g. bc-eu-central) |
data[].name |
string | Display name for the user (e.g. "Frankfurt (EU Central)") |
data[].country |
string | Two-letter ISO 3166-1 country code (DE) |
Response example
{
"success": true,
"data": [
{ "id": "bc-eu-central", "name": "Frankfurt (EU Central)", "country": "DE" },
{ "id": "bc-eu-west", "name": "Ireland (EU West)", "country": "IE" },
{ "id": "bc-us-east", "name": "N. Virginia (US East)", "country": "US" },
{ "id": "bc-us-west", "name": "Oregon (US West)", "country": "US" },
{ "id": "bc-ap-southeast", "name": "Singapore (AP Southeast)", "country": "SG" }
]
}
Error response example
404 — unknown providerId:
{
"success": false,
"error": {
"code": "NO_CREDENTIALS",
"message": "No credentials configured for provider nonexistent"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| 401 | MISSING_API_KEY |
The X-Api-Key header was not provided |
| 401 | INVALID_API_KEY |
Invalid or expired API key |
| 404 | NO_CREDENTIALS |
A provider with this providerId is not configured on the platform |
| 429 | RATE_LIMITED |
The platform's overall request limit was exceeded |
Full list of common API errors — Errors.
Known specifics
- Switching to a backup zone when IP addresses are exhausted. If the requested zone has run out of free IPs at the provider, when creating a server the platform automatically tries the next zones in the array in the order they appear and, in the creation response, sets
regionto the one the server actually landed in. The switch to a backup zone is recorded in the audit log as aSERVER_ZONE_FALLBACKevent with the original and actual zones. - The response is not paginated.
See also
- List of providers —
GET /v1/infra/providers. - Provider plans —
GET /v1/infra/providers/:providerId/plans. - Provider OS images —
GET /v1/infra/providers/:providerId/images. - Creating a server — the
regionparameter.
List of providers
GET /v1/infra/providers
Returns the list of cloud providers on which servers can be created. The available field shows whether the platform has credentials configured for the provider and whether it is ready to create new virtual machines (VMs).
Examples
curl — personal key
curl -H "X-Api-Key: YOUR_API_KEY" \
https://vibecode.bitrix24.com/v1/infra/providers
curl — OAuth application
curl -H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
https://vibecode.bitrix24.com/v1/infra/providers
JavaScript — personal key
const res = await fetch('https://vibecode.bitrix24.com/v1/infra/providers', {
headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})
const { data } = await res.json()
const active = data.filter(p => p.available)
console.log('Available providers:', active.map(p => p.id))
JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/infra/providers', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { data } = await res.json()
Response fields
| Field | Type | Description |
|---|---|---|
success |
boolean | Always true on success |
data |
array | Array of providers |
data[].id |
string | Provider ID to pass in provider when creating a server (e.g. bitrix-cloud) |
data[].name |
string | Display name for the user |
data[].available |
boolean | true if the provider is configured on the platform and ready to create servers. false — creation will fail with a NO_CREDENTIALS error |
Response example
{
"success": true,
"data": [
{
"id": "bitrix-cloud",
"name": "Bitrix24 Cloud",
"available": true
}
]
}
Error response example
401 — API key not provided:
{
"success": false,
"error": {
"code": "MISSING_API_KEY",
"message": "API key required. Pass via X-Api-Key header."
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| 401 | MISSING_API_KEY |
The X-Api-Key header was not provided |
| 401 | INVALID_API_KEY |
Invalid or expired API key |
| 403 | SCOPE_DENIED |
The key lacks the vibe:infra scope (added automatically — report it in feedback if you hit this) |
| 429 | RATE_LIMITED |
The platform's overall request limit was exceeded |
Full list of common API errors — Errors.
Known specifics
- The response is not paginated — the list is small and returned in full.
See also
- Provider plans —
GET /v1/infra/providers/:providerId/plans. - Provider regions —
GET /v1/infra/providers/:providerId/regions. - Provider OS images —
GET /v1/infra/providers/:providerId/images. - Creating a server — where the chosen
providergoes.