Docs API başvurusu Hesap, anahtarlar ve fatura Fatura ve bakiye Fatura ve bakiye Faturalar ve hesap bakiyesi (önerilen kapsamlarla salt okunur).
# GET /invoices Faturaları listele Kapsam: Invoices/GetInvoices listInvoices Bu işlemin OpenAPI parçası
Parametreler Alan in Tür Açıklama statusquery string unpaid, paid, cancelled, refund pagequery integer limitquery integer
Yanıtlar 200 Invoices — data: array<Invoice> 401 Missing, invalid or revoked key
Örnekler curl CLI Python JavaScript
Kopyala curl -s 'https://www.gyrohosting.com/api/v1/client/invoices' \
-H "Authorization: Bearer $GYRO_TOKEN"Kopyala import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/invoices", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])Kopyala const res = await fetch("https://www.gyrohosting.com/api/v1/client/invoices", {
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 /invoices/{id} Faturayı getir Kapsam: Invoices/GetInvoice getInvoice Bu işlemin OpenAPI parçası
Parametreler Alan in Tür Açıklama id zorunlu path integer
Yanıtlar 200 Invoice with lines — data: Invoice 404 Not found — also returned for objects owned by someone else
Örnekler curl CLI Python JavaScript
Kopyala curl -s 'https://www.gyrohosting.com/api/v1/client/invoices/12345' \
-H "Authorization: Bearer $GYRO_TOKEN"Kopyala gyro invoice get 12345Kopyala import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/invoices/12345", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])Kopyala const res = await fetch("https://www.gyrohosting.com/api/v1/client/invoices/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}`);# GET /balance Hesap bakiyesi Kapsam: Balance/GetBalance getBalance Bu işlemin OpenAPI parçası
Yanıtlar 200 Balance — data: object 401 Missing, invalid or revoked key
Örnekler curl CLI Python JavaScript
Kopyala curl -s 'https://www.gyrohosting.com/api/v1/client/balance' \
-H "Authorization: Bearer $GYRO_TOKEN"Kopyala import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/balance", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])Kopyala const res = await fetch("https://www.gyrohosting.com/api/v1/client/balance", {
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 /balance/transactions Bakiye hareketleri Kapsam: Balance/GetBalanceTransactions listBalanceTransactions Bu işlemin OpenAPI parçası
Parametreler Alan in Tür Açıklama pagequery integer limitquery integer
Yanıtlar 200 Ledger entries — data: array<object> 401 Missing, invalid or revoked key
Örnekler curl CLI Python JavaScript
Kopyala curl -s 'https://www.gyrohosting.com/api/v1/client/balance/transactions' \
-H "Authorization: Bearer $GYRO_TOKEN"Kopyala gyro balance transaction listKopyala import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/balance/transactions", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])Kopyala const res = await fetch("https://www.gyrohosting.com/api/v1/client/balance/transactions", {
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}`);# POST /cloud/invoices/{id}/pay Faturayı hesap bakiyesinden öde Kapsam: billing_pay payInvoiceFromBalance Bu işlemin OpenAPI parçası
Yalnız bakiye (kart asla). "confirm": true ve Idempotency-Key başlığı zorunlu.
Parametreler Alan in Tür Açıklama id zorunlu path integer Idempotency-Key zorunlu header string Unique per logical request (e.g. a UUID). Replays within 24 hours return the stored answer.
İstek gövdesi Alan Tür Açıklama confirm zorunlu boolean = true
Yanıtlar 200 Paid — data: object 400 Malformed request (e.g. missing Idempotency-Key) 402 Account balance does not cover the order (insufficient_balance) 404 Not found — also returned for objects owned by someone else 422 Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
Örnekler curl CLI Python JavaScript
Kopyala curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/invoices/12345/pay' \
-H "Authorization: Bearer $GYRO_TOKEN" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"confirm": true}'Kopyala gyro invoice pay 12345 --help # tüm seçeneklerKopyala import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
h["Idempotency-Key"] = str(uuid.uuid4())
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/invoices/12345/pay", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])Kopyala const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/invoices/12345/pay", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);# GET /cloud/invoices/{id}/pdf Fatura PDF (JSON içinde base64) Kapsam: billing_read getInvoicePdf Bu işlemin OpenAPI parçası
Parametreler Alan in Tür Açıklama id zorunlu path integer
Yanıtlar 200 PDF — data: object 404 Not found — also returned for objects owned by someone else
Örnekler curl CLI Python JavaScript
Kopyala curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/invoices/12345/pdf' \
-H "Authorization: Bearer $GYRO_TOKEN"Kopyala gyro invoice pdf get 12345Kopyala import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/invoices/12345/pdf", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])Kopyala const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/invoices/12345/pdf", {
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}`);# POST /cloud/balance/top-up Bakiye yükleme faturası oluştur, ödeme linkini al Kapsam: billing_pay balanceTopUp Bu işlemin OpenAPI parçası
İstek gövdesi Alan Tür Açıklama amount zorunlu number
Yanıtlar 201 Invoice + pay_url — data: object 403 Key lacks the scope, IP not allowed, or feature disabled 422 Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
Örnekler curl CLI Python JavaScript
Kopyala curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/balance/top-up' \
-H "Authorization: Bearer $GYRO_TOKEN" \
-H "Content-Type: application/json" \
-d '{"amount": 1.0}'Kopyala gyro balance top-up --help # tüm seçeneklerKopyala import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/balance/top-up", headers=h, json={"amount": 1.0}, timeout=60)
r.raise_for_status()
print(r.json()["data"])Kopyala const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/balance/top-up", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({"amount": 1.0}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);# POST /invoices/{id}/pay Faturayı Ödeme Kapsam: Invoices/PayInvoice corePayInvoice Bu işlemin OpenAPI parçası
Para harcar / fatura oluşturur. Para kuralları (AK-40): gövdede "confirm": true, Idempotency-Key başlığı, yalnız bakiye (kayıtlı kart yok), hesap başına günlük ücretli işlem sınırı (varsayılan 50, hesap/bayi bazında değiştirilebilir, 00:00 TR'de sıfırlanır). Açık bir faturayı bakiyeyle ya da kayıtlı kartla kapatır. — bakiye ya da kayıtlı kart
Parametreler Alan in Tür Açıklama id zorunlu path integer Idempotency-Key zorunlu header string
İstek gövdesi Alan Tür Açıklama payment zorunlu object paymentÖdeme kaynağı. method zorunlu string Ödeme yolu: hesap bakiyesi ya da kayıtlı kart. card_idinteger Çekilecek kartın numarası. Verilmezse hesabın varsayılan kartı çekilir.
Yanıtlar 200 Success — data: object 401 Missing, invalid or revoked key 403 Key lacks the scope, IP not allowed, or feature disabled 404 not_found 422 balance_not_allowed, card_expired, card_not_chargeable, insufficient_balance, invoice_not_payable, no_stored_card, payment_method_invalid, subscription_collects
Örnekler curl CLI Python JavaScript
Kopyala curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/invoices/12345/pay' \
-H "Authorization: Bearer $GYRO_TOKEN" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"payment": {}, "method": "string", "card_id": 1}'Kopyala gyro core invoice pay 12345 --help # tüm seçeneklerKopyala import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
h["Idempotency-Key"] = str(uuid.uuid4())
r = requests.post("https://www.gyrohosting.com/api/v1/client/invoices/12345/pay", headers=h, json={"payment": {}, "method": "string", "card_id": 1}, timeout=60)
r.raise_for_status()
print(r.json()["data"])Kopyala const res = await fetch("https://www.gyrohosting.com/api/v1/client/invoices/12345/pay", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({"payment": {}, "method": "string", "card_id": 1}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);# POST /invoices/{id}/coupon Faturaya Kupon Uygulama Kapsam: Invoices/ApplyInvoiceCoupon coreApplyInvoiceCoupon Bu işlemin OpenAPI parçası
Açık bir faturaya kupon uygular ve belgeyi yeniden fiyatlar. — belge başına tek kupon
Parametreler Alan in Tür Açıklama id zorunlu path integer
İstek gövdesi Alan Tür Açıklama code zorunlu string Kupon kodu.
Yanıtlar 200 Success — data: object 401 Missing, invalid or revoked key 403 Key lacks the scope, IP not allowed, or feature disabled 404 not_found 422 coupon_code_required, coupon_invalid, coupon_not_invoice, coupon_rejected, coupon_scope, coupon_used, invoice_not_payable
Örnekler curl CLI Python JavaScript
Kopyala curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/invoices/12345/coupon' \
-H "Authorization: Bearer $GYRO_TOKEN" \
-H "Content-Type: application/json" \
-d '{"code": "string"}'Kopyala gyro invoice coupon 12345 --help # tüm seçeneklerKopyala import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/invoices/12345/coupon", headers=h, json={"code": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])Kopyala const res = await fetch("https://www.gyrohosting.com/api/v1/client/invoices/12345/coupon", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({"code": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);# PATCH /balance/settings Cüzdan Ayarlarını Değiştirme Kapsam: Balance/UpdateBalanceSettings coreUpdateBalanceSettings Bu işlemin OpenAPI parçası
Otomatik ödemeyi ve düşük bakiye uyarısını ayarlar. — faturaları etkiler
İstek gövdesi Alan Tür Açıklama auto_pay_from_balanceboolean Yenilemeler cüzdandan tahsil edilsin mi. Bu değiştiğinde açık yenileme faturaları yeni tercihe göre yeniden ele alınır. backup_card_idinteger Cüzdan yetmediğinde çekilecek kart. Sıfır göndermek kart zincirini tümüyle kaldırır. alertobject Uyarı bloğu. Açık ve eşik alanlarını taşır; açarken pozitif bir eşik gerekir. alert_recipientsstring Uyarıyı alacak fatura adresi numaraları. Liste yerine geçer; hesabın sahibi burada yer almaz, her zaman alır.
Yanıtlar 200 Success — data: object 401 Missing, invalid or revoked key 403 Key lacks the scope, IP not allowed, or feature disabled 404 not_found 422 alert_invalid, auto_pay_invalid, card_expired, nothing_to_update
Örnekler curl CLI Python JavaScript
Kopyala curl -s -X PATCH 'https://www.gyrohosting.com/api/v1/client/balance/settings' \
-H "Authorization: Bearer $GYRO_TOKEN" \
-H "Content-Type: application/json" \
-d '{"auto_pay_from_balance": true, "backup_card_id": 1, "alert": {}, "alert_recipients": "string"}'Kopyala gyro balance setting update --help # tüm seçeneklerKopyala import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.patch("https://www.gyrohosting.com/api/v1/client/balance/settings", headers=h, json={"auto_pay_from_balance": True, "backup_card_id": 1, "alert": {}, "alert_recipients": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])Kopyala const res = await fetch("https://www.gyrohosting.com/api/v1/client/balance/settings", {
method: "PATCH",
headers: {
"Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({"auto_pay_from_balance": true, "backup_card_id": 1, "alert": {}, "alert_recipients": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);# GET /cloud/billing/balance getPrepaidBalance Kapsam: billing_read getPrepaidBalance Bu işlemin OpenAPI parçası
Yanıtlar 200 OK — data: PrepaidBalance 403 insufficient_scope | subkey_forbidden
Örnekler curl CLI Python JavaScript
Kopyala curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/billing/balance' \
-H "Authorization: Bearer $GYRO_TOKEN"Kopyala gyro api request GET /cloud/billing/balanceKopyala import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/billing/balance", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])Kopyala const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/billing/balance", {
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/billing/usage listPrepaidUsage Kapsam: billing_read listPrepaidUsage Bu işlemin OpenAPI parçası
Parametreler Alan in Tür Açıklama fromquery string first day (default: 1st of this month) toquery string last day (default: today); at most 400 days service_idquery integer statusquery string (ucretli, tavan, kismi, odenmedi, ucretsiz) granularityquery string (hour, day, month) formatquery string (json, csv) csv = base64 file in data.content_base64 (max 5000 rows) pagequery integer limitquery integer
Yanıtlar 200 OK (meta = total, page, limit, next_page) — data: object
Örnekler curl CLI Python JavaScript
Kopyala curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/billing/usage' \
-H "Authorization: Bearer $GYRO_TOKEN"Kopyala gyro api request GET /cloud/billing/usageKopyala import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/billing/usage", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])Kopyala const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/billing/usage", {
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/billing/statement/{month} getPrepaidStatement Kapsam: billing_read getPrepaidStatement Bu işlemin OpenAPI parçası
Parametreler Alan in Tür Açıklama month zorunlu path string formatquery string (json, pdf, csv) langquery string (tr, en)
Yanıtlar 200 json: totals/by_service/by_day; pdf|csv: filename, content_type, content_base64 422 invalid_month
Örnekler curl CLI Python JavaScript
Kopyala curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/billing/statement/1' \
-H "Authorization: Bearer $GYRO_TOKEN"Kopyala gyro api request GET /cloud/billing/statement/1Kopyala import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/billing/statement/1", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])Kopyala const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/billing/statement/1", {
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}`);# POST /cloud/billing/estimate estimatePrepaidCost Kapsam: billing_read estimatePrepaidCost Bu işlemin OpenAPI parçası
Sunucu ve ayrılmış düğüm planları: saatlik = aylık / 672, aylık fiyatla sınırlı (capped: true). Sunucusuz kapsayıcı (type: serverless, cpu_m, memory_mi, count, hours): ölçülen kullanıma göre, aylık tavan yok (capped: false), monthly_cap = tam ay (730 saat) çalışma, total = hours x saatlik (billed_hours = hours).
İstek gövdesi Alan Tür Açıklama itemsarray<object> planstring single-item shortcut countinteger cpu_minteger serverless single-item shortcut memory_miinteger hoursinteger typestring (serverless)
Yanıtlar 200 items[], hourly, daily, monthly_cap, eur_rate, balance, hours_covered, order_requires (first 24 h), can_order 422 unknown_plan | region_not_prepaid | too_many_items | invalid_cpu | invalid_memory | serverless_not_available
Örnekler curl CLI Terraform Python JavaScript
Kopyala curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/billing/estimate' \
-H "Authorization: Bearer $GYRO_TOKEN" \
-H "Content-Type: application/json" \
-d '{"items": [{"plan": "standart-2-4", "product_id": 1, "region": "tr-ist-1", "count": 1, "type": "serverless", "cpu_m": 250, "memory_mi": 512, "hours": 1}], "plan": "string", "count": 1, "cpu_m": 1, "memory_mi": 1, "hours": 1, "type": "serverless"}'Kopyala gyro api request POST /cloud/billing/estimate --data '{"items": [{"plan": "standart-2-4", "product_id": 1, "region": "tr-ist-1", "count": 1, "type": "serverless", "cpu_m": 250, "memory_mi": 512, "hours": 1}], "plan": "string", "count": 1, "cpu_m": 1, "memory_mi": 1, "hours": 1, "type": "serverless"}'Kopyala # veri kaynağı gyro_prepaid_estimate: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/data-sources/prepaid_estimate
# What would two 0.5 vCPU / 1 GB serverless containers and one Istanbul server cost?
data "gyro_prepaid_estimate" "stack" {
items = [
{ cpu_m = 500, memory_mi = 1024, count = 2, hours = 730 },
{ plan = "standart-2-4" },
]
}
output "monthly" {
value = "${data.gyro_prepaid_estimate.stack.monthly} ${data.gyro_prepaid_estimate.stack.currency}"
}Kopyala import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/billing/estimate", headers=h, json={"items": [{"plan": "standart-2-4", "product_id": 1, "region": "tr-ist-1", "count": 1, "type": "serverless", "cpu_m": 250, "memory_mi": 512, "hours": 1}], "plan": "string", "count": 1, "cpu_m": 1, "memory_mi": 1, "hours": 1, "type": "serverless"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])Kopyala const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/billing/estimate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({"items": [{"plan": "standart-2-4", "product_id": 1, "region": "tr-ist-1", "count": 1, "type": "serverless", "cpu_m": 250, "memory_mi": 512, "hours": 1}], "plan": "string", "count": 1, "cpu_m": 1, "memory_mi": 1, "hours": 1, "type": "serverless"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);# GET /cloud/billing/topup-url getPrepaidTopupUrl Kapsam: billing_read getPrepaidTopupUrl Bu işlemin OpenAPI parçası
Yanıtlar Örnekler curl CLI Python JavaScript
Kopyala curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/billing/topup-url' \
-H "Authorization: Bearer $GYRO_TOKEN"Kopyala gyro billing topup-url getKopyala import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/billing/topup-url", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])Kopyala const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/billing/topup-url", {
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/billing/container-sizes Sunucusuz kapsayıcı boyutları (vCPU / bellek) ve fiyatları Kapsam: billing_read getContainerSizes Bu işlemin OpenAPI parçası
Gyro Kapsayıcı Sunucusuz her çalışan kopyayı saatlik ücretlendirir: cpu_m/1000 x vCPU-saat + memory_mi/1024 x GB-saat, ön ödemeli bakiyeden, aylık tavan yok. Sunucusuz ortamda POST /cloud/containers/{id}/services yalnız burada listelenen cpu_m / memory_mi çiftlerini kabul eder (422 invalid_cpu / invalid_memory).
Yanıtlar 200 Sizes — data: ContainerSizes 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
Örnekler curl CLI Terraform Python JavaScript
Kopyala curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/billing/container-sizes' \
-H "Authorization: Bearer $GYRO_TOKEN"Kopyala gyro container sizesKopyala # veri kaynağı gyro_container_sizes: https://registry.terraform.io/providers/gyro-hosting/gyro/latest/docs/data-sources/container_sizes
# Serverless container sizes (vCPU / memory pairs) and prices
data "gyro_container_sizes" "all" {}
output "smallest" {
value = {
cpu_m = data.gyro_container_sizes.all.sizes[0].cpu_m
memory_mi = data.gyro_container_sizes.all.sizes[0].memory_mi[0]
eur_hour = data.gyro_container_sizes.all.sizes[0].hourly_eur_min
}
}Kopyala import os, uuid, requests
h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/billing/container-sizes", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])Kopyala const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/billing/container-sizes", {
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}`);