GPU servers
A GPU server is ordered through the same POST /v1/servers as everything else. What
differs is how it is sized: it comes as a ready package, and the package decides the card, the
cores, the memory and the system disk together.
1. Find the type
curl -H "Authorization: Bearer $FBX_TOKEN" \
https://api.fiberax.com/v1/server-types
{ "data": [
{ "id": 4, "name": "Cluster Server", "pricing_mode": "sliders", "gpu": false },
{ "id": 5, "name": "Solo Server", "pricing_mode": "plans", "gpu": false },
{ "id": 7, "name": "GPU Server", "pricing_mode": "fixed", "gpu": true,
"description": "An NVIDIA L4 card reserved for your server alone. Fixed packages of CPU, RAM and disk." } ] }
Fields omitted for brevity.
"gpu": true marks a type with graphics cards, and "pricing_mode": "fixed"
says it is bought as a package. The catalogue is the authority on what your project may order: a type
it does not show answers 404 server_type_not_found if you name it anyway - the same code
as a type that does not exist.
2. Read the packages
curl -H "Authorization: Bearer $FBX_TOKEN" \
https://api.fiberax.com/v1/server-types/7/pricing
{ "data": { "server_type_id": 7, "pricing_mode": "fixed",
"gpu_packages": [ { "key": "gpu-l4-24", "name": "GPU L4 24-core", "gpu_model": "L4",
"gpu_count": 1, "cores": 24, "memory_gb": 144, "disk_gb": 1600,
"price": 600, "backup_price": 100 } ] } }
Fields omitted for brevity.
Everything you need for the order is here: the key of the package, what it contains, and what it
costs. Read the list rather than copying it - a package that is withdrawn simply stops appearing, and
what is offered today may differ from this example. The numbers carry no currency or period of their
own: price is the monthly price in the currency of your account, and
backup_price is worth noticing - on this type backups are charged at a flat monthly
price per server rather than by the gigabyte.
3. Pick an image
curl -H "Authorization: Bearer $FBX_TOKEN" \
https://api.fiberax.com/v1/server-types/7/images
This type offers a small set, and one of the entries is an operating system with the graphics drivers already installed - on a GPU machine that is usually the one you want:
{ "data": [ { "id": "fcf9f69c...", "name": "Ubuntu 24.04", "type": "os" },
{ "id": "1ef98174...", "name": "Ubuntu 24.04 + NVIDIA drivers", "type": "os" },
{ "id": "eb0446da...", "name": "Windows Server 2025", "type": "os" },
{ "id": "uiso-40", "name": "your own ISO image", "type": "useriso" } ] }
Fields omitted for brevity.
The entry with "type": "useriso" is your own uploaded ISO, and a server cannot be
CREATED from it - such a request is refused with image_not_supported (422). An ISO
installs a machine rather than builds one; insert it into the drive of an existing server instead
(PUT /v1/servers/{id}/iso), which is allowed here as on any other type.
4. Order it
curl -X POST -H "Authorization: Bearer $FBX_TOKEN" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: trainer-01-2026-09-16" \
-d '{
"name": "trainer-01",
"server_type_id": 7,
"gpu_package": "gpu-l4-24",
"image": "1ef98174e466...",
"public_ipv4": { "reuse": true },
"ssh_keys": [13]
}' \
https://api.fiberax.com/v1/servers
One field carries the whole machine. Because the package already says how big the server is,
cores, memory_mb, disk_gb and plan_id are
refused next to it (resources_managed_by_package, 422) instead of being ignored.
Leave the package out and you get gpu_package_required; name a key this type does not
sell and you get gpu_package_not_found.
Such a machine is not resized afterwards, and its package is not swapped either: a different package is a different server.
Two more fields belong to other types and are refused here rather than ignored:
gpus (this type does not let you pick cards one by one - the package names the card) is
answered with gpus_not_supported, and disk_type is answered with
disk_type_not_supported, because the storage class of the system disk is part of the
package too. There are no ceilings to read for this type either: its pricing carries
"limits": null.
5. When there is no capacity
A packaged GPU server takes a whole host together with its card, so the number of them is finite. When none is free:
{ "status": 409, "code": "no_gpu_capacity",
"detail": "No host of this type has the requested cards free. The reason is worked out from the
platform inventory as it reads at the moment of this answer; at the moment of the
refusal it may have been another one." }
There is deliberately no Retry-After here: repeating the same request will not
free a host. Wait and try later, or take a different type.
A refused request costs you nothing. If it asked for a new public address and the server was not created, that address is released again. An address you named yourself stays yours, as it was before the request.
6. What a GPU server does differently
- No image can be taken from it.
POST /v1/server-imagesanswersserver_type_not_supported: the card is attached by the address of a device on one specific host, and an image carrying that description would not run anywhere else. - An ISO can still be inserted into its drive - that does not touch the card.
- It is not resized. The package is the size, and it is chosen once.
- Everything else is the same as for a normal server: networks, firewall, backups, addresses, and the clean-up described in A server from start to finish.