
## Provider plans

`GET /v1/infra/providers/:providerId/plans`

Returns the provider's plans with their specs (CPU, RAM, disk, price while running and price while sleeping). The `id` value is used as the `plan` parameter when [creating a server](/docs/infra/servers/create).

## Parameters

| Parameter | In | Type | Req. | Description |
|----------|---|-----|:-----:|----------|
| `providerId` | path | string | yes | Provider ID from [`GET /v1/infra/providers`](./list.md), e.g. `bitrix-cloud` |

## Examples

### curl — personal key

```bash
curl -H "X-Api-Key: YOUR_API_KEY" \
  https://vibecode.bitrix24.com/v1/infra/providers/bitrix-cloud/plans
```

### curl — OAuth application

```bash
curl -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  https://vibecode.bitrix24.com/v1/infra/providers/bitrix-cloud/plans
```

### JavaScript — personal key

```javascript
const res = await fetch(
  'https://vibecode.bitrix24.com/v1/infra/providers/bitrix-cloud/plans',
  { headers: { 'X-Api-Key': 'YOUR_API_KEY' } }
)
const { data: plans } = await res.json()
plans.forEach(p => console.log(
  `${p.id}: ${p.cpu}C / ${p.ram}MB / ${p.disk}GB — ${p.priceMonthly} Ꝟ/mo`
))
```

### JavaScript — OAuth application

```javascript
const res = await fetch(
  'https://vibecode.bitrix24.com/v1/infra/providers/bitrix-cloud/plans',
  {
    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 plans |
| `data[].id` | string | Plan ID, passed as `plan` when creating a server (`bc-small`, `bc-medium`, `bc-large`, `bc-xlarge`) |
| `data[].name` | string | Display name of the plan, including its specs |
| `data[].cpu` | number | Number of cores |
| `data[].ram` | number | RAM, MB |
| `data[].disk` | number | Disk, GB |
| `data[].diskType` | string | Disk type (`network-ssd`) |
| `data[].bandwidth` | number | Network bandwidth, Mbps |
| `data[].priceMonthly` | number | Catalog price of a running server in Vibe credits (Ꝟ) per month. The amount actually billed for a given Bitrix24 account may differ from the catalog price |
| `data[].sleepPriceMonthly` | number | Catalog price of a server in `sleeping` mode in Vibe credits (Ꝟ) per month. The amount actually billed may differ |

## Response example

```json
{
  "success": true,
  "data": [
    {
      "id": "bc-small",
      "name": "Small (2C / 2GB / 20GB SSD)",
      "cpu": 2,
      "ram": 2048,
      "disk": 20,
      "diskType": "network-ssd",
      "bandwidth": 100,
      "priceMonthly": 24,
      "sleepPriceMonthly": 2.5
    },
    {
      "id": "bc-medium",
      "name": "Medium (2C / 4GB / 40GB SSD)",
      "cpu": 2,
      "ram": 4096,
      "disk": 40,
      "diskType": "network-ssd",
      "bandwidth": 100,
      "priceMonthly": 50,
      "sleepPriceMonthly": 5
    }
  ]
}
```

## Error response example

404 — unknown `providerId`:

```json
{
  "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](/docs/errors).

## Known specifics

- Plans range from `bc-small` (2C / 2GB / 20GB SSD) to `bc-xlarge` (4C / 16GB / 160GB SSD). Pick a plan based on your application's RAM and disk requirements.
- The response is not paginated.

## See also

- [List of providers](./list.md) — `GET /v1/infra/providers`.
- [Provider regions](./regions.md) — `GET /v1/infra/providers/:providerId/regions`.
- [Provider OS images](./images.md) — `GET /v1/infra/providers/:providerId/images`.
- [Creating a server](/docs/infra/servers/create) — the `plan` parameter.
