Generic bridge to every product line (cloud server, VDS, dedicated, mail, monitor, storage, license, ...). Everything a customer can do on a service in the client area is a module tool or method and is reachable here. Start with GET /cloud/services/{id}/tools: it lists the tools, their actions and our safety policy (read, confirm, secret) for that very service.
Run a tool action (create a mailbox, restore a snapshot, ...)Scope: services_writerunServiceToolActionOpenAPI for this operation
Body fields are the tool's own fields (see the tool data and the per-module table in the guide). Actions flagged confirm in the discovery answer need "confirm": true.
Parameters
Field
in
Type
Description
idrequired
path
integer
toolrequired
path
string
actionrequired
path
string
Request body
Field
Type
Description
confirm
boolean
Responses
202
Accepted — data: object
404
Not found — also returned for objects owned by someone else
409
State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422
Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
Customer-defined nickname and colour tags of one of your services (any product line). A service without a label answers "nickname": null and "tags": []. Labels are private to the service owner; after a transfer the old owner's label is not shown.
Parameters
Field
in
Type
Description
idrequired
path
integer
Service id
Responses
200
Label — data: ServiceLabel
401
Missing, invalid or revoked key
403
Key lacks the scope, IP not allowed, or feature disabled
404
Not found — also returned for objects owned by someone else
429
Too many requests (rate_limited); see the Retry-After and X-RateLimit-* headers
# resource gyro_service_label: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/service_label
# Give any service a nickname and colour tags. The nickname becomes the service title in the
# client area; the product name and service number stay below it.
resource "gyro_server" "api" {
plan = "standart-2-4"
region = "tr-ist-1"
image = "ubuntu-24.04"
confirm_order = true
}
resource "gyro_service_label" "api" {
service_id = tonumber(gyro_server.api.id)
nickname = "api-gateway"
tags = [
{ name = "production", color = "green" },
{ name = "api" }, # colour omitted: a stable default is chosen by the API
]
}
# An existing service (e.g. a container environment) by its number.
resource "gyro_service_label" "ecs" {
service_id = 12345
nickname = "gyro-ecs-1"
tags = [{ name = "staging", color = "orange" }]
}
import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/services/12345/label", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/services/12345/label", {
method: "GET",
headers: {
"Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
},
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);
Set the nickname and/or tags of a serviceScope: services_writeupdateServiceLabelOpenAPI for this operation
Send nickname, tags or both; a field that is not sent stays unchanged. nickname "" or null clears it; tags replaces all tags and [] clears them. A tag is "name" or {"name", "color"}; an unknown or missing colour gets a stable default. Duplicate names (case-insensitive) are merged. Limit: 30 label writes per minute per key (429 rate_limited). Sub-account keys need the label:edit action. Errors: 422 nothing_to_update, invalid_nickname, invalid_tags; 404 service_not_found (also for services of other accounts) or feature_unavailable.
Parameters
Field
in
Type
Description
idrequired
path
integer
Service id
Request body
Field
Type
Description
nickname
string | null
"" or null clears the nickname. No control characters.
tags
array | null
Replaces all tags; [] or null clears them. Item: a tag name, or {"name", "color"} (CLI: use --data for colours).
Responses
200
Saved label — data: ServiceLabel
401
Missing, invalid or revoked key
403
Key lacks the scope, IP not allowed, or feature disabled
404
Not found — also returned for objects owned by someone else
422
Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
429
Too many requests (rate_limited); see the Retry-After and X-RateLimit-* headers
# resource gyro_service_label: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/resources/service_label
# Give any service a nickname and colour tags. The nickname becomes the service title in the
# client area; the product name and service number stay below it.
resource "gyro_server" "api" {
plan = "standart-2-4"
region = "tr-ist-1"
image = "ubuntu-24.04"
confirm_order = true
}
resource "gyro_service_label" "api" {
service_id = tonumber(gyro_server.api.id)
nickname = "api-gateway"
tags = [
{ name = "production", color = "green" },
{ name = "api" }, # colour omitted: a stable default is chosen by the API
]
}
# An existing service (e.g. a container environment) by its number.
resource "gyro_service_label" "ecs" {
service_id = 12345
nickname = "gyro-ecs-1"
tags = [{ name = "staging", color = "orange" }]
}