FlexVM
Introduction
FlexVM (Flex Virtual Metal) extends the existing FlexMetal bare metal provisioning platform with a managed virtual machine layer. It enables customers to provision GPU-accelerated and general purpose VMs on dedicated hardware through the same API, Terraform provider, and consumption model they already use for FlexMetal bare metal.
The service targets workloads that require near-bare-metal performance with the operational flexibility of virtual machines: game build pipelines, CI/CD, rendering, AI inference, and any workload where GPU/NVMe passthrough and per-tenant isolation are non-negotiable.
FlexVM is not a shared multi-tenant cloud. Each customer's VMs run on hardware exclusively allocated to them. The virtualization layer exists solely to subdivide dedicated machines into deterministic, isolated units with direct hardware access.
Core Concepts
Tenant
i3D.net customer identification (also known as K#)
Cloud
Your isolated environment (pre‑created). Contains nodes, VMs, and capacity. Tenants have 1 or more Clouds
Node
A physical compute host inside your cloud. Clouds have 1 or more Node
Image
An OS template used to create VMs (e.g., Ubuntu 22.04, Windows Server)
Instance Type
A predefined hardware profile (CPU, RAM, disk, GPU) for VMs
VM
A virtual machine instance running in your cloud
Command
An action you can execute on a VM (e.g., start, stop, reboot)
Prerequisites
Before you begin, the i3D.net team has already set up the following for you:
· Tenant (K#): your unique organisation identifier.
o The Tenant will have it’s own VLAN and IP Prefixes already assigned to.
· FlexVM Cloud: a dedicated cloud resource pool with compute capacity assigned to your tenant.
This diagram below explains the resource hierarchy.

Using FlexVM
For the full API specifications, see https://docs.i3d.net/api/api_flexvm
Note: API URL prefix is https://api.i3d.net
API Token
Generate an API token, the procedure is documented in API v3 Authentication
Add IP whitelisting for security (whitelist the IP addresses that will access the API)
Include your API key in every request using this HTTP header:
PRIVATE-TOKEN
YOUR_API_KEY
Pagination
Use the RANGED-DATA header to control result sets (default: start=0, results=25).
All GET endpoints that return collections support this header.
Using FlexVM Terraform Provider
The i3dnet provider includes the resource to manage FlexVM: i3dnet_flexvm_vm Example usage:
Explore Your Environment
Create Your First VM
Use the POST /v3/flexVM/clouds/{cloudUuid}/vms endpoint with a JSON body.
Example request
POST /v3/flexVM/clouds/{cloudUuid}/vms
Host: api.i3d.net
PRIVATE-TOKEN: YOUR_API_KEY
Content-Type: application/json
Response
A successful call returns 201 Created with the VM object, including its vmUuid and an initial status of provisioning.
The VM transitions through provisioning → starting → running. You can monitor its status using the GET VM endpoint.
Manage Your VMs
List Your Clouds
You should see one cloud with its UUID, name, and capacity details.
GET /v3/flexVM/clouds
Get Cloud Details
GET /v3/flexVM/clouds/{cloudUuid}
List Nodes in Your Cloud
Nodes represent the underlying compute hosts.
GET /v3/flexVM/clouds/{cloudUuid}/nodes
List Available Images
Images are templates you can use when creating a VM.
GET /v3/flexVM/images
List Available Instance Types
Instance types define VM size (vCPU, RAM, disk).
GET /v3/flexVM/instanceTypes
Monitor Monthly Usage
Retrieve a usage report for your organisation (tenant) over a specified period.
GET /v3/flexVM/reports/monthly?start=2026-01-01T00:00:00Z&end=2026-02-01T00:00:00Z
start (inclusive) and end (exclusive) – ISO 8601, UTC.
If omitted, the period defaults to the current calendar month.
The report includes total VM created, VM released, VM hours, aggregated by VM tags (if applicable).
Last updated
Was this helpful?