Projects
Select a project to manage its servers, images and flavors
Servers
Provision and manage OVH GPU instances
Configuration
Manage allowed images, flavors and installation templates
Discovery
Browse available images and flavors directly from OVH
API Reference
Programmatic access — create API keys in the Admin panel
Authorization: Bearer <api-key>.
API keys are prefixed with gpualloc_.
Each key is scoped to a single project, so the base URL above already includes that project path — the endpoint paths below are relative to it.
In the examples, set BASE to the base URL above and API_KEY to your key.
Returns all running GPU servers. Includes IP addresses, status, flavor, and expiry time if uptime limits are configured.
{
"servers": [
{
"id": "3f9a1c7e-0b2d-4e6f-8a1b-2c3d4e5f6a7b",
"name": "my-project-0001",
"status": "ACTIVE",
"flavor": "t1-45",
"ip": ["51.91.120.42"],
"region": "GRA11",
"created": "2026-06-07T09:14:03Z",
"expires_at": "2026-06-08T09:14:03Z",
"image_name": "ubuntu-22.04-cuda",
"provision_state": "succeeded",
"provision_error": null,
"provision_attempts": 1
}
]
}
provision_state moves through creating → queued → running → succeeded, or ends at create_failed / failed. ip is empty until the instance gets an address; expires_at is null unless an uptime limit is set.
Returns a single server by its ID — the same object shape as an entry in GET /servers. Returns 404 if the ID is not in this project.
{
"id": "abc123-def456",
"name": "my-project-0001",
"status": "ACTIVE",
"flavor": "t1-45",
"ip": ["51.91.120.42"],
"region": "GRA11",
"created": "2026-06-07T09:14:03Z",
"expires_at": "2026-06-08T09:14:03Z",
"image_name": "ubuntu-22.04-cuda",
"provision_state": "succeeded",
"provision_error": null,
"provision_attempts": 1
}
Provision one or more GPU instances. Returns immediately with a list of server objects containing each server's id and provision_state: "creating". IP address and final status become available by polling GET /servers.
| Field | Type | Description |
|---|---|---|
flavor required |
string | Flavor name (GPU type + resources). Get available values from GET /config/flavors. |
image required |
string | OS image name. Get available values from GET /config/images. |
count required |
integer | Number of instances to create (min: 1). |
template optional |
string | Installation template to run after boot. Get available values from GET /templates. |
{
"servers": [
{ "id": "3f9a1c7e-0b2d-4e6f-8a1b-2c3d4e5f6a7b", "provision_state": "creating" }
]
}
Returns one object per instance immediately. Poll GET /servers for the IP address and final status.
Adds extra hours to a server's uptime limit, pushing back its expires_at. Hours accumulate across repeated calls. Only meaningful when an uptime limit is configured.
| Field | Type | Description |
|---|---|---|
hours required |
number | Additional hours to add to this server's uptime limit (must be > 0). |
{ "server_id": "abc123-def456", "extra_hours": 2.0 }
extra_hours is the running total added to this server so far.
Runs an installation template on an already-running server. The template must be enabled for the project (see GET /templates). The call first confirms SSH access (may take a few seconds), then runs the install in the background — poll GET /servers/{id}/logs for progress.
| Field | Type | Description |
|---|---|---|
template required |
string | Template folder to install. Get available values from GET /templates. |
{
"status": "installation_started",
"server_id": "abc123-def456",
"template": "vllm"
}
Returns 409 if the server is still being created, or 400 if the template is not enabled or SSH authentication to the server fails.
Returns the provisioning and installation log lines for a server, oldest first. Useful for tracking POST /servers and POST /servers/{id}/install progress.
{
"logs": [
{
"id": 1,
"occurred_at": "2026-06-07T09:14:05Z",
"level": "info",
"message": "Provisioned by alice"
},
{
"id": 2,
"occurred_at": "2026-06-07T09:16:22Z",
"level": "info",
"message": "[template:vllm] Installation finished"
}
]
}
Permanently deletes a GPU instance by its server ID (the id returned from POST /servers or GET /servers).
{ "deleted": "abc123-def456" }
If the server is still being created, deletion is deferred and the response is { "deleted": "<id>", "status": "deleting" }. Unknown IDs return 404.
Returns the list of images available for server creation. Use the name field in POST /servers.
{
"images": [
{
"name": "ubuntu-22.04-cuda",
"ovh_id": "8f1e2d3c-4b5a-6789-0abc-def123456789",
"pretty_name": "Ubuntu 22.04 + CUDA"
}
]
}
Pass the name value as the image field in POST /servers.
Returns the list of GPU flavors available for server creation including vCPUs, RAM, GPU type, and hourly price. Use the name field in POST /servers.
{
"flavors": [
{
"name": "t1-45",
"vcpus": 8,
"ram_gb": 45,
"disk_gb": 400,
"gpu_type": "Tesla V100",
"gpu_count": 1,
"gpu_vram_gb": 16,
"price_hour": 1.97
}
]
}
Pass the name value as the flavor field in POST /servers. price_hour is in EUR and may be null if unknown.
Returns the installation templates enabled for this project. Use the folder value as the template field in POST /servers.
{
"templates": [
{ "folder": "vllm", "name": "vLLM", "description": "vLLM inference server" }
],
"configured": true
}
Pass the folder value as the template field in POST /servers. configured is false when templates are not enabled on this deployment.
Returns current month spend and end-of-month forecast from OVH, broken down by instance.
{
"ovh_billing": {
"period": { "from": "2026-06-01T00:00:00Z", "to": "2026-06-07T00:00:00Z" },
"last_update": "2026-06-07T08:00:00Z",
"current_total": 142.87,
"forecast_total": 612.40,
"instances": [],
"resources_usage": []
},
"internal_billing": {
"month_start": "2026-06-01T00:00:00+00:00",
"total_spend": 138.52,
"per_actor": [
{ "actor": "alice", "spend": 92.10 },
{ "actor": "ci-key", "spend": 46.42 }
]
}
}
ovh_billing covers the whole OVH project; internal_billing is this project's tracked spend for the current month, per actor. If OVH is unreachable, ovh_billing is { "error": "Failed to fetch OVH billing" }.
Billing
Current month spend and end-of-month forecast
Admin
System configuration and limits
.
To create a global admin token use the system admin panel.
Audit Logs
All actions performed in this project