Catalog
Orderable products, locations and operating system images.
#GET/cloud/products
List orderable cloud server productsScope: cloud_readlistProductsOpenAPI for this operation
Prices are in the product currency, VAT excluded. available=false means temporarily out of stock.
Parameters
| Field | in | Type | Description |
|---|---|---|---|
region | query | string | Filter by region (see GET /cloud/locations). A city name (falkenstein) also works. |
plan | query | string | Filter by plan name |
location | query | string | Deprecated alias of region (legacy location code) |
server_type | query | string | Deprecated alias of plan (legacy type code) |
page | query | integer | |
limit | query | integer |
Responses
| 200 | Products — data: array<Product> |
| 401 | Missing, invalid or revoked key |
| 422 | Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...) |
Examples
curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/products' \
-H "Authorization: Bearer $GYRO_TOKEN"gyro plan list# data source gyro_products: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/data-sources/products
data "gyro_products" "frankfurt_area" {
region = "eu-de-1"
available_only = true
}
output "plans" {
value = [for p in data.gyro_products.frankfurt_area.products : "${p.plan} (${p.name}): ${p.monthly_price} ${p.currency}"]
}import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/products", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/products", {
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}`);#GET/cloud/locations
List locations with orderable productsScope: cloud_readlistLocationsOpenAPI for this operation
Responses
| 200 | Locations — data: array<Location> |
| 401 | Missing, invalid or revoked key |
Examples
curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/locations' \
-H "Authorization: Bearer $GYRO_TOKEN"gyro location list# data source gyro_locations: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/data-sources/locations
data "gyro_locations" "all" {}
output "regions" {
value = { for l in data.gyro_locations.all.locations : l.region => "${l.city}, ${l.country}" }
}import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/locations", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/locations", {
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}`);#GET/cloud/images
List operating system imagesScope: cloud_readlistImagesOpenAPI for this operation
Parameters
| Field | in | Type | Description |
|---|---|---|---|
region | query | string | Only images offered in this region (e.g. tr-ist-1). Without it: the images of the global cloud catalogue (unchanged). |
product_id | query | integer | Only the images offered on this product (implies its region). |
plan | query | string | With region: only the images of this plan in that region. |
Responses
| 200 | Images — data: array<Image> |
| 401 | Missing, invalid or revoked key |
| 422 | Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...) |
Examples
curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/images' \
-H "Authorization: Bearer $GYRO_TOKEN"gyro image list# data source gyro_images: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/data-sources/images
data "gyro_images" "example" {
}import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/images", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/images", {
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}`);#GET/products
List productsScope: Products/GetProductscoreGetProductsOpenAPI for this operation
List products.
Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/satistaki-urunler).
Parameters
| Field | in | Type | Description |
|---|---|---|---|
page | query | integer | Kaçıncı sayfa. |
limit | query | integer | Sayfa başına satır. En çok 100. |
type | query | string | Tek bir ürün türü. Bilinmeyen tür reddedilir ve geçerli liste yanıtın ayrıntısında gelir. |
category | query | integer | Kategori numarası. Ana kategoriyle de ek atamalarla da eşleşir. |
search | query | string | Ürün başlığında arar. |
Responses
| 200 | Success — data: array<object> |
| 401 | Missing, invalid or revoked key |
| 403 | Key lacks the scope, IP not allowed, or feature disabled |
| 422 | type_invalid |
Examples
curl -s 'https://www.gyrohosting.com/api/v1/client/products' \
-H "Authorization: Bearer $GYRO_TOKEN"gyro core product listimport os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/products", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])const res = await fetch("https://www.gyrohosting.com/api/v1/client/products", {
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}`);#GET/products/categories
List product categoriesScope: Products/GetProductCategoriescoreGetProductCategoriesOpenAPI for this operation
List product categories.
Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/satistaki-urunler).
Parameters
| Field | in | Type | Description |
|---|---|---|---|
type | query | string | Yalnız bu türün kategorileri. Bilinmeyen değer boş liste verir, hata değil. |
Responses
| 200 | Success — data: array<object> |
| 401 | Missing, invalid or revoked key |
| 403 | Key lacks the scope, IP not allowed, or feature disabled |
Examples
curl -s 'https://www.gyrohosting.com/api/v1/client/products/categories' \
-H "Authorization: Bearer $GYRO_TOKEN"gyro product category listimport os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/products/categories", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])const res = await fetch("https://www.gyrohosting.com/api/v1/client/products/categories", {
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}`);#GET/products/{id}
Get product (path: {id})Scope: Products/GetProductcoreGetProductOpenAPI for this operation
Get product (path: {id}).
Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/satistaki-urunler).
Parameters
| Field | in | Type | Description |
|---|---|---|---|
id required | path | integer |
Responses
| 200 | Success — data: object |
| 401 | Missing, invalid or revoked key |
| 403 | Key lacks the scope, IP not allowed, or feature disabled |
| 404 | not_found |
Examples
curl -s 'https://www.gyrohosting.com/api/v1/client/products/12345' \
-H "Authorization: Bearer $GYRO_TOKEN"gyro product get 12345import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/products/12345", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])const res = await fetch("https://www.gyrohosting.com/api/v1/client/products/12345", {
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}`);