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

# November 4, 2026

## Public API 0.9.1: clearer retry keys and errors, and corrections to the reference

No path, method or operation changed. The reference stays at 178 active operations.

* **VM delete:** `public_ip_action` applies only to an automatically assigned IP. If the VM's IP is already a Reserved IP, `release` and `reserve` are both refused with `400`. Delete with no body, then release the IP from Reserved IPs to stop its billing.
* **Backup runs:** `trigger` is `scheduled` or `manual`. Runs started through the API report `manual`, not `api`. The run lists return only finished, successful runs; read a run by ID to see one that is queued, running or failed.
* **Retry keys on networking creates:** send the same key and body on every retry. A completed create returns its original answer for 24 hours, even if the plan limit has since been reached. A refused or unsent create leaves the key free to use again. An unknown outcome answers `409 idempotency_in_progress` with `Retry-After` until the next retry resolves it. See [Retry a networking create](/docs/api-reference/introduction#retry-a-networking-create).
* **Errors:** the catalog reads now use the same format as other errors: `error`, `message` and `request_id`, with `detail` kept. `409` answers carry the product's reason in `message` where it's safe to show. `413` and `502` are now documented on every operation, and `423` on restore cancel.
* **Paused Object Storage operations:** `DELETE` on bucket lifecycle rules, CORS rules, notifications and custom domains needs `object-storage.delete`, not `object-storage.write`.