> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.ibee.co.in/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ibee.co.in/docs/_mcp/server.

# Introduction

> Overview of the IBEE Solutions public API.

The IBEE Solutions API gives you programmatic access to your infrastructure. You can manage virtual machines, object storage buckets, secrets, and more — all from your own code or automation tools.

## Base URL

All API requests use the following base URL:

```
https://api.ibee.ai/v1
```

## Workspace scoping

Every API request must include a `workspace_id` query parameter. This scopes the request to a specific workspace within your organization.

```bash
curl https://api.ibee.ai/v1/object-storage/buckets?workspace_id=907479 \
  -H "Authorization: Bearer YOUR_API_TOKEN"
```

Workspaces isolate resources so that production, staging, and development environments stay separate. You choose which workspaces a token can access when you create it.

## Billing admission before creation

Public API integrations use the same centralized billing admission flow as the
IBEE portal. Before sending a billable create request, call
`POST /billing/resource-eligibility` for the same workspace and continue only
when the response contains `"allowed": true`.

```bash
curl -X POST \
  "https://api.ibee.ai/v1/billing/resource-eligibility?workspace_id=907479" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"sku_code":"OBJECTST-STD"}'
```

The token needs `billing.read` in addition to the write scope for the product
being created. Treat a denied, malformed, or unavailable decision as a blocked
create; do not send the product request. The decision is point-in-time and does
not reserve funds, so perform it immediately before creation.

Billing state and prices are evaluated by the shared billing admission layer.
Do not send wallet balances, credit limits, or other billing state to product
APIs.

## Available resources

| Resource            | Description                                                                  |
| ------------------- | ---------------------------------------------------------------------------- |
| **Secret Store**    | Create stores, manage secrets, and retrieve values.                          |
| **Object Storage**  | Create and manage S3-compatible storage buckets.                             |
| **Compute catalog** | Discover placement sites, plans, and compatible OS images.                   |
| **Cloud VMs**       | Deploy and manage cloud virtual machines.                                    |
| **GPU VMs**         | Deploy and manage GPU-accelerated virtual machines for AI/ML workloads.      |
| **VPC networking**  | Manage isolated networks, subnets, VM attachments, NAT, and port forwarding. |
| **Reserved IPs**    | Reserve and move portable public IPv4 addresses.                             |
| **Firewalls**       | Manage firewall groups, rules, and VM attachments.                           |
| **Load balancers**  | Provision and manage L4 and L7 load balancers.                               |
| **Billing**         | Run the resource eligibility preflight before billable creates.              |

## Response format

All responses are JSON. Successful responses return the resource directly. Errors return a JSON object with a `detail` field:

```json
{
  "detail": "The requested resource was not found."
}
```

## Async operations

Some operations — creating, deleting, starting, stopping, or rebooting virtual machines — are asynchronous. These endpoints return `202 Accepted` with an `operation_id` you can poll:

```json
{
  "operation_id": "op_123",
  "vm_id": "vm_abc123",
  "status": "accepted",
  "submitted_at": "2026-07-01T12:00:00Z"
}
```

Use the [Get operation status](/docs/api-reference/cloud-vms/get-compute-operation) endpoint to check progress.

## Idempotency

VM create, delete, and power operations require an `X-Idempotency-Key` header.
If one of these requests fails due to a network issue, you can safely retry it
with the same key. Other write operations do not currently require this header;
follow the requirement shown on each endpoint.

```bash
curl -X POST https://api.ibee.ai/v1/compute/cloud-vms?workspace_id=907479 \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "X-Idempotency-Key: unique-request-id-123" \
  -H "Content-Type: application/json" \
  -d '{"name":"web-server-01","plan_id":"plan_standard_2c_4g","template_id":"tmpl_ubuntu_2204","os_distro":"ubuntu","os_type":"linux","cpu":2,"ram_mb":4096}'
```

## Next steps

* [Authentication](/docs/api-reference/authentication) — Create and use API tokens.
* [SDKs](/docs/api-reference/sdk-overview) — Official Python (`pip install ibee`) and TypeScript (`npm install ibee-sdk`) client libraries.
* [CLI](/docs/api-reference/cli) — Manage resources from the terminal (`pip install ibee-cli`).
* [Rate limits](/docs/api-reference/rate-limits) — Understand request limits.