# API Versions and Microversions

Source: https://docs.quake.ai/docs/tools/api-versions
Markdown: https://docs.quake.ai/docs/tools/api-versions.md

---

# API versions and microversions

## OpenStack version baseline

Quake AI runs OpenStack 2023.1 (Antelope). The SLURP upgrade path is Antelope → Caracal (skip-level).

## Per-service microversion ceilings

| Service | API | Max microversion on Quake AI | Current upstream (Epoxy) |
| --- | --- | --- | --- |
| Nova (Compute) | Compute v2.1 | 2.95 | 2.100 |
| Cinder (Block Storage) | Volume v3 | 3.70 | 3.71 |
| Neutron (Networking) | Network v2.0 | No microversions (extension-based) | Same |
| Swift (Object Storage) | Object Storage v1 | No microversions | Same |
| Heat (Orchestration) | Orchestration v1 | Template version 2021-04-06 | Deprecated in Epoxy |
| Magnum (Kubernetes) | Container-infra v1 | K8s 1.25–1.27 | K8s 1.28+ |

## Key limitations vs. upstream

- **Nova:** The `os-volumes_boot` API is not deprecated on Quake AI yet; upstream deprecated it in Caracal (microversion 2.96).
- **Cinder:** `os-extend_volume_completion` is not available; it requires microversion 3.71.
- **Heat:** Heat is not deprecated on Quake AI yet but is deprecated upstream in Epoxy. Plan for a CAPI (Cluster API) migration for orchestration workflows that depend on Heat long term.
- **Swift S3 compatibility:** No lifecycle policies, no S3 notifications, no IAM-style ACLs, and limited versioning compared to AWS S3.

## Microversion request header

Clients can pin a microversion with the `OpenStack-API-Version` header. For example, to request Nova compute API 2.95:

```bash
curl -s \
  -H "X-Auth-Token: YOUR_TOKEN" \
  -H "OpenStack-API-Version: compute 2.95" \
  "https://compute.us-east-1.rumble.cloud/v2.1/servers"
```

If you request a microversion **above** the service ceiling on Quake AI, the API returns **406 Not Acceptable**: the server refuses the negotiated version because it does not implement that microversion.
