English

Gyro Public API v2.5.0

Gyro bulut sunucularınızı, SSH anahtarlarınızı ve faturalarınızı programla yönetin.

Gyro Public API, müşteri panelinde yaptığınız her işi otomatikleştirmenizi sağlar: bulut sunucu siparişi ve yönetimi, SSH anahtarları, fatura ve bakiye okuma. Resmi Terraform sağlayıcısı (gyro-hosting/gyro) ve gyroctl bu API'yi kullanır.

  • Taban adres https://www.gyrohosting.com/api/v1/client
  • Kimlik Authorization: Bearer wck_... (anahtarı Müşteri paneli → sağ üstteki hesap menüsü → API Kimlik Bilgileri bölümünden oluşturun)
  • Biçim JSON gönderilir, JSON döner. Başarılı yanıt {"data": ..., "meta": ...}, hata {"error": {"code", "message", "details"}} biçimindedir.

v2: genel hizmet köprüsüyle tüm ürün hatları (/cloud/services), webhook'lar, alt hesap anahtarları, bayi uç-müşterileri ve aynı anahtarla çekirdek müşteri API'sinin tamamı (alan adı, DNS, destek, sipariş, fatura, hesap).

OpenAPI 3.1 tanımını indir · JSON

Başlarken

1. Müşteri panelinde sağ üstteki hesap menüsünden API Kimlik Bilgileri sayfasını açıp bir anahtar oluşturun. İhtiyacınız olan kapsamları seçin (cloud_read ile başlayın); sabit makinelerden çağıracaksanız IP adreslerini ekleyin. Anahtar (wck_…) yalnız bir kez gösterilir — bir sır yöneticisinde saklayın.

2. Anahtarı bearer token olarak gönderin:

curl -s https://www.gyrohosting.com/api/v1/client/cloud/servers \
  -H "Authorization: Bearer $GYRO_TOKEN"

3. Altyapıyı kodla yönetmek mi istiyorsunuz? Terraform sağlayıcısını kullanın (Terraform).

Kimlik doğrulama ve kapsamlar

Her istek Authorization: Bearer wck_… (veya X-Api-Key) taşır. Anahtar hesabınıza aittir ve yalnız sizin nesnelerinizi görür; başkasına ait her şey, hiç olmayan bir kimlikle aynı biçimde 404 döner.

Kapsamİzin verdiği
Module:Addons/GyroAPI/cloud_read/cloud altındaki tüm GET uçları
…/cloud_writeGüç, yeniden kurulum, snapshot, rDNS, ad değiştirme, SSH anahtarları
…/cloud_orderPara harcar: sunucu oluşturma (bakiyeden ödenir)
…/cloud_deleteSunucu iptali / silme
Invoices/GetInvoices, Invoices/GetInvoice, Balance/GetBalanceFatura ve bakiye okuma

CI hatlarına gereken en dar kapsamı ve IP kısıtını verin. Anahtarı panelden istediğiniz an iptal edebilirsiniz.

Yanıtlar ve hatalar

Başarılı: {"data": …, "meta": {…}}. Hata: {"error": {"code": "server_not_found", "message": "…", "details": {…}}}. Mesaja değil code alanına göre karar verin (mesajlar hesap dilinizdedir).

HTTPSık kodlar
400idempotency_key_required, bad_request
401missing_token, invalid_token, key_revoked
402insufficient_balance
403insufficient_scope, ip_not_allowed, orders_disabled
404server_not_found, ssh_key_not_found, snapshot_not_found, endpoint_not_found
409server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight
422confirm_required, invalid_image, invalid_hostname, product_not_orderable, tool_action_failed
429rate_limited (Retry-After başlığına bakın)

Para güvenliği: deneme, onay, idempotency

Sunucu oluşturmak bir sipariş verir ve hesap bakiyenizden öder — kayıtlı karttan asla çekmez.

  1. Fiyat teklifi alın: "dry_run": true. Hiçbir şey oluşturulmaz.
  2. "confirm": true ve Idempotency-Key başlığıyla (her mantıksal sipariş için bir UUID) sipariş verin.
  3. Ağ hatası mı oldu? Aynı anahtar ve gövdeyle tekrar deneyin: ikinci sunucu değil, ilk yanıt döner (Idempotency-Replayed: true).

Yıkıcı işlemler (rebuild, reset, snapshot'tan dönüş, silme) de confirm ister. Tek seferlik root parolası yalnız Idempotency-Key olmayan isteklerde döner; tekrar için saklanan yanıtlara sır yazılmaz.

Eşzamansız işler ve sorgulama

Kurulum, güç ve imaj işlemleri arka planda çalışır. GET /cloud/servers/{id} ile sorgulayın: status active ve live.power_state running olduğunda sunucu hazırdır; live.locked true iken yazma istekleri 409 server_locked döner. Canlı durum 15 saniye önbelleklidir — 5-10 saniyede bir sorgulamak yeterlidir.

Sayfalama ve hız sınırı

Listeler page ve limit (en çok 100) alır; meta.total ve meta.next_page (0 = son sayfa) döner. Anahtar başına varsayılan sınır dakikada 60 istektir; her yanıtta X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset başlıkları vardır. Sınırın çok üzerine çıkan anahtar geçici olarak kilitlenir. Ağır sunucu işlemleri ayrıca sunucu başına günlük sınırlıdır.

Tüm ürünler tek köprüden

Tüm ürün hatları — bulut ve VDS sunucular, fiziksel sunucular, kurumsal mail, izleme, depolama, lisanslar — /cloud/services üzerinden erişilebilir. Müşteri panelinde bir hizmette tıklayabildiğiniz her şey bir araçtır (ya da modül metodu) ve burada da çalışır:

# 123 numaralı hizmette neler yapabilirim?
curl -s https://www.gyrohosting.com/api/v1/client/cloud/services/123/tools -H "Authorization: Bearer $GYRO_TOKEN"
# posta kutularını listele, sonra bir tane oluştur
curl -s .../cloud/services/123/tools/mailboxes -H "Authorization: Bearer $GYRO_TOKEN"
curl -s -X POST .../cloud/services/123/tools/mailboxes/create -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" -d '{"email":"[email protected]","password":"S3cure-pass!","quota":2048}'

Keşif yanıtı her eylemi read, confirm ("confirm": true gönderin) ve secret (tek seferlik değer; Idempotency-Key gönderirseniz yanıta konmaz) ile işaretler. Alan adı, DNS, destek, sipariş ve faturalar aşağıdaki çekirdek uçlarla aynı anahtarla yönetilir.

Bayiler

Bayi hesapları /cloud/reseller/* uçlarını kullanır: kendi external_ref'inizle uç-müşteri oluşturun, onlar için bakiyenizden ve bayi indiriminizle sunucu sipariş edin (end_customer_id), mevcut hizmetleri atayın, yalnız o müşterinin hizmetlerini gören ve fatura uçlarına erişemeyen uç-müşteri anahtarları üretin, müşteri başına kullanım raporu alın ve beyaz etiketi açın (adlarda, mesajlarda ve webhook başlıklarında marka yok).

curl -s -X POST .../cloud/reseller/customers -H "Authorization: Bearer $BAYI_TOKEN" -H "Content-Type: application/json" \
  -d '{"name":"Acme Ltd","external_ref":"acme-001","allow_order":true}'
curl -s -X POST .../cloud/reseller/customers/7/keys -H "Authorization: Bearer $BAYI_TOKEN" -H "Content-Type: application/json" \
  -d '{"name":"acme-ci","scopes":["cloud_read","cloud_write","services_read","services_write"],"rate_limit":60}'

Webhook'lar

POST /cloud/webhooks ile oluşturun; 64 karakterlik gizli anahtar bir kez gösterilir. Her teslimi doğrulayın:

import hmac, hashlib, time
def valid(secret, ts, body, signature):
    if abs(time.time() - int(ts)) > 300: return False
    mac = hmac.new(secret.encode(), (ts + "." + body).encode(), hashlib.sha256).hexdigest()
    return hmac.compare_digest("sha256=" + mac, signature)

Başlıklar: X-Gyro-Event, X-Gyro-Delivery, X-Gyro-Timestamp, X-Gyro-Signature. 4 saniye içinde 2xx dönün.

Terraform

terraform {
  required_providers {
    gyro = { source = "gyro-hosting/gyro", version = "~> 0.3" }
  }
}
provider "gyro" {}            # GYRO_TOKEN ortam değişkenini okur

resource "gyro_ssh_key" "me" {
  name       = "laptop"
  public_key = file("~/.ssh/id_ed25519.pub")
}

resource "gyro_server" "web" {
  plan          = "standart-2-4"   # planlar: 'gyro plan list' ya da data.gyro_products
  region        = "eu-de-1"        # bölgeler: data.gyro_locations
  image         = "debian-12"
  hostname      = "web-1.example.com"
  ssh_key_ids   = [tonumber(gyro_ssh_key.me.id)]
  confirm_order = true             # sunucu oluşturmak hesap bakiyesinden ödeme yapar
}

Sağlayıcı 0.3 ve sonrası. Eski sürümlerdeki server_type/location hâlâ çalışır ama kullanımdan kalkıyor; yükseltme mevcut sunucuları yeniden oluşturmaz.

Veri kaynakları: gyro_products, gyro_locations, gyro_images. terraform destroy sunucuyu hemen iptal eder: faturalama durur, makine silinir (bunun yerine iptal talebi için delete_immediately = false).

Sunucular

Sahip olduğunuz bulut sunucular. Oluşturma, hesap bakiyesinden ödenen bir sipariştir.

GET/cloud/servers

Bulut sunucuları listeleKapsam: cloud_read

Parametreler

AlaninTürAçıklama
statusquerystring (active, waiting, inprocess, suspended, cancelled)
pagequeryinteger
limitqueryinteger

Yanıtlar

200Servers (without live state) — data: array<Server>
401Missing, invalid or revoked key

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/servers' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/servers", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers", {
  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/servers

Bulut sunucu oluştur (sipariş)Kapsam: cloud_order

Sipariş oluşturur ve hesap bakiyenizden öder (kayıtlı karttan asla çekmez). Güvenlik kuralları:

  • önce "dry_run": true ile fiyat teklifi alın; hiçbir şey oluşturulmaz;
  • gerçek sipariş için "confirm": true ve Idempotency-Key başlığı zorunludur — aynı anahtar ve gövdeyle tekrar denemek ikinci sipariş yerine ilk yanıtı döndürür (Idempotency-Replayed: true);
  • yönetici hesap başına sunucu sınırı koyabilir (409 server_limit).

Kurulum eşzamansızdır (genellikle bir dakikadan kısa): status active ve live.power_state running olana kadar GET /cloud/servers/{id} ile sorgulayın.

Parametreler

AlaninTürAçıklama
Idempotency-Key zorunluheaderstringUnique per logical request (e.g. a UUID). Replays within 24 hours return the stored answer.

İstek gövdesi

AlanTürAçıklama
product_idintegerFrom GET /cloud/products (or give plan + region)
planstringPlan name from GET /cloud/products
regionstringRegion from GET /cloud/locations
server_typestringDeprecated alias of plan
locationstringDeprecated alias of region
cyclestring (monthly, quarterly, semiannually, annually)
imagestring
ssh_keysarray<integer>Ids from /cloud/ssh-keys (one key at creation in v1)
hostnamestring
user_datastringcloud-init user data
dry_runboolean
confirmbooleanMust be true to place a paid order
end_customer_idintegerReseller main key: assign the new server to this end-customer

Yanıtlar

200Dry-run quote (nothing created) — data: object
202Order placed and paid; the server is being provisioned — data: CreateServerResult
400Malformed request (e.g. missing Idempotency-Key)
401Missing, invalid or revoked key
402Account balance does not cover the order (insufficient_balance)
403Key lacks the scope, IP not allowed, or feature disabled
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/servers' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"product_id": 723, "cycle": "monthly", "image": "debian-12", "ssh_keys": [12], "hostname": "web-1.example.com", "confirm": true}'
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/servers", headers=h, json={"product_id": 723, "cycle": "monthly", "image": "debian-12", "ssh_keys": [12], "hostname": "web-1.example.com", "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
    "Idempotency-Key": crypto.randomUUID(),
  },
  body: JSON.stringify({"product_id": 723, "cycle": "monthly", "image": "debian-12", "ssh_keys": [12], "hostname": "web-1.example.com", "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/servers/{id}

Sunucuyu canlı durumuyla getirKapsam: cloud_read

live platformdan okunur (15 saniye önbellek) ve sunucu etkin değilken null olur.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (= service id in the client area)

Yanıtlar

200Server — data: ServerDetail
404Not found — also returned for objects owned by someone else

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/servers/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466", {
  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}`);

PATCH/cloud/servers/{id}

Sunucu adını değiştir veya otomatik yenilemeyi aç/kapatKapsam: cloud_write

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (= service id in the client area)

İstek gövdesi

AlanTürAçıklama
hostnamestringFully qualified host name (max 63 characters)
auto_renewboolean

Yanıtlar

200Updated server — data: ServerDetail
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X PATCH 'https://www.gyrohosting.com/api/v1/client/cloud/servers/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"hostname": "web-1.example.com", "auto_renew": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.patch("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466", headers=h, json={"hostname": "web-1.example.com", "auto_renew": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"hostname": "web-1.example.com", "auto_renew": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/cloud/servers/{id}

Sunucuyu sil (iptal)Kapsam: cloud_delete

confirm=true (sorgu veya gövde) zorunludur. İki biçim:

  • varsayılan: iptal talebi açar (status: cancellation_requested); talep panel otomasyonuyla işlenene kadar (günlük, mesai saatleri) sunucu çalışır ve faturalama sürer;
  • immediate=true: hemen iptal eder (status: cancelling, yaklaşık bir dakikada cancelled) - faturalama durur, sunucu hemen kapanır, bekleme süresi (3 gün) sonunda verisiyle silinir. Paneldeki onaylanmış "hemen iptal" ile aynı etki. Yönetici kapatabilir.

Tekrar çağırmak güvenlidir.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (= service id in the client area)
confirm zorunluqueryboolean
immediatequerybooleantrue = cancel now instead of filing a request

Yanıtlar

202Cancellation requested (default) or cancelled (immediate) — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/servers/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

Sunucu işlemleri

Güç, yeniden kurulum, parola ve kurtarma işlemleri. Eşzamansızdır; live.locked false olana kadar sunucuyu sorgulayın.

POST/cloud/servers/{id}/actions/{action}

Sunucu işlemi çalıştırKapsam: cloud_write

Ağır işlemler (yeniden kurulum, reset, kurtarma, snapshot'tan dönüş, parola sıfırlama) sunucu başına günlük sınırlıdır. Tek seferlik root_password yalnız istekte Idempotency-Key yoksa döner (tekrar için saklanan yanıtlara sır yazılmaz; bu durumda root_password_withheld: true görürsünüz).

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (= service id in the client area)
action zorunlupathstring (poweron, shutdown, reboot, poweroff, reset, rebuild, reset_password, enable_rescue, disable_rescue)shutdown = graceful (ACPI), poweroff = hard power cut, reset = hard reset (needs confirm), rebuild = reinstall from image (needs confirm, wipes the disk), reset_password / enable_rescue return a one-time root_password.

İstek gövdesi

AlanTürAçıklama
imagestringrebuild only: image slug from /cloud/images
confirmbooleanrequired for reset and rebuild

Yanıtlar

202Accepted — data: ActionResult
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/actions/reboot' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"image": "ubuntu-24.04", "confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/actions/reboot", headers=h, json={"image": "ubuntu-24.04", "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/actions/reboot", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"image": "ubuntu-24.04", "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/cloud/servers/{id}/console

Tek seferlik VNC konsol bileti alKapsam: cloud_write

Yaklaşık bir dakika geçerli websocket adresi ve parola döner. Idempotency-Key göndermeyin (400).

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (= service id in the client area)

Yanıtlar

201Ticket — data: object
400Malformed request (e.g. missing Idempotency-Key)
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/console' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/console", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/console", {
  method: "POST",
  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/bulk

Bir eylemi 50 sunucuya kadar toplu çalıştırKapsam: cloud_write

İstek gövdesi

AlanTürAçıklama
action zorunlustring (poweron, shutdown, reboot, poweroff, reset, rebuild, disable_rescue)
server_ids zorunluarray<integer>
imagestring
confirmboolean

Yanıtlar

207Per-target results — data: BulkResult
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/bulk' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"action": "poweron", "server_ids": [1], "image": "string", "confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/bulk", headers=h, json={"action": "poweron", "server_ids": [1], "image": "string", "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/bulk", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"action": "poweron", "server_ids": [1], "image": "string", "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

Snapshot ve yedekler

Sunucu diskinin anlık görüntüleri. Snapshot alanı GB cinsinden ek hizmet kotasıdır.

GET/cloud/servers/{id}/snapshots

Snapshot'ları ve kotayı listeleKapsam: cloud_read

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (= service id in the client area)

Yanıtlar

200Snapshots — data: object
404Not found — also returned for objects owned by someone else

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/snapshots' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/snapshots", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/snapshots", {
  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/servers/{id}/snapshots

Snapshot alKapsam: cloud_write

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (= service id in the client area)

Yanıtlar

202Snapshot is being created (poll the list until status is available) — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/snapshots' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/snapshots", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/snapshots", {
  method: "POST",
  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/servers/{id}/snapshots/{sid}/restore

Snapshot'ı sunucuya geri yükle (diski ezer)Kapsam: cloud_write

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (= service id in the client area)
sid zorunlupathinteger

İstek gövdesi

AlanTürAçıklama
confirm zorunluboolean = true

Yanıtlar

202Accepted
404Not found — also returned for objects owned by someone else
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/snapshots/123/restore' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/snapshots/123/restore", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/snapshots/123/restore", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/cloud/servers/{id}/snapshots/{sid}

Snapshot silKapsam: cloud_write

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (= service id in the client area)
sid zorunlupathinteger

Yanıtlar

202Accepted
404Not found — also returned for objects owned by someone else

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/snapshots/123' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/snapshots/123", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/snapshots/123", {
  method: "DELETE",
  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/servers/{id}/backups

Otomatik yedekleri listeleKapsam: cloud_read

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (= service id in the client area)

Yanıtlar

200Backups (enabled=false when the backup add-on is not active) — data: object
404Not found — also returned for objects owned by someone else

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/backups' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/backups", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/backups", {
  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/servers/{id}/backups

Elle yedek al (yedekleme ek hizmeti gerekir)Kapsam: cloud_write

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (= service id in the client area)

Yanıtlar

202Accepted
404Not found — also returned for objects owned by someone else
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/backups' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/backups", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/backups", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

Ağ

Sunucunun ters DNS kayıtları ve gelen trafik güvenlik duvarı.

GET/cloud/servers/{id}/rdns

Ters DNS kayıtlarını listeleKapsam: cloud_read

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (= service id in the client area)

Yanıtlar

200PTR records of the server's addresses — data: array<RdnsEntry>
404Not found — also returned for objects owned by someone else

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/rdns' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/rdns", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/rdns", {
  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}`);

PUT/cloud/servers/{id}/rdns

Bir adresin PTR kaydını ayarla (veya sıfırla)Kapsam: cloud_write

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (= service id in the client area)

İstek gövdesi

AlanTürAçıklama
ip zorunlustringAn address of this server (IPv6 addresses inside the server's /64 are allowed)
hostnamestringFQDN; empty string resets to the default

Yanıtlar

200Updated list — data: array<RdnsEntry>
404Not found — also returned for objects owned by someone else
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X PUT 'https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/rdns' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"ip": "string", "hostname": "string"}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.put("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/rdns", headers=h, json={"ip": "string", "hostname": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/rdns", {
  method: "PUT",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"ip": "string", "hostname": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/servers/{id}/firewall

Gelen trafik güvenlik duvarı kurallarıKapsam: cloud_read

v1'de salt okunur. Boş liste Gyro güvenlik duvarı uygulanmadığı (tüm gelen trafiğin sunucuya ulaştığı) anlamına gelir.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (= service id in the client area)

Yanıtlar

200Rules — data: array<FirewallRule>
404Not found — also returned for objects owned by someone else

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/firewall' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/firewall", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/firewall", {
  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/servers/{id}/firewall/rules

Gelen trafik kuralı ekleKapsam: cloud_write

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (= service id in the client area)

İstek gövdesi

AlanTürAçıklama
protocol zorunlustring (tcp, udp, icmp)
portstringN or N-M (empty = all ports)
source_ipsarray<string>CIDRs (default any)

Yanıtlar

201All rules after the change — data: array<FirewallRule>
404Not found — also returned for objects owned by someone else
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/firewall/rules' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"protocol": "tcp", "port": "22", "source_ips": ["203.0.113.0/24"]}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/firewall/rules", headers=h, json={"protocol": "tcp", "port": "22", "source_ips": ["203.0.113.0/24"]}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/firewall/rules", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"protocol": "tcp", "port": "22", "source_ips": ["203.0.113.0/24"]}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/cloud/servers/{id}/firewall/rules/{n}

Güvenlik duvarı kuralı sil (son kural confirm ister)Kapsam: cloud_write

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (= service id in the client area)
n zorunlupathinteger1-based position from GET /firewall
confirmqueryboolean

Yanıtlar

200Remaining rules — data: array<FirewallRule>
404Not found — also returned for objects owned by someone else
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/firewall/rules/1' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/firewall/rules/1", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/firewall/rules/1", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

İzleme

CPU, disk ve ağ ölçümleri ile sunucu işlem geçmişi.

GET/cloud/servers/{id}/metrics

CPU, disk ve ağ zaman serileriKapsam: cloud_read

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (= service id in the client area)
periodquerystring (24h, 7d, 30d)

Yanıtlar

200Metrics; each line is a list of [unix_time, value] — data: Metrics
404Not found — also returned for objects owned by someone else

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/metrics' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/metrics", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/metrics", {
  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/servers/{id}/activity

Sunucudaki son platform işlemleriKapsam: cloud_read

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (= service id in the client area)

Yanıtlar

200Actions (newest first, max 50) — data: array<object>
404Not found — also returned for objects owned by someone else

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/activity' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/activity", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/activity", {
  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}`);

SSH anahtarları

Yeni sunuculara kurulabilen, hesap düzeyinde açık anahtarlar.

GET/cloud/ssh-keys

SSH anahtarlarını listeleKapsam: cloud_read

Parametreler

AlaninTürAçıklama
pagequeryinteger
limitqueryinteger

Yanıtlar

200SSH keys — data: array<SshKey>
401Missing, invalid or revoked key

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/ssh-keys' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/ssh-keys", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/ssh-keys", {
  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/ssh-keys

SSH anahtarı ekleKapsam: cloud_write

ssh-ed25519, ecdsa-sha2-nistp256/384/521, sk-ssh-ed25519 ve ssh-rsa (en az 2048 bit) kabul edilir. Hesap başına en fazla 50 anahtar; parmak izi hesapta benzersizdir.

İstek gövdesi

AlanTürAçıklama
name zorunlustring
public_key zorunlustring

Yanıtlar

201Created — data: SshKey
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/ssh-keys' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "laptop", "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFaA... me@laptop"}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/ssh-keys", headers=h, json={"name": "laptop", "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFaA... me@laptop"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/ssh-keys", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"name": "laptop", "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFaA... me@laptop"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/ssh-keys/{id}

SSH anahtarını getirKapsam: cloud_read

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200SSH key — data: SshKey
404Not found — also returned for objects owned by someone else

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/ssh-keys/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/ssh-keys/47466", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/ssh-keys/47466", {
  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}`);

DELETE/cloud/ssh-keys/{id}

SSH anahtarını silKapsam: cloud_write

Anahtarı hesabınızdan siler. Anahtarın kurulu olduğu sunucularda anahtar kalır.

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Deleted — data: object
404Not found — also returned for objects owned by someone else

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/ssh-keys/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/ssh-keys/47466", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/ssh-keys/47466", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

Katalog

Sipariş verilebilen ürünler, lokasyonlar ve işletim sistemi imajları.

GET/cloud/products

Sipariş verilebilen bulut sunucu ürünlerini listeleKapsam: cloud_read

Fiyatlar ürün para biriminde ve KDV hariçtir. available=false geçici olarak stokta yok demektir.

Parametreler

AlaninTürAçıklama
regionquerystringFilter by region (see GET /cloud/locations). A city name (falkenstein) also works.
planquerystringFilter by plan name
locationquerystringDeprecated alias of region (legacy location code)
server_typequerystringDeprecated alias of plan (legacy type code)
pagequeryinteger
limitqueryinteger

Yanıtlar

200Products — data: array<Product>
401Missing, invalid or revoked key
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/products' \
  -H "Authorization: Bearer $GYRO_TOKEN"
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

Sipariş verilebilen lokasyonları listeleKapsam: cloud_read

Yanıtlar

200Locations — data: array<Location>
401Missing, invalid or revoked key

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/locations' \
  -H "Authorization: Bearer $GYRO_TOKEN"
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

İşletim sistemi imajlarını listeleKapsam: cloud_read

Yanıtlar

200Images — data: array<Image>
401Missing, invalid or revoked key

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/images' \
  -H "Authorization: Bearer $GYRO_TOKEN"
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

Ürünleri ListelemeKapsam: Products/GetProducts

Sipariş edilebilecek ürünleri vitrin sırasıyla döndürür. — cüzdan para birimi

Parametreler

AlaninTürAçıklama
pagequeryintegerKaçıncı sayfa.
limitqueryintegerSayfa başına satır. En çok 100.
typequerystringTek bir ürün türü. Bilinmeyen tür reddedilir ve geçerli liste yanıtın ayrıntısında gelir.
categoryqueryintegerKategori numarası. Ana kategoriyle de ek atamalarla da eşleşir.
searchquerystringÜrün başlığında arar.

Yanıtlar

200Success — data: array<object>
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
422type_invalid

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/products' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import 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

Kategorileri ListelemeKapsam: Products/GetProductCategories

Vitrinde görünen ürün kategorilerini düz bir liste olarak döndürür. — sayfalama yok

Parametreler

AlaninTürAçıklama
typequerystringYalnız bu türün kategorileri. Bilinmeyen değer boş liste verir, hata değil.

Yanıtlar

200Success — data: array<object>
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/products/categories' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import 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}

Ürün Detayı ve Sipariş ŞemasıKapsam: Products/GetProduct

Bir ürünü, sipariş gövdesini kurmak için gereken her şeyle döndürür. — sipariş girdisi

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/products/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/products/47466", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/products/47466", {
  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}`);

Fatura ve bakiye

Faturalar ve hesap bakiyesi (önerilen kapsamlarla salt okunur).

GET/invoices

Faturaları listeleKapsam: Invoices/GetInvoices

Parametreler

AlaninTürAçıklama
statusquerystringunpaid, paid, cancelled, refund
pagequeryinteger
limitqueryinteger

Yanıtlar

200Invoices — data: array<Invoice>
401Missing, invalid or revoked key

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/invoices' \
  -H "Authorization: Bearer $GYRO_TOKEN"
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"])
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ı getirKapsam: Invoices/GetInvoice

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Invoice with lines — data: Invoice
404Not found — also returned for objects owned by someone else

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/invoices/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/invoices/47466", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/invoices/47466", {
  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 bakiyesiKapsam: Balance/GetBalance

Yanıtlar

200Balance — data: object
401Missing, invalid or revoked key

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/balance' \
  -H "Authorization: Bearer $GYRO_TOKEN"
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"])
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 hareketleriKapsam: Balance/GetBalanceTransactions

Parametreler

AlaninTürAçıklama
pagequeryinteger
limitqueryinteger

Yanıtlar

200Ledger entries — data: array<object>
401Missing, invalid or revoked key

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/balance/transactions' \
  -H "Authorization: Bearer $GYRO_TOKEN"
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"])
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 ödeKapsam: billing_pay

Yalnız bakiye (kart asla). "confirm": true ve Idempotency-Key başlığı zorunlu.

Parametreler

AlaninTürAçıklama
id zorunlupathinteger
Idempotency-Key zorunluheaderstringUnique per logical request (e.g. a UUID). Replays within 24 hours return the stored answer.

İstek gövdesi

AlanTürAçıklama
confirm zorunluboolean = true

Yanıtlar

200Paid — data: object
400Malformed request (e.g. missing Idempotency-Key)
402Account balance does not cover the order (insufficient_balance)
404Not found — also returned for objects owned by someone else
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/invoices/47466/pay' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"confirm": true}'
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/47466/pay", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/invoices/47466/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

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200PDF — data: object
404Not found — also returned for objects owned by someone else

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/invoices/47466/pdf' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/invoices/47466/pdf", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/invoices/47466/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 alKapsam: billing_pay

İstek gövdesi

AlanTürAçıklama
amount zorunlunumber

Yanıtlar

201Invoice + pay_url — data: object
403Key lacks the scope, IP not allowed, or feature disabled
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

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}'
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"])
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ı ÖdemeKapsam: Invoices/PayInvoice

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

AlaninTürAçıklama
id zorunlupathinteger
Idempotency-Key zorunluheaderstring

İstek gövdesi

AlanTürAçıklama
payment zorunluobjectpaymentÖdeme kaynağı.
method zorunlustringÖdeme yolu: hesap bakiyesi ya da kayıtlı kart.
card_idintegerÇekilecek kartın numarası. Verilmezse hesabın varsayılan kartı çekilir.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422balance_not_allowed, card_expired, card_not_chargeable, insufficient_balance, invoice_not_payable, no_stored_card, payment_method_invalid, subscription_collects

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/invoices/47466/pay' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"payment": {}, "method": "string", "card_id": 1}'
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/47466/pay", headers=h, json={"payment": {}, "method": "string", "card_id": 1}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/invoices/47466/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 UygulamaKapsam: Invoices/ApplyInvoiceCoupon

Açık bir faturaya kupon uygular ve belgeyi yeniden fiyatlar. — belge başına tek kupon

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

İstek gövdesi

AlanTürAçıklama
code zorunlustringKupon kodu.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422coupon_code_required, coupon_invalid, coupon_not_invoice, coupon_rejected, coupon_scope, coupon_used, invoice_not_payable

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/invoices/47466/coupon' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"code": "string"}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/invoices/47466/coupon", headers=h, json={"code": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/invoices/47466/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ştirmeKapsam: Balance/UpdateBalanceSettings

Otomatik ödemeyi ve düşük bakiye uyarısını ayarlar. — faturaları etkiler

İstek gövdesi

AlanTürAçıklama
auto_pay_from_balancebooleanYenilemeler 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_idintegerCüzdan yetmediğinde çekilecek kart. Sıfır göndermek kart zincirini tümüyle kaldırır.
alertobjectUyarı bloğu. Açık ve eşik alanlarını taşır; açarken pozitif bir eşik gerekir.
alert_recipientsstringUyarıyı alacak fatura adresi numaraları. Liste yerine geçer; hesabın sahibi burada yer almaz, her zaman alır.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422alert_invalid, auto_pay_invalid, card_expired, nothing_to_update

Kod örnekleri

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"}'
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"])
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}`);

Hesap

Anahtar bilgisi ve API anahtarlarınızın yazma kaydı.

GET/whoami

Çağıran API anahtarını gösterKapsam: any

Yanıtlar

200Key details — data: object
401Missing, invalid or revoked key

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/whoami' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/whoami", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/whoami", {
  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/activity

API anahtarlarınızla yapılan yazma çağrılarını listeleKapsam: cloud_read

/cloud/... altındaki her GET dışı çağrı 365 gün saklanır (yöntem, yol, kapsam, HTTP durumu, IP, anahtar no). İstek ve yanıt gövdeleri saklanmaz.

Parametreler

AlaninTürAçıklama
pagequeryinteger
limitqueryinteger

Yanıtlar

200Activity page — data: array<ActivityEntry>
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/activity' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/activity", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/activity", {
  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/ping

PingKapsam: System/Ping

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/ping' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/ping", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/ping", {
  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/me

Profili OkumaKapsam: Account/GetMe

Anahtarın sahibi olan müşterinin profilini döndürür. — anahtarın sahibi

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/me' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/me", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/me", {
  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}`);

PATCH/me

Profili GüncellemeKapsam: Account/UpdateMe

Gönderdiğiniz profil alanlarını değiştirir. — operatör kapısı

İstek gövdesi

AlanTürAçıklama
namestringAdı. Boşaltılamaz.
surnamestringSoyadı. Boşaltılamaz.
kindstringHesap türü. Bireysele geçmek şirket bilgilerini temizler.
companyobjectŞirket bilgileri. Hesabın kurumsal olmasını gerektirir.
birthdaystringDoğum tarihi.
identitystringKimlik numarası.
landline_phonestringSabit telefon.
languagestringDil kodu. Kurulumda bulunmalıdır.
countrystringÜlke kodu.
currencystringGörüntü para birimi kodu.
timezonestringSaat dilimi. Boş göndermek hesabın kendi seçimini siler.
date_formatstringTarih biçimi. Boş göndermek hesabın kendi seçimini siler.
custom_fieldsobjectEk alanların değerleri. Kutu tipli alanlar dizi alır.
avatarstringProfil görseli. Yalnız kodlanmış içerik kabul edilir; adres reddedilir.
emailstring
phonestring

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
422avatar_url_not_allowed, birthday_required, company_name_required, company_requires_corporate, custom_field_required, field_not_editable, field_too_long, kind_invalid, language_invalid, name_required, nothing_to_update

Kod örnekleri

curl -s -X PATCH 'https://www.gyrohosting.com/api/v1/client/me' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "string", "surname": "string", "kind": "string", "company": {}, "birthday": "string", "identity": "string", "landline_phone": "string", "language": "string", "country": "string", "currency": "string", "timezone": "string", "date_format": "string", "custom_fields": {}, "avatar": "string", "email": "string", "phone": "string"}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.patch("https://www.gyrohosting.com/api/v1/client/me", headers=h, json={"name": "string", "surname": "string", "kind": "string", "company": {}, "birthday": "string", "identity": "string", "landline_phone": "string", "language": "string", "country": "string", "currency": "string", "timezone": "string", "date_format": "string", "custom_fields": {}, "avatar": "string", "email": "string", "phone": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/me", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"name": "string", "surname": "string", "kind": "string", "company": {}, "birthday": "string", "identity": "string", "landline_phone": "string", "language": "string", "country": "string", "currency": "string", "timezone": "string", "date_format": "string", "custom_fields": {}, "avatar": "string", "email": "string", "phone": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/me/security

Güvenlik Özetini OkumaKapsam: Account/GetSecurity

Doğrulama durumunu, iki adımlı girişi ve son oturumları döndürür. — değiştirilemez

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/me/security' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/me/security", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/me/security", {
  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/me/notifications

Bildirim Tercihlerini OkumaKapsam: Account/GetNotifications

Hesabın hangi bildirimleri hangi kanaldan aldığını döndürür.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/me/notifications' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/me/notifications", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/me/notifications", {
  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}`);

PUT/me/notifications

Bildirim Tercihlerini YazmaKapsam: Account/UpdateNotifications

Bildirim tercihlerinin tamamını yeniden yazar. — tam değiştirme

İstek gövdesi

AlanTürAçıklama
invoicesobjectFatura bildirimleri. E-posta ve kısa mesaj kanallarını taşır; eksik kanal kapalı sayılır.
supportobjectDestek bildirimleri.
productobjectÜrün ve hizmet bildirimleri.
domainobjectAlan adı bildirimleri.
marketingobjectPazarlama bildirimleri.
generalstring

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled

Kod örnekleri

curl -s -X PUT 'https://www.gyrohosting.com/api/v1/client/me/notifications' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"invoices": {}, "support": {}, "product": {}, "domain": {}, "marketing": {}, "general": "string"}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.put("https://www.gyrohosting.com/api/v1/client/me/notifications", headers=h, json={"invoices": {}, "support": {}, "product": {}, "domain": {}, "marketing": {}, "general": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/me/notifications", {
  method: "PUT",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"invoices": {}, "support": {}, "product": {}, "domain": {}, "marketing": {}, "general": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/addresses

Adresleri ListelemeKapsam: Addresses/GetAddresses

Hesabın fatura profillerini döndürür. — anahtarın sahibi

Yanıtlar

200Success — data: array<object>
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/addresses' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/addresses", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/addresses", {
  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/addresses

Adres EklemeKapsam: Addresses/CreateAddress

Hesaba yeni bir fatura profili ekler. — fatura profili

İstek gövdesi

AlanTürAçıklama
name zorunlustringİlgili kişinin adı.
surname zorunlustringSoyadı.
email zorunlustringGeçerli bir e-posta.
country zorunlustringÜlke kodu. Başvuru ucundan alınır.
state zorunlustringİl. Listeden numara, liste boşsa serbest metin.
city zorunlustringŞehir. Listeden numara, liste boşsa serbest metin.
address zorunlustringAçık adres.
zipcode zorunlustringPosta kodu. En çok yirmi karakter.
kindstringKişi türü. Öntanımlı olarak bireysel.
companyobjectŞirket bilgileri. Kurumsal kişide ad zorunludur.
labelstringSerbest etiket.
phonestringKişinin telefonu.
identitystringKimlik numarası.
notificationsobjectKanal matrisi. Tam değiştirmedir; hiç gönderilmezse hepsi açılır.
is_defaultbooleanBunu varsayılan profil yap.
overwrite_invoicesbooleanAçık faturaları bu adrese yeniden yaz.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
422company_name_required, contact_rejected, field_too_long, name_required, notifications_invalid
500address_add_failed

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/addresses' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "string", "surname": "string", "email": "string", "country": "string", "state": "string", "city": "string", "address": "string", "zipcode": "string", "kind": "string", "company": {}, "label": "string", "phone": "string", "identity": "string", "notifications": {}, "is_default": true, "overwrite_invoices": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/addresses", headers=h, json={"name": "string", "surname": "string", "email": "string", "country": "string", "state": "string", "city": "string", "address": "string", "zipcode": "string", "kind": "string", "company": {}, "label": "string", "phone": "string", "identity": "string", "notifications": {}, "is_default": True, "overwrite_invoices": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/addresses", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"name": "string", "surname": "string", "email": "string", "country": "string", "state": "string", "city": "string", "address": "string", "zipcode": "string", "kind": "string", "company": {}, "label": "string", "phone": "string", "identity": "string", "notifications": {}, "is_default": true, "overwrite_invoices": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/addresses/{id}

Tek Adresi OkumaKapsam: Addresses/GetAddress

Hesabın adreslerinden birini döndürür. — anahtarın sahibi

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/addresses/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/addresses/47466", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/addresses/47466", {
  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}`);

PUT/addresses/{id}

Adresi GüncellemeKapsam: Addresses/UpdateAddress

Adresin tamamını yeniden yazar. — tam gövde

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

İstek gövdesi

AlanTürAçıklama
name zorunlustringİlgili kişinin adı.
surname zorunlustringSoyadı.
email zorunlustringGeçerli bir e-posta.
country zorunlustringÜlke kodu. Başvuru ucundan alınır.
state zorunlustringİl. Listeden numara, liste boşsa serbest metin.
city zorunlustringŞehir. Listeden numara, liste boşsa serbest metin.
address zorunlustringAçık adres.
zipcode zorunlustringPosta kodu. En çok yirmi karakter.
kindstringKişi türü. Öntanımlı olarak bireysel.
companyobjectŞirket bilgileri. Kurumsal kişide ad zorunludur.
labelstringSerbest etiket.
phonestringKişinin telefonu.
identitystringKimlik numarası.
notificationsobjectKanal matrisi. Tam değiştirmedir; hiç gönderilmezse hepsi açılır.
is_defaultbooleanBunu varsayılan profil yap.
overwrite_invoicesbooleanAçık faturaları bu adrese yeniden yaz.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422company_name_required, contact_rejected, field_too_long, name_required

Kod örnekleri

curl -s -X PUT 'https://www.gyrohosting.com/api/v1/client/addresses/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "string", "surname": "string", "email": "string", "country": "string", "state": "string", "city": "string", "address": "string", "zipcode": "string", "kind": "string", "company": {}, "label": "string", "phone": "string", "identity": "string", "notifications": {}, "is_default": true, "overwrite_invoices": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.put("https://www.gyrohosting.com/api/v1/client/addresses/47466", headers=h, json={"name": "string", "surname": "string", "email": "string", "country": "string", "state": "string", "city": "string", "address": "string", "zipcode": "string", "kind": "string", "company": {}, "label": "string", "phone": "string", "identity": "string", "notifications": {}, "is_default": True, "overwrite_invoices": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/addresses/47466", {
  method: "PUT",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"name": "string", "surname": "string", "email": "string", "country": "string", "state": "string", "city": "string", "address": "string", "zipcode": "string", "kind": "string", "company": {}, "label": "string", "phone": "string", "identity": "string", "notifications": {}, "is_default": true, "overwrite_invoices": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/addresses/{id}

Adresi SilmeKapsam: Addresses/DeleteAddress

Adresi siler ve gerekiyorsa varsayılanı devreder. — anahtarın sahibi

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/addresses/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/addresses/47466", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/addresses/47466", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/addresses/{id}/default

Varsayılanı TaşımaKapsam: Addresses/SetDefaultAddress

Bu adresi varsayılan fatura profili yapar. — hesabın ülkesi izler

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/addresses/47466/default' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/addresses/47466/default", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/addresses/47466/default", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

Hizmetler (tüm ürünler)

Tüm ürün hatlarına (bulut sunucu, VDS, fiziksel sunucu, kurumsal mail, izleme, depolama, lisans, ...) genel köprü. Müşteri panelinde bir hizmette yapılabilen her şey bir modül aracı ya da metodudur ve burada erişilebilir. GET /cloud/services/{id}/tools ile başlayın: o hizmetin araçlarını, eylemlerini ve güvenlik politikasını (read, confirm, secret) döndürür.

GET/cloud/services

Tüm ürün hatlarındaki hizmetleri listeleKapsam: services_read

Parametreler

AlaninTürAçıklama
product_linequerystring (cloud_server, vds, dedicated_server, mail, monitor, storage, license, app)
statusquerystring
customer_idqueryintegerReseller main key only
pagequeryinteger
limitqueryinteger

Yanıtlar

200Services — data: array<Service>
401Missing, invalid or revoked key

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/services' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/services", 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", {
  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/services/{id}

Hizmeti getir (yenileme, iptal, erişim bilgileri)Kapsam: services_read

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Service — data: Service
404Not found — also returned for objects owned by someone else

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/services/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/services/47466", 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/47466", {
  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/services/{id}/tools

Hizmetin araçlarını, eylemlerini ve güvenlik politikasını keşfetKapsam: services_read

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Tools — data: ServiceTools
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/services/47466/tools' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/services/47466/tools", 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/47466/tools", {
  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/services/{id}/tools/{tool}

Bir aracı oku (posta kutuları, snapshot'lar, DNS kayıtları, ...)Kapsam: services_read

Parametreler

AlaninTürAçıklama
id zorunlupathinteger
tool zorunlupathstring

Yanıtlar

200Tool data (module specific) — data: object
404Not found — also returned for objects owned by someone else

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/services/47466/tools/1' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/services/47466/tools/1", 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/47466/tools/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/services/{id}/tools/{tool}/{action}

Bir araç eylemi çalıştır (posta kutusu oluştur, snapshot'tan dön, ...)Kapsam: services_write

Gövde alanları aracın kendi alanlarıdır (araç verisine ve rehberdeki modül tablosuna bakın). Keşif yanıtında confirm işaretli eylemler "confirm": true ister.

Parametreler

AlaninTürAçıklama
id zorunlupathinteger
tool zorunlupathstring
action zorunlupathstring

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Accepted — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/services/47466/tools/1/reboot' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"email": "[email protected]", "password": "S3cure-pass!", "quota": 2048}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/services/47466/tools/1/reboot", headers=h, json={"email": "[email protected]", "password": "S3cure-pass!", "quota": 2048}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/services/47466/tools/1/reboot", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"email": "[email protected]", "password": "S3cure-pass!", "quota": 2048}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/cloud/services/{id}/methods/{method}

Müşteri-çağrılabilir modül metodunu çağır (örn. lisans change_ip)Kapsam: services_write

Parametreler

AlaninTürAçıklama
id zorunlupathinteger
method zorunlupathstring

İstek gövdesi

AlanTürAçıklama

Yanıtlar

200Result — data: object
404Not found — also returned for objects owned by someone else
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/services/47466/methods/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"ip": "203.0.113.10"}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/services/47466/methods/1", headers=h, json={"ip": "203.0.113.10"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/services/47466/methods/1", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"ip": "203.0.113.10"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/services/{id}/label

Hizmetin takma adını ve etiketlerini getirKapsam: services_read

Hizmetlerinizden birinin (her ürün hattı) müşteri tanımlı takma adı ve renkli etiketleri. Etiketsiz hizmet "nickname": null ve "tags": [] döner. Etiketler yalnız hizmet sahibine görünür; devirden sonra eski sahibin etiketi gösterilmez.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Label — data: ServiceLabel
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404Not found — also returned for objects owned by someone else
429Too many requests (rate_limited); see the Retry-After and X-RateLimit-* headers

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/services/47466/label' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/services/47466/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/47466/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}`);

PUT/cloud/services/{id}/label

Hizmetin takma adını ve/veya etiketlerini ayarlaKapsam: services_write

nickname, tags ya da ikisini gönderin; gönderilmeyen alan değişmez. nickname "" veya null temizler; tags tüm etiketlerin yerine geçer, [] temizler. Etiket "ad" ya da {"name", "color"}; bilinmeyen/eksik renk için sabit varsayılan atanır. Aynı adlı (büyük/küçük harf duyarsız) etiketler birleştirilir. Sınır: anahtar başına dakikada 30 etiket yazması (429 rate_limited). Alt hesap anahtarı label:edit eylemi ister. Hatalar: 422 nothing_to_update, invalid_nickname, invalid_tags; 404 service_not_found (başka hesabın hizmeti dahil) veya feature_unavailable.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

İstek gövdesi

AlanTürAçıklama
nicknamestring | null"" or null clears the nickname. No control characters.
tagsarray | nullReplaces all tags; [] or null clears them. Item: a tag name, or {"name", "color"} (CLI: use --data for colours).

Yanıtlar

200Saved label — data: ServiceLabel
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404Not found — also returned for objects owned by someone else
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
429Too many requests (rate_limited); see the Retry-After and X-RateLimit-* headers

Kod örnekleri

curl -s -X PUT 'https://www.gyrohosting.com/api/v1/client/cloud/services/47466/label' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"nickname": "Accounting server", "tags": [{"name": "production", "color": "green"}, "customer-A"]}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.put("https://www.gyrohosting.com/api/v1/client/cloud/services/47466/label", headers=h, json={"nickname": "Accounting server", "tags": [{"name": "production", "color": "green"}, "customer-A"]}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/services/47466/label", {
  method: "PUT",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"nickname": "Accounting server", "tags": [{"name": "production", "color": "green"}, "customer-A"]}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

Webhook'lar

Hizmet, fatura, sipariş ve talep olayları için imzalı HTTPS geri çağrıları.

GET/cloud/webhooks

Webhook'ları listeleKapsam: webhooks

Yanıtlar

200Webhooks — data: array<Webhook>

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/webhooks' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/webhooks", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/webhooks", {
  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/webhooks

Webhook oluştur (gizli anahtar bir kez döner)Kapsam: webhooks

Teslimler POST JSON'dur; başlıklar X-Gyro-Event, X-Gyro-Delivery, X-Gyro-Timestamp ve X-Gyro-Signature: sha256=HMAC_SHA256(secret, timestamp + "." + body) (beyaz etiketli bayi: X-Webhook-*). Zaman damgası 5 dakikadan eskiyse reddedin. Tekrar: üstel geri çekilme, 8 deneme; 20 ardışık hata webhook'u kapatır.

İstek gövdesi

AlanTürAçıklama
url zorunlustring
eventsarray<WebhookEvent>empty = all
descriptionstring
customer_idintegerReseller main key only

Yanıtlar

201Created (includes secret) — data: object
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/webhooks' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://hooks.example.com/gyro", "events": ["service.active", "invoice.paid"]}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/webhooks", headers=h, json={"url": "https://hooks.example.com/gyro", "events": ["service.active", "invoice.paid"]}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/webhooks", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"url": "https://hooks.example.com/gyro", "events": ["service.active", "invoice.paid"]}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/webhooks/{id}

Webhook'u getirKapsam: webhooks

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Webhook — data: Webhook
404Not found — also returned for objects owned by someone else

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/webhooks/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/webhooks/47466", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/webhooks/47466", {
  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}`);

PATCH/cloud/webhooks/{id}

Adres, olay, açıklama ya da durumu güncelleKapsam: webhooks

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

İstek gövdesi

AlanTürAçıklama
urlstring
eventsarray<WebhookEvent>
descriptionstring
statusstring (active, disabled)

Yanıtlar

200Webhook — data: Webhook
404Not found — also returned for objects owned by someone else
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X PATCH 'https://www.gyrohosting.com/api/v1/client/cloud/webhooks/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url": "string", "events": ["service.created"], "description": "string", "status": "active"}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.patch("https://www.gyrohosting.com/api/v1/client/cloud/webhooks/47466", headers=h, json={"url": "string", "events": ["service.created"], "description": "string", "status": "active"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/webhooks/47466", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"url": "string", "events": ["service.created"], "description": "string", "status": "active"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/cloud/webhooks/{id}

Webhook'u silKapsam: webhooks

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Deleted
404Not found — also returned for objects owned by someone else

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/webhooks/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/webhooks/47466", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/webhooks/47466", {
  method: "DELETE",
  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/webhooks/{id}/test

Şimdi bir api.test olayı gönderKapsam: webhooks

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Result — data: object
404Not found — also returned for objects owned by someone else

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/webhooks/47466/test' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/webhooks/47466/test", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/webhooks/47466/test", {
  method: "POST",
  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/webhooks/{id}/deliveries

Son 100 teslimKapsam: webhooks

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Deliveries — data: array<WebhookDelivery>
404Not found — also returned for objects owned by someone else

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/webhooks/47466/deliveries' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/webhooks/47466/deliveries", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/webhooks/47466/deliveries", {
  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}`);

API anahtarları

Hizmet, eylem ya da bayi uç-müşterisiyle daraltılmış alt hesap anahtarları. Yalnız GyroAPI /cloud uçlarında geçerlidir.

GET/cloud/keys

Alt hesap anahtarlarını listele (token göstermez)Kapsam: keys

Yanıtlar

200Keys — data: array<ApiKey>
403Key lacks the scope, IP not allowed, or feature disabled

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/keys' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/keys", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/keys", {
  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/keys

Alt hesap anahtarı oluştur (token bir kez döner)Kapsam: keys

İstek gövdesi

AlanTürAçıklama
name zorunlustring
scopesarray<string (cloud_read, cloud_write, cloud_order, cloud_delete, services_read, services_write, webhooks)>
servicesarray<integer>Optional service allow list
actionsarray<string>Optional action allow list: server actions (reboot) or tool:action / tool:* / method:name
ipsarray<string>
rate_limitintegerRequests per minute (<= your own limit; 0 = default)

Yanıtlar

201Created — data: object
403Key lacks the scope, IP not allowed, or feature disabled
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/keys' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "ci-reboot-only", "scopes": ["cloud_read", "cloud_write"], "services": [47466], "actions": ["reboot", "poweron"], "ips": ["203.0.113.10"], "rate_limit": 30}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/keys", headers=h, json={"name": "ci-reboot-only", "scopes": ["cloud_read", "cloud_write"], "services": [47466], "actions": ["reboot", "poweron"], "ips": ["203.0.113.10"], "rate_limit": 30}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/keys", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"name": "ci-reboot-only", "scopes": ["cloud_read", "cloud_write"], "services": [47466], "actions": ["reboot", "poweron"], "ips": ["203.0.113.10"], "rate_limit": 30}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/cloud/keys/{id}

Alt hesap anahtarını silKapsam: keys

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Deleted
404Not found — also returned for objects owned by someone else

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/keys/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/keys/47466", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/keys/47466", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

Bayi

Bayi hesapları kendi uç-müşterilerini yönetir, hizmet atar, uç-müşteri anahtarı üretir ve kullanım raporu okur. Hizmetler bayinin hesabında kalır ve bayi indirimiyle fiyatlanır.

GET/cloud/reseller/settings

Bayi ayarlarıKapsam: reseller

Yanıtlar

200Settings — data: ResellerSettings
403Key lacks the scope, IP not allowed, or feature disabled

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/reseller/settings' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/reseller/settings", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/reseller/settings", {
  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}`);

PUT/cloud/reseller/settings

Bayi ayarlarını kaydet (beyaz etiket)Kapsam: reseller

İstek gövdesi

AlanTürAçıklama
white_labelboolean

Yanıtlar

200Settings — data: ResellerSettings
403Key lacks the scope, IP not allowed, or feature disabled

Kod örnekleri

curl -s -X PUT 'https://www.gyrohosting.com/api/v1/client/cloud/reseller/settings' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"white_label": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.put("https://www.gyrohosting.com/api/v1/client/cloud/reseller/settings", headers=h, json={"white_label": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/reseller/settings", {
  method: "PUT",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"white_label": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/reseller/report

Uç-müşteri başına kullanım ve fatura raporuKapsam: reseller

Parametreler

AlaninTürAçıklama
fromquerystring
toquerystring

Yanıtlar

200Report — data: ResellerReport
403Key lacks the scope, IP not allowed, or feature disabled

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/reseller/report' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/reseller/report", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/reseller/report", {
  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/reseller/assign

Hizmeti uç-müşteriye ata (customer_id 0 = atamayı kaldır)Kapsam: reseller

İstek gövdesi

AlanTürAçıklama
service_id zorunluinteger
customer_id zorunluinteger

Yanıtlar

200Assignment — data: object
404Not found — also returned for objects owned by someone else

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/reseller/assign' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"service_id": 1, "customer_id": 1}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/reseller/assign", headers=h, json={"service_id": 1, "customer_id": 1}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/reseller/assign", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"service_id": 1, "customer_id": 1}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/reseller/customers

Uç-müşterileri listeleKapsam: reseller

Parametreler

AlaninTürAçıklama
external_refquerystring
pagequeryinteger
limitqueryinteger

Yanıtlar

200Customers — data: array<EndCustomer>
403Key lacks the scope, IP not allowed, or feature disabled

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/reseller/customers' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/reseller/customers", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/reseller/customers", {
  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/reseller/customers

Uç-müşteri oluşturKapsam: reseller

İstek gövdesi

AlanTürAçıklama
namestring
emailstring
external_refstringYour own customer id (unique per reseller)
notestring
statusstring (active, suspended)
allow_orderbooleanMay this customer's keys order servers (paid from YOUR balance)?

Yanıtlar

201Created — data: EndCustomer
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/reseller/customers' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "Acme Ltd", "external_ref": "acme-001", "allow_order": false}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/reseller/customers", headers=h, json={"name": "Acme Ltd", "external_ref": "acme-001", "allow_order": False}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/reseller/customers", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"name": "Acme Ltd", "external_ref": "acme-001", "allow_order": false}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/reseller/customers/{id}

Uç-müşteriyi getirKapsam: reseller

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Customer — data: EndCustomer
404Not found — also returned for objects owned by someone else

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/reseller/customers/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/reseller/customers/47466", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/reseller/customers/47466", {
  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}`);

PATCH/cloud/reseller/customers/{id}

Uç-müşteriyi güncelle (askıya alma = anahtarları çalışmaz)Kapsam: reseller

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

İstek gövdesi

AlanTürAçıklama
namestring
emailstring
external_refstringYour own customer id (unique per reseller)
notestring
statusstring (active, suspended)
allow_orderbooleanMay this customer's keys order servers (paid from YOUR balance)?

Yanıtlar

200Customer — data: EndCustomer
404Not found — also returned for objects owned by someone else

Kod örnekleri

curl -s -X PATCH 'https://www.gyrohosting.com/api/v1/client/cloud/reseller/customers/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "string", "email": "string", "external_ref": "string", "note": "string", "status": "active", "allow_order": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.patch("https://www.gyrohosting.com/api/v1/client/cloud/reseller/customers/47466", headers=h, json={"name": "string", "email": "string", "external_ref": "string", "note": "string", "status": "active", "allow_order": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/reseller/customers/47466", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"name": "string", "email": "string", "external_ref": "string", "note": "string", "status": "active", "allow_order": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/cloud/reseller/customers/{id}

Uç-müşteriyi sil (anahtarlar ve webhook'lar iptal, hizmet ataması kalkar)Kapsam: reseller

Parametreler

AlaninTürAçıklama
id zorunlupathinteger
confirm zorunluqueryboolean

Yanıtlar

200Deleted
404Not found — also returned for objects owned by someone else
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/reseller/customers/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/reseller/customers/47466", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/reseller/customers/47466", {
  method: "DELETE",
  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/reseller/customers/{id}/keys

Uç-müşterinin anahtarlarını listeleKapsam: reseller

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Keys — data: array<ApiKey>
404Not found — also returned for objects owned by someone else

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/reseller/customers/47466/keys' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/reseller/customers/47466/keys", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/reseller/customers/47466/keys", {
  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/reseller/customers/{id}/keys

Uç-müşteri için anahtar üret (token bir kez döner)Kapsam: reseller

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

İstek gövdesi

AlanTürAçıklama
name zorunlustring
scopesarray<string (cloud_read, cloud_write, cloud_order, cloud_delete, services_read, services_write, webhooks)>
servicesarray<integer>Optional service allow list
actionsarray<string>Optional action allow list: server actions (reboot) or tool:action / tool:* / method:name
ipsarray<string>
rate_limitintegerRequests per minute (<= your own limit; 0 = default)

Yanıtlar

201Created — data: object
404Not found — also returned for objects owned by someone else
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/reseller/customers/47466/keys' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "string", "scopes": ["cloud_read"], "services": [1], "actions": ["string"], "ips": ["string"], "rate_limit": 1}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/reseller/customers/47466/keys", headers=h, json={"name": "string", "scopes": ["cloud_read"], "services": [1], "actions": ["string"], "ips": ["string"], "rate_limit": 1}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/reseller/customers/47466/keys", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"name": "string", "scopes": ["cloud_read"], "services": [1], "actions": ["string"], "ips": ["string"], "rate_limit": 1}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/cloud/reseller/customers/{id}/keys/{kid}

Uç-müşteri anahtarını iptal etKapsam: reseller

Parametreler

AlaninTürAçıklama
id zorunlupathinteger
kid zorunlupathinteger

Yanıtlar

200Deleted
404Not found — also returned for objects owned by someone else

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/reseller/customers/47466/keys/1' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/reseller/customers/47466/keys/1", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/reseller/customers/47466/keys/1", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

Kurumsal mail

Kurumsal mail kısayolları (kutular, takma adlar, catch-all, otomatik yanıt, IMAP taşıma, DNS, spam, teslim kaydı, karantina, silinen posta, arşiv, 2FA). Kutular yerel kısımla (@ öncesi) adreslenir.

GET/cloud/mail/{id}/mailboxes

mailboxes (GyroMail)Kapsam: services_read

Genel köprünün kısayolu: araç mailboxes. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/mailboxes' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/mailboxes", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/mailboxes", {
  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/mail/{id}/mailboxes

mailboxes:create (GyroMail)Kapsam: services_write

Genel köprünün kısayolu: araç mailboxes, eylem create. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/mailboxes' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/mailboxes", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/mailboxes", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

PATCH/cloud/mail/{id}/mailboxes/{local}

mailboxes:edit (GyroMail)Kapsam: services_write

Genel köprünün kısayolu: araç mailboxes, eylem edit. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
local zorunlupathstringMailbox local part (before @)

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X PATCH 'https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/mailboxes/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.patch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/mailboxes/1", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/mailboxes/1", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/cloud/mail/{id}/mailboxes/{local}

mailboxes:delete (GyroMail)Kapsam: services_write

Genel köprünün kısayolu: araç mailboxes, eylem delete. Gövde alanları aracın kendi alanlarıdır. "confirm": true gerekir.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
local zorunlupathstringMailbox local part (before @)

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/mailboxes/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/mailboxes/1", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/mailboxes/1", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/cloud/mail/{id}/mailboxes/{local}/password

mailboxes:password (GyroMail)Kapsam: services_write

Genel köprünün kısayolu: araç mailboxes, eylem password. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
local zorunlupathstringMailbox local part (before @)

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/mailboxes/1/password' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/mailboxes/1/password", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/mailboxes/1/password", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/mail/{id}/aliases

aliases (GyroMail)Kapsam: services_read

Genel köprünün kısayolu: araç aliases. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/aliases' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/aliases", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/aliases", {
  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/mail/{id}/aliases

aliases:create (GyroMail)Kapsam: services_write

Genel köprünün kısayolu: araç aliases, eylem create. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/aliases' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/aliases", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/aliases", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

PATCH/cloud/mail/{id}/aliases/{aid}

aliases:edit (GyroMail)Kapsam: services_write

Genel köprünün kısayolu: araç aliases, eylem edit. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
aid zorunlupathstring

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X PATCH 'https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/aliases/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.patch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/aliases/1", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/aliases/1", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/cloud/mail/{id}/aliases/{aid}

aliases:delete (GyroMail)Kapsam: services_write

Genel köprünün kısayolu: araç aliases, eylem delete. Gövde alanları aracın kendi alanlarıdır. "confirm": true gerekir.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
aid zorunlupathstring

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/aliases/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/aliases/1", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/aliases/1", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/mail/{id}/catch-all

catch-all (GyroMail)Kapsam: services_read

Genel köprünün kısayolu: araç catch-all. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/catch-all' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/catch-all", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/catch-all", {
  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}`);

PUT/cloud/mail/{id}/catch-all

catch-all:edit (GyroMail)Kapsam: services_write

Genel köprünün kısayolu: araç catch-all, eylem edit. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X PUT 'https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/catch-all' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.put("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/catch-all", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/catch-all", {
  method: "PUT",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/mail/{id}/autoresponders

autoresponder (GyroMail)Kapsam: services_read

Genel köprünün kısayolu: araç autoresponder. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/autoresponders' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/autoresponders", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/autoresponders", {
  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}`);

PUT/cloud/mail/{id}/autoresponders/{local}

autoresponder:edit (GyroMail)Kapsam: services_write

Genel köprünün kısayolu: araç autoresponder, eylem edit. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
local zorunlupathstringMailbox local part (before @)

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X PUT 'https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/autoresponders/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.put("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/autoresponders/1", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/autoresponders/1", {
  method: "PUT",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/cloud/mail/{id}/autoresponders/{local}

autoresponder:delete (GyroMail)Kapsam: services_write

Genel köprünün kısayolu: araç autoresponder, eylem delete. Gövde alanları aracın kendi alanlarıdır. "confirm": true gerekir.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
local zorunlupathstringMailbox local part (before @)

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/autoresponders/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/autoresponders/1", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/autoresponders/1", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/mail/{id}/migrations

sync-jobs (GyroMail)Kapsam: services_read

Genel köprünün kısayolu: araç sync-jobs. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/migrations' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/migrations", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/migrations", {
  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/mail/{id}/migrations

sync-jobs:create (GyroMail)Kapsam: services_write

Genel köprünün kısayolu: araç sync-jobs, eylem create. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/migrations' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/migrations", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/migrations", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/cloud/mail/{id}/migrations/{jid}/run

sync-jobs:run (GyroMail)Kapsam: services_write

Genel köprünün kısayolu: araç sync-jobs, eylem run. Gövde alanları aracın kendi alanlarıdır. "confirm": true gerekir.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
jid zorunlupathstring

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/migrations/1/run' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/migrations/1/run", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/migrations/1/run", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/cloud/mail/{id}/migrations/{jid}

sync-jobs:delete (GyroMail)Kapsam: services_write

Genel köprünün kısayolu: araç sync-jobs, eylem delete. Gövde alanları aracın kendi alanlarıdır. "confirm": true gerekir.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
jid zorunlupathstring

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/migrations/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/migrations/1", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/migrations/1", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/mail/{id}/dns

dns-setup (GyroMail)Kapsam: services_read

Genel köprünün kısayolu: araç dns-setup. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/dns' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/dns", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/dns", {
  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/mail/{id}/dns/verify

dns-setup:verify (GyroMail)Kapsam: services_write

Genel köprünün kısayolu: araç dns-setup, eylem verify. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/dns/verify' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/dns/verify", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/dns/verify", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/mail/{id}/spam-filter

spam-filter (GyroMail)Kapsam: services_read

Genel köprünün kısayolu: araç spam-filter. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/spam-filter' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/spam-filter", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/spam-filter", {
  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/mail/{id}/delivery-log

delivery-log (GyroMail)Kapsam: services_read

Genel köprünün kısayolu: araç delivery-log. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/delivery-log' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/delivery-log", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/delivery-log", {
  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/mail/{id}/quarantine

quarantine (GyroMail)Kapsam: services_read

Genel köprünün kısayolu: araç quarantine. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/quarantine' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/quarantine", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/quarantine", {
  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/mail/{id}/deleted

deleted-mail (GyroMail)Kapsam: services_read

Genel köprünün kısayolu: araç deleted-mail. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/deleted' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/deleted", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/deleted", {
  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/mail/{id}/archive

archive (GyroMail)Kapsam: services_read

Genel köprünün kısayolu: araç archive. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/archive' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/archive", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/archive", {
  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/mail/{id}/two-factor

two-factor (GyroMail)Kapsam: services_read

Genel köprünün kısayolu: araç two-factor. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/two-factor' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/two-factor", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/two-factor", {
  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/mail/{id}/plan

plan-size (GyroMail)Kapsam: services_read

Genel köprünün kısayolu: araç plan-size. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/plan' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/plan", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/mail/47466/plan", {
  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}`);

Nesne depolama (S3)

S3 depolama kısayolları: kovalar, erişim anahtarları (gizli bir kez), kullanım, bağlantı bilgisi.

GET/cloud/storage/{id}/buckets

buckets (GyroDepolama)Kapsam: services_read

Genel köprünün kısayolu: araç buckets. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets", {
  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/storage/{id}/buckets

buckets:create (GyroDepolama)Kapsam: services_write

Genel köprünün kısayolu: araç buckets, eylem create. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/cloud/storage/{id}/buckets/{bucket}

buckets:delete (GyroDepolama)Kapsam: services_write

Genel köprünün kısayolu: araç buckets, eylem delete. Gövde alanları aracın kendi alanlarıdır. "confirm": true gerekir.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
bucket zorunlupathstring

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets/1", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets/1", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/storage/{id}/keys

access-keys (GyroDepolama)Kapsam: services_read

Genel köprünün kısayolu: araç access-keys. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/keys' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/keys", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/keys", {
  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/storage/{id}/keys

access-keys:create (GyroDepolama)Kapsam: services_write

Genel köprünün kısayolu: araç access-keys, eylem create. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/keys' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/keys", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/keys", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/cloud/storage/{id}/keys/{key}/rotate

access-keys:rotate (GyroDepolama)Kapsam: services_write

Genel köprünün kısayolu: araç access-keys, eylem rotate. Gövde alanları aracın kendi alanlarıdır. "confirm": true gerekir.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
key zorunlupathstring

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/keys/1/rotate' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/keys/1/rotate", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/keys/1/rotate", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/cloud/storage/{id}/keys/{key}

access-keys:delete (GyroDepolama)Kapsam: services_write

Genel köprünün kısayolu: araç access-keys, eylem delete. Gövde alanları aracın kendi alanlarıdır. "confirm": true gerekir.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
key zorunlupathstring

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/keys/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/keys/1", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/keys/1", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/storage/{id}/usage

usage (GyroDepolama)Kapsam: services_read

Genel köprünün kısayolu: araç usage. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/usage' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/usage", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/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}`);

POST/cloud/storage/{id}/buckets/{bucket}/rename

Kova adını değiştirKapsam: services_write

Kova adları hizmete özeldir (aynı adı başka müşteriler de kullanabilir). Veri taşınmaz. Eski adla S3 erişimi hemen durur; web sitesi <yeni>-<hizmet kodu>.web.gyro-s3.com olur, eski web adresi 40 gün 301 ile yönlendirilir; paylaşım bağlantıları çalışır. Kova başına günde en çok 5; eski ad 40 gün bu hizmette yeniden kullanılamaz. "confirm": true gerekir.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
bucket zorunlupathstring

İstek gövdesi

AlanTürAçıklama
new_name zorunlustring
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets/1/rename' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"new_name": "string", "confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets/1/rename", headers=h, json={"new_name": "string", "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets/1/rename", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"new_name": "string", "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/storage/{id}/buckets/{bucket}/objects

Kova klasöründeki nesneleri listeleKapsam: services_read

Bir klasörün bir sayfası (200): folders ve files (anahtar, boyut, tarih). Devam için önceki sayfanın next değerini verin.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
bucket zorunlupathstring
prefixquerystringFolder, ends with / (empty = root)
searchquerystringName prefix inside the folder
nextquerystringContinuation token

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets/1/objects' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets/1/objects", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets/1/objects", {
  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/storage/{id}/buckets/{bucket}/objects/upload-url

İmzalı yükleme adresleriKapsam: services_write

Çağrı başına en çok 100 dosya, dosya başına 5 GiB. Dosyayı 15 dakika içinde her url adresine PUT edin; veri API'den geçmez. Büyük dosyalar: herhangi bir S3 istemcisi (multipart).

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
bucket zorunlupathstring

İstek gövdesi

AlanTürAçıklama
prefixstringTarget folder (ends with /)
items zorunluarray<object>
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets/1/objects/upload-url' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"prefix": "string", "items": [{"name": "string", "size": 1}], "confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets/1/objects/upload-url", headers=h, json={"prefix": "string", "items": [{"name": "string", "size": 1}], "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets/1/objects/upload-url", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"prefix": "string", "items": [{"name": "string", "size": 1}], "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/cloud/storage/{id}/buckets/{bucket}/objects/download-url

İmzalı indirme adresiKapsam: services_write

15 dakikalık GET adresi döner (Content-Disposition: attachment). İndirmeler hizmetin aylık trafiğinden düşer.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
bucket zorunlupathstring

İstek gövdesi

AlanTürAçıklama
key zorunlustringObject key
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets/1/objects/download-url' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "string", "confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets/1/objects/download-url", headers=h, json={"key": "string", "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets/1/objects/download-url", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"key": "string", "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/cloud/storage/{id}/buckets/{bucket}/objects/delete

Nesneleri silKapsam: services_write

Tek çağrıda en çok 1000 anahtar siler. "confirm": true gerekir.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
bucket zorunlupathstring

İstek gövdesi

AlanTürAçıklama
keys zorunluarray<string>
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets/1/objects/delete' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"keys": ["string"], "confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets/1/objects/delete", headers=h, json={"keys": ["string"], "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets/1/objects/delete", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"keys": ["string"], "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/cloud/storage/{id}/buckets/{bucket}/folders

Klasör oluşturKapsam: services_write

Boş klasör işareti prefix + name + / oluşturur.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
bucket zorunlupathstring

İstek gövdesi

AlanTürAçıklama
prefixstring
name zorunlustring
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets/1/folders' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"prefix": "string", "name": "string", "confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets/1/folders", headers=h, json={"prefix": "string", "name": "string", "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets/1/folders", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"prefix": "string", "name": "string", "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/cloud/storage/{id}/buckets/{bucket}/folders

Klasörü içindekilerle silKapsam: services_write

prefix (sorgu) altındaki tüm nesneleri siler. Büyük klasörler parça parça silinir: more true olduğu sürece tekrarlayın. "confirm": true gerekir.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
bucket zorunlupathstring
prefixquerystringFolder, ends with /

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets/1/folders' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets/1/folders", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets/1/folders", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/storage/{id}/buckets/{bucket}/folders/count

Klasördeki nesneleri sayKapsam: services_read

prefix altındaki nesne sayısı (more = 100000 üstü ya da süre sınırı).

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
bucket zorunlupathstring
prefixquerystringFolder, ends with /

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets/1/folders/count' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets/1/folders/count", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/buckets/1/folders/count", {
  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/storage/{id}/connect

connect (GyroDepolama)Kapsam: services_read

Genel köprünün kısayolu: araç connect. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/connect' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/connect", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/storage/47466/connect", {
  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}`);

Uptime izleme

Uptime izleme kısayolları: monitörler, kanallar, heartbeat, durum sayfaları.

GET/cloud/monitors/{id}/monitors

monitors (GyroMonitor)Kapsam: services_read

Genel köprünün kısayolu: araç monitors. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/monitors' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/monitors", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/monitors", {
  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/monitors/{id}/monitors

monitors:create (GyroMonitor)Kapsam: services_write

Genel köprünün kısayolu: araç monitors, eylem create. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/monitors' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/monitors", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/monitors", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

PATCH/cloud/monitors/{id}/monitors/{mid}

monitors:edit (GyroMonitor)Kapsam: services_write

Genel köprünün kısayolu: araç monitors, eylem edit. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
mid zorunlupathstring

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X PATCH 'https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/monitors/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.patch("https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/monitors/1", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/monitors/1", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/cloud/monitors/{id}/monitors/{mid}

monitors:delete (GyroMonitor)Kapsam: services_write

Genel köprünün kısayolu: araç monitors, eylem delete. Gövde alanları aracın kendi alanlarıdır. "confirm": true gerekir.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
mid zorunlupathstring

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/monitors/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/monitors/1", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/monitors/1", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/cloud/monitors/{id}/monitors/{mid}/pause

monitors:pause (GyroMonitor)Kapsam: services_write

Genel köprünün kısayolu: araç monitors, eylem pause. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
mid zorunlupathstring

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/monitors/1/pause' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/monitors/1/pause", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/monitors/1/pause", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/cloud/monitors/{id}/monitors/{mid}/resume

monitors:resume (GyroMonitor)Kapsam: services_write

Genel köprünün kısayolu: araç monitors, eylem resume. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
mid zorunlupathstring

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/monitors/1/resume' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/monitors/1/resume", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/monitors/1/resume", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/monitors/{id}/channels

channels (GyroMonitor)Kapsam: services_read

Genel köprünün kısayolu: araç channels. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/channels' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/channels", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/channels", {
  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/monitors/{id}/channels

channels:create (GyroMonitor)Kapsam: services_write

Genel köprünün kısayolu: araç channels, eylem create. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/channels' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/channels", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/channels", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/cloud/monitors/{id}/channels/{cid}

channels:delete (GyroMonitor)Kapsam: services_write

Genel köprünün kısayolu: araç channels, eylem delete. Gövde alanları aracın kendi alanlarıdır. "confirm": true gerekir.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
cid zorunlupathstringCertificate id

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/channels/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/channels/1", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/channels/1", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/monitors/{id}/heartbeats

heartbeats (GyroMonitor)Kapsam: services_read

Genel köprünün kısayolu: araç heartbeats. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/heartbeats' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/heartbeats", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/heartbeats", {
  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/monitors/{id}/heartbeats

heartbeats:create (GyroMonitor)Kapsam: services_write

Genel köprünün kısayolu: araç heartbeats, eylem create. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/heartbeats' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/heartbeats", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/heartbeats", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/monitors/{id}/status-pages

status-pages (GyroMonitor)Kapsam: services_read

Genel köprünün kısayolu: araç status-pages. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/status-pages' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/status-pages", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/monitors/47466/status-pages", {
  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}`);

Lisanslar

Yazılım lisansı durumu ve IP değişikliği.

GET/cloud/licenses/{id}

method license_status (LisansAPP)Kapsam: services_read

Genel köprünün kısayolu: araç license_status. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/licenses/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/licenses/47466", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/licenses/47466", {
  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/licenses/{id}/change-ip

method change_ip (LisansAPP)Kapsam: services_write

Genel köprünün kısayolu: araç change_ip. Gövde alanları aracın kendi alanlarıdır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/licenses/47466/change-ip' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/licenses/47466/change-ip", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/licenses/47466/change-ip", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

Tek tık uygulamalar

Bulut sunucuya tek tık uygulama kur (disk yeniden kurulur).

GET/cloud/apps

Kurulabilir uygulamaları listeleKapsam: services_read

Yanıtlar

200Apps — data: array<object>
401Missing, invalid or revoked key

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/apps' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/apps", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/apps", {
  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/servers/{id}/app

Uygulama kurulum durumu (hazır olunca kimlik bir kez)Kapsam: cloud_read

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (= service id in the client area)

Yanıtlar

200Status — data: object
404Not found — also returned for objects owned by someone else

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/app' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/app", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/app", {
  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/servers/{id}/app

Uygulama kur (diski yeniden kurar; confirm zorunlu; sunucu başına günde 3)Kapsam: cloud_write

Parametreler

AlaninTürAçıklama
id zorunlupathintegerServer id (= service id in the client area)

İstek gövdesi

AlanTürAçıklama
app zorunlustring
osstring
domainstring
emailstring
confirm zorunluboolean = true

Yanıtlar

202Started
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)
429install_limit

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/app' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"app": "wordpress", "domain": "blog.example.com", "email": "[email protected]", "confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/app", headers=h, json={"app": "wordpress", "domain": "blog.example.com", "email": "[email protected]", "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/servers/47466/app", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"app": "wordpress", "domain": "blog.example.com", "email": "[email protected]", "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

Paket değişikliği ve ek hizmetler

Paket yükseltme ve ek hizmet satın alma; bakiyeden ödenir (dry_run, confirm, Idempotency-Key, günlük sınır: hesap başına varsayılan 50 ücretli işlem, hesap/bayi bazında istisna, 429 daily_limit).

GET/cloud/services/{id}/resize-options

Hizmetin yükseltilebileceği ürünler ve fiyatlarıKapsam: services_read

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Options — data: object
401Missing, invalid or revoked key
404Not found — also returned for objects owned by someone else
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/services/47466/resize-options' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/services/47466/resize-options", 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/47466/resize-options", {
  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/services/{id}/resize

Paketi yükselt (bakiyeden ödenir)Kapsam: cloud_order

dry_run fiyatı döndürür; gerçek değişiklik "confirm": true + Idempotency-Key ister. Yükseltme faturası oluşturulur ve bakiyeden ödenir; bakiye yetmezse awaiting_payment ve pay_url döner. Sunucuyu yeniden kuracak değişiklikler reddedilir (recreate_required).

Parametreler

AlaninTürAçıklama
id zorunlupathinteger
Idempotency-Key zorunluheaderstringUnique per logical request (e.g. a UUID). Replays within 24 hours return the stored answer.

İstek gövdesi

AlanTürAçıklama
product_id zorunluinteger
price_idinteger
dry_runboolean
confirmboolean

Yanıtlar

202Accepted / awaiting_payment (200 for dry_run) — data: object
401Missing, invalid or revoked key
404Not found — also returned for objects owned by someone else
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/services/47466/resize' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"product_id": 1, "price_id": 1, "dry_run": true, "confirm": true}'
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/services/47466/resize", headers=h, json={"product_id": 1, "price_id": 1, "dry_run": True, "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/services/47466/resize", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
    "Idempotency-Key": crypto.randomUUID(),
  },
  body: JSON.stringify({"product_id": 1, "price_id": 1, "dry_run": true, "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/services/{id}/addons/available

Bu hizmete alınabilecek ek hizmetlerKapsam: services_read

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Add-ons — data: object
401Missing, invalid or revoked key
404Not found — also returned for objects owned by someone else
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/services/47466/addons/available' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/services/47466/addons/available", 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/47466/addons/available", {
  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/services/{id}/addons

Ek hizmet satın al (bakiyeden ödenir)Kapsam: cloud_order

Parametreler

AlaninTürAçıklama
id zorunlupathinteger
Idempotency-Key zorunluheaderstringUnique per logical request (e.g. a UUID). Replays within 24 hours return the stored answer.

İstek gövdesi

AlanTürAçıklama
addon_id zorunluinteger
option_id zorunluinteger
quantityinteger
dry_runboolean
confirmboolean

Yanıtlar

202Accepted / awaiting_payment (200 for dry_run) — data: object
401Missing, invalid or revoked key
404Not found — also returned for objects owned by someone else
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/services/47466/addons' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"addon_id": 1, "option_id": 1, "quantity": 1, "dry_run": true, "confirm": true}'
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/services/47466/addons", headers=h, json={"addon_id": 1, "option_id": 1, "quantity": 1, "dry_run": True, "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/services/47466/addons", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
    "Idempotency-Key": crypto.randomUUID(),
  },
  body: JSON.stringify({"addon_id": 1, "option_id": 1, "quantity": 1, "dry_run": true, "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

Panel kullanıcıları

Alt kullanıcılar: sınırlı izinli ek panel girişleri (muhasebe, teknik ekip). Kapsam users.

GET/cloud/users

Alt kullanıcıları listeleKapsam: users

Yanıtlar

200Users — data: array<object>
401Missing, invalid or revoked key
404Not found — also returned for objects owned by someone else
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/users' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/users", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/users", {
  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/users

Alt kullanıcı davet etKapsam: users

İstek gövdesi

AlanTürAçıklama
email zorunlustring
labelstring
permissionsarray<string>e.g. view_services, view_invoices, pay_invoices, view_tickets, open_tickets ...
send_inviteboolean

Yanıtlar

201Created — data: object
401Missing, invalid or revoked key
404Not found — also returned for objects owned by someone else
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/users' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"email": "string", "label": "string", "permissions": ["string"], "send_invite": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/users", headers=h, json={"email": "string", "label": "string", "permissions": ["string"], "send_invite": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/users", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"email": "string", "label": "string", "permissions": ["string"], "send_invite": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

PATCH/cloud/users/{id}

Alt kullanıcıyı güncelleKapsam: users

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

İstek gövdesi

AlanTürAçıklama
labelstring
statusstring (active, inactive)
permissionsarray<string>

Yanıtlar

200Updated — data: object
401Missing, invalid or revoked key
404Not found — also returned for objects owned by someone else
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X PATCH 'https://www.gyrohosting.com/api/v1/client/cloud/users/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"label": "string", "status": "active", "permissions": ["string"]}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.patch("https://www.gyrohosting.com/api/v1/client/cloud/users/47466", headers=h, json={"label": "string", "status": "active", "permissions": ["string"]}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/users/47466", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"label": "string", "status": "active", "permissions": ["string"]}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/cloud/users/{id}

Alt kullanıcıyı silKapsam: users

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Deleted — data: object
401Missing, invalid or revoked key
404Not found — also returned for objects owned by someone else
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/users/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/users/47466", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/users/47466", {
  method: "DELETE",
  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/users/{id}/resend-invite

Daveti yeniden gönderKapsam: users

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Sent — data: object
401Missing, invalid or revoked key
404Not found — also returned for objects owned by someone else
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/users/47466/resend-invite' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/users/47466/resend-invite", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/users/47466/resend-invite", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

Load balancers

Bulut sunucularınız için yönetilen L4/L7 yük dengeleyici: servisler, sağlık kontrolü, hedefler, ücretsiz Let's Encrypt sertifikası, ölçümler. AB bölgeleri.

GET/cloud/load-balancer-types

Yük dengeleyici boyutları ve fiyatlarıKapsam: cloud_read

Sipariş edilebilir boyutlar, sınırlar, bölgeler ve dönem başına EUR fiyatlar (KDV hariç); list_amount üstü çizili liste fiyatıdır.

Yanıtlar

200Sizes — data: array<object>
401Missing, invalid or revoked key

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/load-balancer-types' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/load-balancer-types", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/load-balancer-types", {
  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/load-balancers

Yük dengeleyicileri listeleKapsam: cloud_read

Parametreler

AlaninTürAçıklama
pagequeryinteger
limitqueryinteger
statusquerystring

Yanıtlar

200Load balancers — data: array<LoadBalancer>
401Missing, invalid or revoked key

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/load-balancers' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers", {
  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/load-balancers

Yük dengeleyici sipariş etKapsam: cloud_order

Bakiyeden sipariş + ödeme (sunucularla aynı para kuralları): "confirm": true, Idempotency-Key başlığı, teklif için dry_run. Yaklaşık bir dakikada hazır; sonra servis ve hedef ekleyin.

Parametreler

AlaninTürAçıklama
Idempotency-Keyheaderstring

İstek gövdesi

AlanTürAçıklama
sizestring (small, medium, large)
product_idinteger
regionstring (eu-de-1, eu-de-2, eu-fi-1)
cyclestring
end_customer_idinteger
dry_runboolean
confirmboolean

Yanıtlar

201Ordered — data: object
200Quote (dry_run) — data: object
400Malformed request (e.g. missing Idempotency-Key)
401Missing, invalid or revoked key
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/load-balancers' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"size": "small", "product_id": 1, "region": "eu-de-1", "cycle": "string", "end_customer_id": 1, "dry_run": true, "confirm": true}'
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/load-balancers", headers=h, json={"size": "small", "product_id": 1, "region": "eu-de-1", "cycle": "string", "end_customer_id": 1, "dry_run": True, "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
    "Idempotency-Key": crypto.randomUUID(),
  },
  body: JSON.stringify({"size": "small", "product_id": 1, "region": "eu-de-1", "cycle": "string", "end_customer_id": 1, "dry_run": true, "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/load-balancers/{id}

Yük dengeleyiciyi getirKapsam: cloud_read

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Load balancer — data: LoadBalancer
401Missing, invalid or revoked key
404Not found — also returned for objects owned by someone else

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466", {
  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}`);

DELETE/cloud/load-balancers/{id}

Yük dengeleyiciyi sil (iptal)Kapsam: cloud_delete

confirm=true gerekir. immediate=true hemen iptal eder: trafik ve faturalama durur, yük dengeleyici ve sertifikaları bekleme süresinden (3 gün) sonra silinir. immediate yoksa iptal talebi açılır.

Parametreler

AlaninTürAçıklama
id zorunlupathinteger
confirmqueryboolean
immediatequeryboolean

Yanıtlar

202Cancelling — data: object
401Missing, invalid or revoked key
404Not found — also returned for objects owned by someone else
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466", {
  method: "DELETE",
  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/load-balancers/{id}/services

Yük dengeleyicinin servislerini (portlarını) listeleKapsam: services_read

Servisler, sağlık kontrolü ve HTTP seçenekleriyle; ayrıca sertifikalar ve sınırlar.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/services' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/services", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/services", {
  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/load-balancers/{id}/services

Servis ekleKapsam: services_write

Dinleyici ekler. HTTPS en az bir sertifika ister; TLS yük dengeleyicide sonlanır, hedeflere HTTP gider. Şifreli geçiş için TCP 443.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

İstek gövdesi

AlanTürAçıklama
protocol zorunlustring (tcp, http, https)
listen_port zorunluintegerPort the load balancer listens on
destination_port zorunluintegerPort on the targets
proxyprotocolbooleanSend PROXY protocol header to targets
hc_protocolstring (tcp, http)Health check type
hc_portinteger
hc_intervalinteger3-60 s
hc_timeoutinteger1-30 s, below interval
hc_retriesinteger0-5
hc_pathstringHTTP check path (starts with /)
hc_domainstringHTTP check Host header
hc_status_codesstringComma separated, e.g. 2??,3??
hc_tlsbooleanHTTP check over TLS
stickybooleanSticky sessions (cookie)
cookie_namestring
cookie_lifetimeinteger
idle_timeoutintegerIdle timeout (s)
certificatesstringHTTPS: comma separated certificate ids of this load balancer
redirect_httpbooleanHTTPS: redirect port 80 to HTTPS (port 80 must be free)
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/services' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"protocol": "tcp", "listen_port": 1, "destination_port": 1, "proxyprotocol": true, "hc_protocol": "tcp", "hc_port": 1, "hc_interval": 1, "hc_timeout": 1, "hc_retries": 1, "hc_path": "string", "hc_domain": "string", "hc_status_codes": "string", "hc_tls": true, "sticky": true, "cookie_name": "string", "cookie_lifetime": 1, "idle_timeout": 1, "certificates": "string", "redirect_http": true, "confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/services", headers=h, json={"protocol": "tcp", "listen_port": 1, "destination_port": 1, "proxyprotocol": True, "hc_protocol": "tcp", "hc_port": 1, "hc_interval": 1, "hc_timeout": 1, "hc_retries": 1, "hc_path": "string", "hc_domain": "string", "hc_status_codes": "string", "hc_tls": True, "sticky": True, "cookie_name": "string", "cookie_lifetime": 1, "idle_timeout": 1, "certificates": "string", "redirect_http": True, "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/services", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"protocol": "tcp", "listen_port": 1, "destination_port": 1, "proxyprotocol": true, "hc_protocol": "tcp", "hc_port": 1, "hc_interval": 1, "hc_timeout": 1, "hc_retries": 1, "hc_path": "string", "hc_domain": "string", "hc_status_codes": "string", "hc_tls": true, "sticky": true, "cookie_name": "string", "cookie_lifetime": 1, "idle_timeout": 1, "certificates": "string", "redirect_http": true, "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

PATCH/cloud/load-balancers/{id}/services/{port}

Servisi güncelleKapsam: services_write

{port} servisinin seçeneklerini değiştirir. Protokol değişmez (silip ekleyin).

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
port zorunlupathstringListen port

İstek gövdesi

AlanTürAçıklama
destination_portintegerPort on the targets
proxyprotocolbooleanSend PROXY protocol header to targets
hc_protocolstring (tcp, http)Health check type
hc_portinteger
hc_intervalinteger3-60 s
hc_timeoutinteger1-30 s, below interval
hc_retriesinteger0-5
hc_pathstringHTTP check path (starts with /)
hc_domainstringHTTP check Host header
hc_status_codesstringComma separated, e.g. 2??,3??
hc_tlsbooleanHTTP check over TLS
stickybooleanSticky sessions (cookie)
cookie_namestring
cookie_lifetimeinteger
idle_timeoutintegerIdle timeout (s)
certificatesstringHTTPS: comma separated certificate ids of this load balancer
redirect_httpbooleanHTTPS: redirect port 80 to HTTPS (port 80 must be free)
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X PATCH 'https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/services/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"destination_port": 1, "proxyprotocol": true, "hc_protocol": "tcp", "hc_port": 1, "hc_interval": 1, "hc_timeout": 1, "hc_retries": 1, "hc_path": "string", "hc_domain": "string", "hc_status_codes": "string", "hc_tls": true, "sticky": true, "cookie_name": "string", "cookie_lifetime": 1, "idle_timeout": 1, "certificates": "string", "redirect_http": true, "confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.patch("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/services/1", headers=h, json={"destination_port": 1, "proxyprotocol": True, "hc_protocol": "tcp", "hc_port": 1, "hc_interval": 1, "hc_timeout": 1, "hc_retries": 1, "hc_path": "string", "hc_domain": "string", "hc_status_codes": "string", "hc_tls": True, "sticky": True, "cookie_name": "string", "cookie_lifetime": 1, "idle_timeout": 1, "certificates": "string", "redirect_http": True, "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/services/1", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"destination_port": 1, "proxyprotocol": true, "hc_protocol": "tcp", "hc_port": 1, "hc_interval": 1, "hc_timeout": 1, "hc_retries": 1, "hc_path": "string", "hc_domain": "string", "hc_status_codes": "string", "hc_tls": true, "sticky": true, "cookie_name": "string", "cookie_lifetime": 1, "idle_timeout": 1, "certificates": "string", "redirect_http": true, "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/cloud/load-balancers/{id}/services/{port}

Servisi silKapsam: services_write

{port} portundaki dinlemeyi durdurur. "confirm": true gerekir.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
port zorunlupathstringListen port

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/services/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/services/1", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/services/1", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/load-balancers/{id}/targets

Hedefleri sağlık durumuyla listeleKapsam: services_read

Hedefler, servis başına sağlık durumu ve eklenebilecek bulut sunucular / fiziksel sunucu IP'leri.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/targets' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/targets", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/targets", {
  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/load-balancers/{id}/targets

Hedef ekleKapsam: services_write

type=server (server = bulut sunucu hizmet no, aynı bölge), type=all (tüm bulut sunucularınız, yeniler otomatik) ya da type=ip (fiziksel sunucu IP'niz). use_private_ip için özel ağ bağlı olmalı.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

İstek gövdesi

AlanTürAçıklama
type zorunlustring (server, all, ip)
serverintegerCloud server id (type=server)
ipstringDedicated server IP (type=ip)
use_private_ipboolean
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/targets' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"type": "server", "server": 1, "ip": "string", "use_private_ip": true, "confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/targets", headers=h, json={"type": "server", "server": 1, "ip": "string", "use_private_ip": True, "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/targets", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"type": "server", "server": 1, "ip": "string", "use_private_ip": true, "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/cloud/load-balancers/{id}/targets

Hedefi çıkarKapsam: services_write

Eklemedeki alanlar; sorguda (?type=server&server=123&confirm=true) ya da JSON gövdede. "confirm": true gerekir.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
typequerystringserver | all | ip
serverquerystringCloud server id
ipquerystringDedicated server IP

İstek gövdesi

AlanTürAçıklama
typestring
serverinteger
ipstring
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/targets' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"type": "string", "server": 1, "ip": "string", "confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/targets", headers=h, json={"type": "string", "server": 1, "ip": "string", "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/targets", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"type": "string", "server": 1, "ip": "string", "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/load-balancers/{id}/certificates

Sertifikaları listeleKapsam: services_read

Yüklenen ve Let's Encrypt sertifikaları (Let's Encrypt kendiliğinden yenilenir), bekleyen istek ve doğrulama yönlendirme adresi.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/certificates' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/certificates", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/certificates", {
  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/load-balancers/{id}/certificates

Sertifika yükleKapsam: services_write

PEM sertifika zinciri + şifresiz özel anahtar. Anahtar yalnız yük dengeleyiciye gönderilir; panelde saklanmaz, loglanmaz.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

İstek gövdesi

AlanTürAçıklama
namestring
certificate zorunlustringPEM chain
private_key zorunlustringPEM key (unencrypted)
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/certificates' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "string", "certificate": "string", "private_key": "string", "confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/certificates", headers=h, json={"name": "string", "certificate": "string", "private_key": "string", "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/certificates", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"name": "string", "certificate": "string", "private_key": "string", "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/cloud/load-balancers/{id}/certificates/letsencrypt

Ücretsiz Let's Encrypt sertifikası isteKapsam: services_write

A kaydı bu yük dengeleyiciye yönlenmiş en çok 10 ad. Hedefleriniz /.well-known/acme-challenge/<token> isteklerini GET certificates'taki adrese yönlendirmeli; acme=waiting yanıtı ad başına kontrolü verir, yönlendirmeyi düzeltip verify çağırın.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

İstek gövdesi

AlanTürAçıklama
domains zorunlustringComma separated names
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/certificates/letsencrypt' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domains": "string", "confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/certificates/letsencrypt", headers=h, json={"domains": "string", "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/certificates/letsencrypt", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"domains": "string", "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/cloud/load-balancers/{id}/certificates/letsencrypt

Bekleyen Let's Encrypt isteğini iptal etKapsam: services_write

Bekleyen isteği bırakır. "confirm": true gerekir.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/certificates/letsencrypt' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/certificates/letsencrypt", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/certificates/letsencrypt", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/cloud/load-balancers/{id}/certificates/letsencrypt/verify

Bekleyen Let's Encrypt isteğini sürdürKapsam: services_write

Yönlendirmeyi yeniden dener, doğrulatır ve sertifikayı yükler (acme=issued).

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/certificates/letsencrypt/verify' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/certificates/letsencrypt/verify", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/certificates/letsencrypt/verify", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/cloud/load-balancers/{id}/certificates/{cid}

Sertifikayı silKapsam: services_write

Yalnız bir serviste kullanılmayan sertifikalar. "confirm": true gerekir.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
cid zorunlupathstringCertificate id

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/certificates/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/certificates/1", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/certificates/1", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/load-balancers/{id}/settings

Algoritma, ters DNS, özel ağKapsam: services_read

Algoritma, PTR kayıtları, aynı bölgedeki özel ağlarınız ve sınırlar.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/settings' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/settings", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/settings", {
  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}`);

PUT/cloud/load-balancers/{id}/algorithm

Dağıtım algoritmasını değiştirKapsam: services_write

round_robin ya da least_connections.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

İstek gövdesi

AlanTürAçıklama
algorithm zorunlustring (round_robin, least_connections)
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X PUT 'https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/algorithm' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"algorithm": "round_robin", "confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.put("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/algorithm", headers=h, json={"algorithm": "round_robin", "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/algorithm", {
  method: "PUT",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"algorithm": "round_robin", "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

PUT/cloud/load-balancers/{id}/rdns

Ters DNS ayarlaKapsam: services_write

Yük dengeleyici IP'lerinden biri için PTR; boş değer varsayılana döndürür.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

İstek gövdesi

AlanTürAçıklama
ip zorunlustring
ptrstring
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X PUT 'https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/rdns' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"ip": "string", "ptr": "string", "confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.put("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/rdns", headers=h, json={"ip": "string", "ptr": "string", "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/rdns", {
  method: "PUT",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"ip": "string", "ptr": "string", "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/cloud/load-balancers/{id}/network

Özel ağa bağlaKapsam: services_write

Aynı bölgedeki özel ağlarınızdan biri (GET settings).

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

İstek gövdesi

AlanTürAçıklama
network zorunluinteger
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/network' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"network": 1, "confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/network", headers=h, json={"network": 1, "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/network", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"network": 1, "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/cloud/load-balancers/{id}/network/{nid}

Özel ağdan ayırKapsam: services_write

Özel IP kullanan hedefler önce çıkarılmalı. "confirm": true gerekir.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
nid zorunlupathstringPrivate network id

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/network/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/network/1", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/network/1", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/load-balancers/{id}/metrics

Yük dengeleyici ölçümleriKapsam: services_read

Açık bağlantı, yeni bağlantı/sn, istek/sn, bant genişliği (Mbit/s).

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
periodquerystring24h | 7d | 30d

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/metrics' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/metrics", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/load-balancers/47466/metrics", {
  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}`);

Managed DNS

ns1.gyrodns.net (İstanbul) + ns2.gyrodns.net (Almanya) yetkili DNS: zone'lar, kayıtlar, BIND içe/dışa aktarma, tek tık DNSSEC, sağlık kontrollü failover kayıtları.

GET/cloud/dns/{id}/zones

DNS zone'larını listeleKapsam: services_read

Bu DNS hizmetinin zone'ları (items, durum active|pending ve TXT doğrulama değeri), cPanel hosting'inizden kopyalanan salt okunur zone'lar (cpanel), paket sınırları ve ad sunucularımız.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones", {
  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/dns/{id}/zones

Zone ekleKapsam: services_write

Alan adını talep eder. Sahiplik doğrulanınca ns1/ns2.gyrodns.net'te yayınlanır: ad sunucularımıza devir (zaten devredilmişse hemen) ya da mevcut DNS'inizde _gyrodns-dogrulama.<zone> = txt_value TXT kaydı. İsteğe bağlı bind (zone dosyası) etkinleşince içe aktarılır (SOA ve kök NS yok sayılır).

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

İstek gövdesi

AlanTürAçıklama
name zorunlustringZone name (IDN allowed)
bindstringOptional BIND zone file (max 2 MB)
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "string", "bind": "string", "confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones", headers=h, json={"name": "string", "bind": "string", "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"name": "string", "bind": "string", "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/dns/{id}/zones/{zone}

Zone'u kayıtlarıyla getirKapsam: services_read

Zone durumu, seri, DNSSEC (+DS) ve tüm kayıt kümeleri. Bekleyen zone'larda doğrulama bilgisi döner.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
zone zorunlupathstringZone name

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/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}`);

DELETE/cloud/dns/{id}/zones/{zone}

Zone'u silKapsam: services_write

Zone'u ve sağlık kontrollerini ad sunucularımızdan hemen kaldırır. "confirm": true gerekir.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
zone zorunlupathstringZone name

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/cloud/dns/{id}/zones/{zone}/verify

Sahipliği şimdi doğrulaKapsam: services_write

Devri / TXT'yi şimdi kontrol eder (sistem 14 gün boyunca kendiliğinden de kontrol eder).

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
zone zorunlupathstringZone name

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1/verify' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1/verify", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1/verify", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/cloud/dns/{id}/zones/{zone}/import

BIND zone dosyası içe aktarKapsam: services_write

merge dosyadaki kayıt kümelerini değiştirir, diğerlerini korur; replace dosyada olmayanları da siler. SOA ve kök NS yok sayılır; desteklenmeyen tipler skipped içinde. "confirm": true gerekir.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
zone zorunlupathstringZone name

İstek gövdesi

AlanTürAçıklama
bind zorunlustring
modestring (merge, replace)
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1/import' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"bind": "string", "mode": "merge", "confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1/import", headers=h, json={"bind": "string", "mode": "merge", "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1/import", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"bind": "string", "mode": "merge", "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/dns/{id}/zones/{zone}/export

Zone dosyasını dışa aktarKapsam: services_read

Zone'u BIND biçiminde döner (bind).

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
zone zorunlupathstringZone name

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1/export' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1/export", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1/export", {
  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/dns/{id}/zones/{zone}/records

Kayıt kümelerini listeleKapsam: services_read

Tüm kayıt kümeleri (rrsets). source=cpanel cPanel hosting zone'unuzu okur (salt okunur).

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
zone zorunlupathstringZone name
sourcequerystringgyrodns (default) | cpanel

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1/records' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1/records", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1/records", {
  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}`);

PUT/cloud/dns/{id}/zones/{zone}/records

Kayıt kümesi oluştur ya da değiştirKapsam: services_write

Bir kayıt kümesini (ad + tip) yazar. CNAME ve ALIAS tek değer alır; kökte CNAME olmaz (ALIAS kullanın); kök NS ve SOA bizde.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
zone zorunlupathstringZone name

İstek gövdesi

AlanTürAçıklama
name zorunlustringRecord name relative to the zone (@ = apex, * = wildcard) or FQDN with trailing dot
type zorunlustring (A, AAAA, CNAME, MX, TXT, SRV, CAA, ALIAS, NS, PTR)
ttlinteger60-86400 s
records zorunluarray<string>Values in zone file syntax, one per item (TXT quotes optional)
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X PUT 'https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1/records' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "string", "type": "A", "ttl": 1, "records": ["string"], "confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.put("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1/records", headers=h, json={"name": "string", "type": "A", "ttl": 1, "records": ["string"], "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1/records", {
  method: "PUT",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"name": "string", "type": "A", "ttl": 1, "records": ["string"], "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/cloud/dns/{id}/zones/{zone}/records

Kayıt kümesini silKapsam: services_write

name ve type (sorgu) ile verilen kayıt kümesini siler. "confirm": true gerekir.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
zone zorunlupathstringZone name
namequerystringRecord name
typequerystringRecord type

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1/records' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1/records", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1/records", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/dns/{id}/zones/{zone}/dnssec

DNSSEC durumu ve DS kayıtlarıKapsam: services_read

dnssec ve ds (kayıt firmasına girilecek).

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
zone zorunlupathstringZone name

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1/dnssec' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1/dnssec", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1/dnssec", {
  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/dns/{id}/zones/{zone}/dnssec

DNSSEC açKapsam: services_write

Zone'u imzalar (ECDSA P-256), DS kayıtlarını döner. DS kayıt firmasına girilene kadar etkisizdir. ALIAS ile kullanılamaz.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
zone zorunlupathstringZone name

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1/dnssec' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1/dnssec", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1/dnssec", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/cloud/dns/{id}/zones/{zone}/dnssec

DNSSEC kapatKapsam: services_write

Önce kayıt firmasındaki DS'yi silip TTL kadar bekleyin, yoksa doğrulayan çözümleyiciler hata verir. "confirm": true gerekir.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
zone zorunlupathstringZone name

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1/dnssec' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1/dnssec", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/zones/1/dnssec", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/cloud/dns/{id}/health-checks

Sağlık kontrollü kayıtları listeleKapsam: services_read

Ana/yedek IP, etkin olan ve son durum (3 lokasyon çoğunluğu).

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

Yanıtlar

200Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/health-checks' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/health-checks", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/health-checks", {
  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/dns/{id}/health-checks

Sağlık kontrollü kayıt oluşturKapsam: services_write

name kaydını primary'ye yönlendirir; kontrol çoğunluk lokasyondan düşerse backup'a geçer, 3 başarılı turdan sonra geri döner. Bir sağlık kontrolü ek hizmet birimi kullanır.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id

İstek gövdesi

AlanTürAçıklama
zone zorunlustring
name zorunlustring
type zorunlustring (A, AAAA)
primary zorunlustring
backup zorunlustring
check zorunlustring (http, https, tcp, ping)
portinteger
pathstring
ttlinteger30-300 s
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/health-checks' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"zone": "string", "name": "string", "type": "A", "primary": "string", "backup": "string", "check": "http", "port": 1, "path": "string", "ttl": 1, "confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/health-checks", headers=h, json={"zone": "string", "name": "string", "type": "A", "primary": "string", "backup": "string", "check": "http", "port": 1, "path": "string", "ttl": 1, "confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/health-checks", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"zone": "string", "name": "string", "type": "A", "primary": "string", "backup": "string", "check": "http", "port": 1, "path": "string", "ttl": 1, "confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/cloud/dns/{id}/health-checks/{hid}

Sağlık kontrolünü silKapsam: services_write

Kontrol durur; kayıt mevcut değerinde kalır. "confirm": true gerekir.

Parametreler

AlaninTürAçıklama
id zorunlupathintegerService id
hid zorunlupathstringHealth check id

İstek gövdesi

AlanTürAçıklama
confirmboolean

Yanıtlar

202Tool data / result — data: object
404Not found — also returned for objects owned by someone else
409State conflict (server_locked, not_actionable, ssh_key_exists, server_limit, idempotency_in_flight)
422Validation or business rule failure (confirm_required, invalid_image, tool_action_failed ...)

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/health-checks/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/health-checks/1", headers=h, json={"confirm": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/cloud/dns/47466/health-checks/1", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"confirm": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

Başvuru verisi

Ülke, il, ilçe.

GET/reference/countries

Get countriesKapsam: Reference/GetCountries

Yanıtlar

200Success — data: array<object>
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/reference/countries' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/reference/countries", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/reference/countries", {
  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/reference/countries/{code}/states

Get statesKapsam: Reference/GetStates

Parametreler

AlaninTürAçıklama
code zorunlupathstring

Yanıtlar

200Success — data: array<object>
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/reference/countries/1/states' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/reference/countries/1/states", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/reference/countries/1/states", {
  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/reference/states/{id}/cities

Get citiesKapsam: Reference/GetCities

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Success — data: array<object>
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/reference/states/47466/cities' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/reference/states/47466/cities", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/reference/states/47466/cities", {
  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}`);

Hizmetler (çekirdek)

Çekirdek hizmet uçları: yenileme, iptal, otomatik yenileme, ek hizmetler, ölçümler, SSO, parola.

GET/services

Hizmetleri ListelemeKapsam: Services/GetServices

Hesabın sahip olduğu hizmetleri döndürür. — anahtarın sahibi

Parametreler

AlaninTürAçıklama
pagequeryintegerKaçıncı sayfa.
limitqueryintegerSayfa başına satır. En çok 100.
statusquerystringDurum süzgeci. Rozet gruplarını alır: bekleyen hem kurulumdakini hem işlemdekini kapsar, iptal ise tamamlananı da içerir.
typequerystringÜrün türü süzgeci.
searchquerystringHizmet adında ve bağlı alan adında arar.

Yanıtlar

200Success — data: array<object>
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/services' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/services", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services", {
  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/services/{id}

Hizmeti OkumaKapsam: Services/GetService

Hizmetin ayarlarını, erişim bilgilerini ve yenileme durumunu döndürür. — anahtarın sahibi

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/services/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/services/47466", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/47466", {
  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}`);

PATCH/services/{id}

Hizmet Tercihlerini DeğiştirmeKapsam: Services/UpdateService

Otomatik yenilemeyi ve fatura profilini değiştirir. — iki alan

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

İstek gövdesi

AlanTürAçıklama
auto_renewbooleanHizmet bazlı otomatik yenileme. Hesap geneli otomatik ödeme açıkken değiştirilemez.
billing_profile_idintegerFatura profilinin numarası. Sıfır hesabın varsayılanına döner.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422autorenew_locked, no_auto_pay_source, not_actionable, nothing_to_update

Kod örnekleri

curl -s -X PATCH 'https://www.gyrohosting.com/api/v1/client/services/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"auto_renew": true, "billing_profile_id": 1}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.patch("https://www.gyrohosting.com/api/v1/client/services/47466", headers=h, json={"auto_renew": True, "billing_profile_id": 1}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/47466", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"auto_renew": true, "billing_profile_id": 1}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/services/{id}/renew

Yenileme Faturası KesmeKapsam: Services/RenewService

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). Hizmet için bir yenileme faturası keser. — fatura üretir

Parametreler

AlaninTürAçıklama
id zorunlupathinteger
Idempotency-Key zorunluheaderstring

İstek gövdesi

AlanTürAçıklama
cyclestringYenileme döngüsü. Hizmet detayındaki döngü listesinden seçilir; verilmezse mevcut döngü kullanılır.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422already_invoiced, cycle_invalid, not_renewable, renew_blocked_subscription, renew_disabled

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/services/47466/renew' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"cycle": "string"}'
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/services/47466/renew", headers=h, json={"cycle": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/47466/renew", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
    "Idempotency-Key": crypto.randomUUID(),
  },
  body: JSON.stringify({"cycle": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/services/{id}/invoices

Hizmetin Faturalarını OkumaKapsam: Services/GetServiceInvoices

Bu hizmeti faturalayan belgeleri döndürür. — anahtarın sahibi

Parametreler

AlaninTürAçıklama
id zorunlupathinteger
limitqueryintegerEn çok satır. En çok 100.
pagequeryinteger

Yanıtlar

200Success — data: array<object>
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/services/47466/invoices' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/services/47466/invoices", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/47466/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/services/{id}/addons

Hizmet Eklentilerini OkumaKapsam: Services/GetServiceAddons

Hizmete bağlı ek hizmetleri döndürür. — anahtarın sahibi

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Success — data: array<object>
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/services/47466/addons' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/services/47466/addons", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/47466/addons", {
  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/services/{id}/cancellation

İptal Talebi AçmaKapsam: Services/CreateCancellation

Hizmetin iptali için bir talep açar. — aynı anda tek talep

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

İstek gövdesi

AlanTürAçıklama
urgency zorunlustringNe zaman iptal edilsin: hemen ya da dönem sonunda.
reason zorunlustringGerekçe. Beş değerden biri: gerek kalmadı, pahalı, başka yere geçiliyor, özellik eksik ya da diğer.
reason_detailstringSerbest açıklama. Gerekçe diğer ise zorunludur.
notestringOperatöre not.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422cancellation_exists, not_actionable, one_time_service, reason_detail_required

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/services/47466/cancellation' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"urgency": "string", "reason": "string", "reason_detail": "string", "note": "string"}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/services/47466/cancellation", headers=h, json={"urgency": "string", "reason": "string", "reason_detail": "string", "note": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/47466/cancellation", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"urgency": "string", "reason": "string", "reason_detail": "string", "note": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/services/{id}/cancellation

İptal Talebini Geri ÇekmeKapsam: Services/RevokeCancellation

Açık bir iptal talebini geri çeker. — anahtarın sahibi

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/services/47466/cancellation' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/services/47466/cancellation", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/47466/cancellation", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/services/{id}/metrics

Ölçümleri OkumaKapsam: Services/GetServiceMetrics

Kullanıma göre ücretlenen ölçümleri ve tahmini bedeli döndürür. — kullanıma göre ücret

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/services/47466/metrics' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/services/47466/metrics", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/47466/metrics", {
  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/services/{id}/metrics/billing

Kullanım Fatura GeçmişiKapsam: Services/GetServiceMetricBilling

Ölçümlerin dönem dönem faturalanmış kullanımını döndürür. — anahtarın sahibi

Parametreler

AlaninTürAçıklama
id zorunlupathinteger
pagequeryintegerKaçıncı sayfa.
limitqueryintegerSayfa başına satır. En çok 100.
metricquerystringTek bir ölçüme daraltır.

Yanıtlar

200Success — data: array<object>
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/services/47466/metrics/billing' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/services/47466/metrics/billing", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/47466/metrics/billing", {
  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}`);

PATCH/services/{id}/metrics/{key}

Ölçümü Açma ve KapatmaKapsam: Services/UpdateServiceMetric

Bir ölçümü açar ya da kapatır. — ödenmemiş fatura kilitler

Parametreler

AlaninTürAçıklama
id zorunlupathinteger
key zorunlupathstring

İstek gövdesi

AlanTürAçıklama
enabled zorunlubooleanİstenen durum.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422enabled_invalid, metric_module_rejected, metric_not_priced, metric_unpaid_lock, not_actionable

Kod örnekleri

curl -s -X PATCH 'https://www.gyrohosting.com/api/v1/client/services/47466/metrics/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.patch("https://www.gyrohosting.com/api/v1/client/services/47466/metrics/1", headers=h, json={"enabled": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/47466/metrics/1", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"enabled": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/services/{id}/dashboard

Panel Özetini OkumaKapsam: Services/GetServiceDashboard

Hizmetin arkasındaki panelin özetini ve yeteneklerini döndürür. — modüle canlı sorar

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422module_unavailable, not_actionable

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/services/47466/dashboard' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/services/47466/dashboard", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/47466/dashboard", {
  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/services/{id}/tools

Araçları ListelemeKapsam: Services/GetServiceTools

Hizmet üzerinde kullanılabilecek panel araçlarını döndürür. — modüle canlı sorar

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422tools_not_supported

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/services/47466/tools' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/services/47466/tools", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/47466/tools", {
  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/services/{id}/tools/{tool}

Araç Verisini OkumaKapsam: Services/GetServiceToolData

Bir aracın listelediği veriyi panelden çeker. — modüle canlı sorar

Parametreler

AlaninTürAçıklama
id zorunlupathinteger
tool zorunlupathstring
actionquerystringOkuma eylemi. Verilmezse aracın varsayılan listesi alınır.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422tool_rejected, tools_not_supported
500tool_data_failed

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/services/47466/tools/1' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/services/47466/tools/1", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/47466/tools/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/services/{id}/tools/{tool}/{action}

Araç Eylemi ÇalıştırmaKapsam: Services/RunServiceToolAction

Bir araç üzerinde oluşturma, düzenleme ya da silme çalıştırır. DNS kaydı düzenlemesi (dns-zone-editor/edit) yalnız gönderdiğinizi değiştirir: gönderilmeyen ad, TTL ya da öncelik kaydın mevcut değerini korur. — sunucuda değişiklik

Parametreler

AlaninTürAçıklama
id zorunlupathinteger
tool zorunlupathstring
action zorunlupathstring

İstek gövdesi

AlanTürAçıklama
current_pathstring
filestring
namestring
new_namestring
itemsstring

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422tool_action_failed, tool_rejected, tools_not_supported
500tool_action_failed

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/services/47466/tools/1/reboot' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"current_path": "string", "file": "string", "name": "string", "new_name": "string", "items": "string"}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/services/47466/tools/1/reboot", headers=h, json={"current_path": "string", "file": "string", "name": "string", "new_name": "string", "items": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/47466/tools/1/reboot", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"current_path": "string", "file": "string", "name": "string", "new_name": "string", "items": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/services/{id}/module-method

Modül Metodu ÇalıştırmaKapsam: Services/UseServiceModuleMethod

Modülün müşteriye açtığı bir metodu çalıştırır. — beyanlı metotlar

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

İstek gövdesi

AlanTürAçıklama
method zorunlustringÇalıştırılacak metot. Panel özetindeki metot listesinden alınır.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422invalid_method, method_required, module_unavailable, tool_rejected
500module_method_failed

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/services/47466/module-method' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"method": "string"}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/services/47466/module-method", headers=h, json={"method": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/47466/module-method", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"method": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/services/{id}/sso

Panele Tek Oturum AçmaKapsam: Services/GetServiceSso

Panele parolasız giriş için tek kullanımlık bir adres üretir. — kısa ömürlü adres

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422sso_not_supported, tool_rejected
500sso_failed

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/services/47466/sso' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/services/47466/sso", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/47466/sso", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/services/{id}/password

Panel Parolasını DeğiştirmeKapsam: Services/ChangeServicePassword

Hizmetin panel parolasını değiştirir. — barındırma ve sunucu

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

İstek gövdesi

AlanTürAçıklama
password zorunlustringYeni panel parolası. Operatörün asgari uzunluğunu karşılamalıdır.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422password_change_failed, password_not_supported, password_too_short

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/services/47466/password' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"password": "string"}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/services/47466/password", headers=h, json={"password": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/47466/password", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"password": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

Alan adı ve DNS

Kayıt, transfer, yenileme, ad sunucuları, DNS kayıtları, DNSSEC, kilit, EPP kodu, gizlilik, WHOIS kişileri, yönlendirme (çekirdek WISECP müşteri API'si).

GET/domains/tlds

Uzantı Fiyatlarını OkumaKapsam: Domains/GetTlds

Satıştaki uzantıları süreleri ve fiyatlarıyla döndürür. — cüzdan para birimi

Parametreler

AlaninTürAçıklama
tldquerystringTek bir uzantı. Listeyi daraltır ve süre başına fiyat tablosunu ekler.

Yanıtlar

200Success — data: array<object>
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422domains_not_offered

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/domains/tlds' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/domains/tlds", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/tlds", {
  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/domains/check

Alan Adının Boş Olup Olmadığını SormaKapsam: Domains/CheckDomain

Bir alan adının alınabilirliğini canlı sorar. — kayıt kuruluşuna sorar

İstek gövdesi

AlanTürAçıklama
domain zorunlustringSorulacak tam alan adı.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
422domain_check_throttled, domain_invalid, domain_required, domains_not_offered, tld_not_offered

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/domains/check' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domain": "string"}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/domains/check", headers=h, json={"domain": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/check", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"domain": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/domains/register

Alan Adı KaydetmeKapsam: Domains/RegisterDomain

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). Yeni bir alan adı sipariş eder ve tahsil eder. — bakiye ya da kayıtlı kart

Parametreler

AlaninTürAçıklama
Idempotency-Key zorunluheaderstring

İstek gövdesi

AlanTürAçıklama
terms zorunlubooleanŞartların kabulü. Doğru gönderilmelidir.
domain zorunlustringTam alan adı.
yearsintegerKayıt süresi. Uzantının penceresi içinde olmalı; özel fiyatlı adlar ne gönderilirse gönderilsin bir yıl kaydedilir.
accept_premiumbooleanÖzel fiyatlı adın fiyatını kabul. Böyle bir adda zorunludur.
addonsstringBirlikte alınacak ek hizmetler. Alan adı yönetimi, kayıt gizliliği ve yönlendirme; yalnız uzantı sunuyorsa.
nameserversstringAd sunucuları. İkiden dörde; verilmezse hesabın varsayılanları uygulanır.
whois_profile_idintegerKayıtlı kayıt sahibi profili. Dört rolü birden doldurur.
contactsobjectRol bazında kişiler. Her rol ya kayıtlı bir profil numarası ya da satır içi bir kişi taşır ve o rol için profili ezer.
couponsstringKupon kodları.
billing_profile_idintegerFatura profilinin numarası.
notesstringSipariş notu.
paymentobjectÖdeme kaynağı. Hesap bakiyesi ya da kayıtlı kart.
auth_codestring
methodstring
card_idstring

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422addon_not_offered, contact_field_invalid, contact_field_required, domains_not_offered, insufficient_balance, nameservers_invalid, terms_required, tld_not_offered, verification_required, years_invalid

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/domains/register' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"terms": true, "domain": "string", "years": 1, "accept_premium": true, "addons": "string", "nameservers": "string", "whois_profile_id": 1, "contacts": {}, "coupons": "string", "billing_profile_id": 1, "notes": "string", "payment": {}, "auth_code": "string", "method": "string", "card_id": "string"}'
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/domains/register", headers=h, json={"terms": True, "domain": "string", "years": 1, "accept_premium": True, "addons": "string", "nameservers": "string", "whois_profile_id": 1, "contacts": {}, "coupons": "string", "billing_profile_id": 1, "notes": "string", "payment": {}, "auth_code": "string", "method": "string", "card_id": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/register", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
    "Idempotency-Key": crypto.randomUUID(),
  },
  body: JSON.stringify({"terms": true, "domain": "string", "years": 1, "accept_premium": true, "addons": "string", "nameservers": "string", "whois_profile_id": 1, "contacts": {}, "coupons": "string", "billing_profile_id": 1, "notes": "string", "payment": {}, "auth_code": "string", "method": "string", "card_id": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/domains/transfer

Alan Adı TransferiKapsam: Domains/TransferDomain

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). Başka bir sağlayıcıdaki alan adını buraya taşır. — kod gerekebilir

Parametreler

AlaninTürAçıklama
Idempotency-Key zorunluheaderstring

İstek gövdesi

AlanTürAçıklama
terms zorunlubooleanŞartların kabulü. Doğru gönderilmelidir.
domain zorunlustringTam alan adı.
auth_codestringMevcut sağlayıcıdan alınan transfer kodu. Uzantı işaretliyse zorunludur ve her durumda hizmete yazılır.
addonsstringBirlikte alınacak ek hizmetler. Alan adı yönetimi, kayıt gizliliği ve yönlendirme; yalnız uzantı sunuyorsa.
nameserversstringAd sunucuları. İkiden dörde; verilmezse hesabın varsayılanları uygulanır.
whois_profile_idintegerKayıtlı kayıt sahibi profili. Dört rolü birden doldurur.
contactsobjectRol bazında kişiler. Her rol ya kayıtlı bir profil numarası ya da satır içi bir kişi taşır ve o rol için profili ezer.
couponsstringKupon kodları.
billing_profile_idintegerFatura profilinin numarası.
notesstringSipariş notu.
paymentobjectÖdeme kaynağı. Hesap bakiyesi ya da kayıtlı kart.
yearsstring
accept_premiumstring
methodstring
card_idstring

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
422auth_code_required, checkout_blocked, domain_not_registered, domain_transfer_locked, domains_not_offered, terms_required, transfer_not_offered

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/domains/transfer' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"terms": true, "domain": "string", "auth_code": "string", "addons": "string", "nameservers": "string", "whois_profile_id": 1, "contacts": {}, "coupons": "string", "billing_profile_id": 1, "notes": "string", "payment": {}, "years": "string", "accept_premium": "string", "method": "string", "card_id": "string"}'
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/domains/transfer", headers=h, json={"terms": True, "domain": "string", "auth_code": "string", "addons": "string", "nameservers": "string", "whois_profile_id": 1, "contacts": {}, "coupons": "string", "billing_profile_id": 1, "notes": "string", "payment": {}, "years": "string", "accept_premium": "string", "method": "string", "card_id": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/transfer", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
    "Idempotency-Key": crypto.randomUUID(),
  },
  body: JSON.stringify({"terms": true, "domain": "string", "auth_code": "string", "addons": "string", "nameservers": "string", "whois_profile_id": 1, "contacts": {}, "coupons": "string", "billing_profile_id": 1, "notes": "string", "payment": {}, "years": "string", "accept_premium": "string", "method": "string", "card_id": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/domains/whois-profiles

Kayıtlı Profilleri ListelemeKapsam: Domains/GetWhoisProfiles

Hesabın kayıtlı kişi profillerini döndürür. — hesap geneli

Yanıtlar

200Success — data: array<object>
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/domains/whois-profiles' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/domains/whois-profiles", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/whois-profiles", {
  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/domains/whois-profiles

Profil OluşturmaKapsam: Domains/CreateWhoisProfile

Yeniden kullanılabilir bir kişi profili kaydeder. — hesap geneli

İstek gövdesi

AlanTürAçıklama
name zorunlustringProfilin etiketi.
contact zorunluobjectcontactKaydedilecek kişi. İl burada zorunlu değildir.
first_name zorunlustringKişinin adı.
last_name zorunlustringKişinin soyadı.
companystringKurum adı. Tek isteğe bağlı alandır.
email zorunlustringGeçerli bir e-posta.
phone zorunlustringTelefon.
address zorunlustringAdres satırı.
address2stringİkinci adres satırı. İsteğe bağlı; anahtar yoksa boş satır kaydedilir.
city zorunlustringŞehir.
statestringİl ya da eyalet. Alan adı kişilerinde zorunludur, kayıtlı profillerde değildir.
zip zorunlustringPosta kodu.
country zorunlustringÜlke kodu. Büyük harfe çevrilir.
postal_codestring

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
422contact_email_invalid, contact_field_invalid, contact_field_required, contact_name_required, name_required, profile_rejected
500profile_failed

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/domains/whois-profiles' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "string", "contact": {}, "first_name": "string", "last_name": "string", "company": "string", "email": "string", "phone": "string", "address": "string", "address2": "string", "city": "string", "state": "string", "zip": "string", "country": "string", "postal_code": "string"}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/domains/whois-profiles", headers=h, json={"name": "string", "contact": {}, "first_name": "string", "last_name": "string", "company": "string", "email": "string", "phone": "string", "address": "string", "address2": "string", "city": "string", "state": "string", "zip": "string", "country": "string", "postal_code": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/whois-profiles", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"name": "string", "contact": {}, "first_name": "string", "last_name": "string", "company": "string", "email": "string", "phone": "string", "address": "string", "address2": "string", "city": "string", "state": "string", "zip": "string", "country": "string", "postal_code": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

PUT/domains/whois-profiles/{pid}

Profili GüncellemeKapsam: Domains/UpdateWhoisProfile

Kayıtlı bir profili yeniden yazar. — tam kişi

Parametreler

AlaninTürAçıklama
pid zorunlupathinteger

İstek gövdesi

AlanTürAçıklama
name zorunlustringYeni etiket.
contact zorunluobjectcontactTam kişi. Kayıtlı kişi bütünüyle değiştirilir.
first_name zorunlustringKişinin adı.
last_name zorunlustringKişinin soyadı.
companystringKurum adı. Tek isteğe bağlı alandır.
email zorunlustringGeçerli bir e-posta.
phone zorunlustringTelefon.
address zorunlustringAdres satırı.
address2stringİkinci adres satırı. Profil bütün olarak değiştirilir; anahtar yoksa boş satır kaydedilir.
city zorunlustringŞehir.
statestringİl ya da eyalet. Alan adı kişilerinde zorunludur, kayıtlı profillerde değildir.
zip zorunlustringPosta kodu.
country zorunlustringÜlke kodu. Büyük harfe çevrilir.
postal_codestring

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422contact_email_invalid, contact_field_invalid, contact_field_required, contact_name_required, name_required, profile_rejected

Kod örnekleri

curl -s -X PUT 'https://www.gyrohosting.com/api/v1/client/domains/whois-profiles/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "string", "contact": {}, "first_name": "string", "last_name": "string", "company": "string", "email": "string", "phone": "string", "address": "string", "address2": "string", "city": "string", "state": "string", "zip": "string", "country": "string", "postal_code": "string"}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.put("https://www.gyrohosting.com/api/v1/client/domains/whois-profiles/1", headers=h, json={"name": "string", "contact": {}, "first_name": "string", "last_name": "string", "company": "string", "email": "string", "phone": "string", "address": "string", "address2": "string", "city": "string", "state": "string", "zip": "string", "country": "string", "postal_code": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/whois-profiles/1", {
  method: "PUT",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"name": "string", "contact": {}, "first_name": "string", "last_name": "string", "company": "string", "email": "string", "phone": "string", "address": "string", "address2": "string", "city": "string", "state": "string", "zip": "string", "country": "string", "postal_code": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/domains/whois-profiles/{pid}

Profili SilmeKapsam: Domains/DeleteWhoisProfile

Kayıtlı bir kişi profilini siler. — hesap geneli

Parametreler

AlaninTürAçıklama
pid zorunlupathinteger

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/domains/whois-profiles/1' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/domains/whois-profiles/1", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/whois-profiles/1", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/domains/whois-profiles/{pid}/default

Profili Varsayılan YapmaKapsam: Domains/SetDefaultWhoisProfile

Yeni kayıtlarda kendiliğinden uygulanacak profili belirler. — hesap geneli

Parametreler

AlaninTürAçıklama
pid zorunlupathinteger

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/domains/whois-profiles/1/default' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/domains/whois-profiles/1/default", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/whois-profiles/1/default", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/domains/default-nameservers

Varsayılan Ad Sunucularını OkumaKapsam: Domains/GetDefaultNameservers

Hesabın yeni alan adlarına uygulanan varsayılan setini döndürür. — hesap geneli

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/domains/default-nameservers' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/domains/default-nameservers", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/default-nameservers", {
  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}`);

PUT/domains/default-nameservers

Varsayılan Ad Sunucularını KaydetmeKapsam: Domains/UpdateDefaultNameservers

Yeni alan adlarına uygulanacak varsayılan seti kaydeder. — hesap geneli

İstek gövdesi

AlanTürAçıklama
nameservers zorunlustringVarsayılan set. İkiden dörde kadar geçerli sunucu adı; boşluklar kırpılır ve küçük harfe çevrilir.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
422nameservers_invalid

Kod örnekleri

curl -s -X PUT 'https://www.gyrohosting.com/api/v1/client/domains/default-nameservers' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"nameservers": "string"}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.put("https://www.gyrohosting.com/api/v1/client/domains/default-nameservers", headers=h, json={"nameservers": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/default-nameservers", {
  method: "PUT",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"nameservers": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/domains

Alan Adlarını ListelemeKapsam: Domains/GetDomains

Hesabın alan adlarını döndürür. — anahtarın sahibi

Parametreler

AlaninTürAçıklama
pagequeryintegerKaçıncı sayfa.
limitqueryintegerSayfa başına satır. En çok 100.
statusquerystringDurum süzgeci. Rozet gruplarını alır.
tldquerystringYalnız bu uzantının alan adları.
searchquerystringAlan adında arar.

Yanıtlar

200Success — data: array<object>
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/domains' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/domains", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains", {
  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/domains/{domain}

Alan Adını OkumaKapsam: Domains/GetDomain

Alan adını, sağlayıcının yeteneklerini ve yenileme seçeneklerini döndürür. — yetenek sondası

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/domains/1' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/domains/1", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/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}`);

PATCH/domains/{domain}

Alan Adı Tercihlerini DeğiştirmeKapsam: Domains/UpdateDomain

Otomatik yenilemeyi ve fatura profilini değiştirir. — iki alan

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

İstek gövdesi

AlanTürAçıklama
auto_renewbooleanAlan adı bazlı otomatik yenileme. Yalnız etkin alan adlarında ve gerçek bir mantıksal değerle.
billing_profile_idintegerFatura profilinin numarası. Sıfır hesabın varsayılanına döner.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422auto_renew_invalid, autorenew_locked, billing_profile_rejected, no_auto_pay_source, not_actionable, nothing_to_update

Kod örnekleri

curl -s -X PATCH 'https://www.gyrohosting.com/api/v1/client/domains/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"auto_renew": true, "billing_profile_id": 1}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.patch("https://www.gyrohosting.com/api/v1/client/domains/1", headers=h, json={"auto_renew": True, "billing_profile_id": 1}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"auto_renew": true, "billing_profile_id": 1}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/domains/{domain}/renew

Yenileme Faturası KesmeKapsam: Domains/RenewDomain

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). Alan adı için istenen yıl sayısı kadar yenileme faturası keser. — fatura üretir

Parametreler

AlaninTürAçıklama
domain zorunlupathstring
Idempotency-Key zorunluheaderstring

İstek gövdesi

AlanTürAçıklama
years zorunluintegerYenileme süresi. Detaydaki fiyatlı süre satırlarından biri olmalıdır.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422not_renewable, years_invalid

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/domains/1/renew' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"years": 1}'
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/domains/1/renew", headers=h, json={"years": 1}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/renew", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
    "Idempotency-Key": crypto.randomUUID(),
  },
  body: JSON.stringify({"years": 1}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/domains/{domain}/transfer-status

Transferin Nerede Olduğunu SormaKapsam: Domains/GetTransferStatus

Devam eden bir transferin durumunu sağlayıcıdan okur. — canlı sorar

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422not_a_transfer

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/domains/1/transfer-status' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/domains/1/transfer-status", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/transfer-status", {
  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/domains/{domain}/nameservers

Ad Sunucularını OkumaKapsam: Domains/GetNameservers

Alan adının ad sunucularını ve hesabın varsayılan setini döndürür. — anahtarın sahibi

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/domains/1/nameservers' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/domains/1/nameservers", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/nameservers", {
  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}`);

PUT/domains/{domain}/nameservers

Ad Sunucularını DeğiştirmeKapsam: Domains/UpdateNameservers

Alan adının ad sunucularını sağlayıcıda değiştirir. — siteyi taşır

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

İstek gövdesi

AlanTürAçıklama
nameservers zorunlustringYeni set. İkiden dörde kadar geçerli sunucu adı; boş girişler sayımdan önce düşer.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422nameservers_failed, nameservers_invalid, nameservers_not_supported, nameservers_rejected, not_actionable
500nameservers_failed

Kod örnekleri

curl -s -X PUT 'https://www.gyrohosting.com/api/v1/client/domains/1/nameservers' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"nameservers": "string"}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.put("https://www.gyrohosting.com/api/v1/client/domains/1/nameservers", headers=h, json={"nameservers": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/nameservers", {
  method: "PUT",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"nameservers": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/domains/{domain}/child-nameservers

Kendi Ad Sunucularını ListelemeKapsam: Domains/GetChildNameservers

Alan adının altında tanımlı ad sunucularını döndürür. — sağlayıcıdan okur

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422child_ns_failed, child_ns_not_supported
500child_ns_failed

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/domains/1/child-nameservers' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/domains/1/child-nameservers", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/child-nameservers", {
  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/domains/{domain}/child-nameservers

Kendi Ad Sunucusunu TanımlamaKapsam: Domains/CreateChildNameserver

Alan adının altında bir ad sunucusu tanımlar. — sicile yazar

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

İstek gövdesi

AlanTürAçıklama
host zorunlustringSunucunun tam adı. Küçük harfe çevrilir.
ip zorunlustringSunucunun adresi. Biçimi doğrulanır.
nsstring

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422child_ns_failed, child_ns_fields, child_ns_host_invalid, child_ns_ip_invalid, child_ns_not_supported, child_ns_rejected, not_actionable
500child_ns_failed

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/domains/1/child-nameservers' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"host": "string", "ip": "string", "ns": "string"}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/domains/1/child-nameservers", headers=h, json={"host": "string", "ip": "string", "ns": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/child-nameservers", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"host": "string", "ip": "string", "ns": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/domains/{domain}/child-nameservers

Kendi Ad Sunucusunu KaldırmaKapsam: Domains/DeleteChildNameserver

Alan adının altındaki bir ad sunucusu tanımını kaldırır. — sicile yazar

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422child_ns_failed, child_ns_fields, child_ns_not_supported, child_ns_rejected, not_actionable
500child_ns_failed

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/domains/1/child-nameservers' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/domains/1/child-nameservers", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/child-nameservers", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/domains/{domain}/transfer-lock

Transfer Kilidini OkumaKapsam: Domains/GetTransferLock

Alan adının transfere kapalı olup olmadığını sağlayıcıdan okur. — canlı okur

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/domains/1/transfer-lock' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/domains/1/transfer-lock", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/transfer-lock", {
  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}`);

PUT/domains/{domain}/transfer-lock

Transfer Kilidini DeğiştirmeKapsam: Domains/UpdateTransferLock

Alan adını transfere kapatır ya da açar. — sağlayıcıya yazar

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

İstek gövdesi

AlanTürAçıklama
locked zorunlubooleanYeni kilit durumu. Gerçek bir mantıksal değer olmalıdır; metin ve sayı reddedilir.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422lock_failed, lock_not_supported, lock_rejected, locked_invalid, not_actionable
500lock_failed

Kod örnekleri

curl -s -X PUT 'https://www.gyrohosting.com/api/v1/client/domains/1/transfer-lock' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"locked": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.put("https://www.gyrohosting.com/api/v1/client/domains/1/transfer-lock", headers=h, json={"locked": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/transfer-lock", {
  method: "PUT",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"locked": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/domains/{domain}/auth-code

Transfer Kodunu İstemeKapsam: Domains/SendAuthCode

Transfer kodunu alan adı sahibinin e-postasına gönderir. — yanıtta kod yok

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422auth_code_failed, auth_code_not_supported, auth_code_rejected, not_actionable
500auth_code_failed

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/domains/1/auth-code' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/domains/1/auth-code", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/auth-code", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

PUT/domains/{domain}/auth-code

Gelen Transfer Kodunu KaydetmeKapsam: Domains/SaveAuthCode

Devam eden bir transfer için kodu günceller. — anahtarın sahibi

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

İstek gövdesi

AlanTürAçıklama
code zorunlustringYeni transfer kodu. İşaretleme ayıklanır ve boşluklar kırpılır.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422code_required, not_actionable

Kod örnekleri

curl -s -X PUT 'https://www.gyrohosting.com/api/v1/client/domains/1/auth-code' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"code": "string"}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.put("https://www.gyrohosting.com/api/v1/client/domains/1/auth-code", headers=h, json={"code": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/auth-code", {
  method: "PUT",
  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}`);

GET/domains/{domain}/dns-records

DNS Kayıtlarını ListelemeKapsam: Domains/GetDnsRecords

Alan adının DNS kayıtlarını sağlayıcıdan okur. — ek hizmet gerekir

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

Yanıtlar

200Success — data: array<object>
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422addon_pending, addon_required, dns_failed, dns_not_supported, dns_rejected
500dns_failed

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/domains/1/dns-records' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/domains/1/dns-records", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/dns-records", {
  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/domains/{domain}/dns-records

DNS Kaydı EklemeKapsam: Domains/CreateDnsRecord

Alan adına yeni bir DNS kaydı ekler. — ek hizmet gerekir

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

İstek gövdesi

AlanTürAçıklama
type zorunlustringKayıt türü.
name zorunlustringKaydın yanıtlayacağı ad. Kabul edilen biçim sağlayıcıya göre değişir.
value zorunlustringKaydın içeriği.
ttlintegerYaşam süresi. Verilmezse sağlayıcının varsayılanı kullanılır.
priorityintegerÖncelik. Posta ve hizmet kayıtları dışında yok sayılır.
identitystring

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422addon_required, dns_failed, dns_fields, dns_not_supported, dns_rejected, not_actionable
500dns_failed

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/domains/1/dns-records' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"type": "string", "name": "string", "value": "string", "ttl": 1, "priority": 1, "identity": "string"}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/domains/1/dns-records", headers=h, json={"type": "string", "name": "string", "value": "string", "ttl": 1, "priority": 1, "identity": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/dns-records", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"type": "string", "name": "string", "value": "string", "ttl": 1, "priority": 1, "identity": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

PUT/domains/{domain}/dns-records

DNS Kaydını DüzenlemeKapsam: Domains/UpdateDnsRecord

Var olan bir DNS kaydını değiştirir. — numara ile eşleşir

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

İstek gövdesi

AlanTürAçıklama
identitystringListeden gelen kayıt numarası. Liste bir numara döndürdüyse mutlaka gönderin.
type zorunlustringKayıt türü.
name zorunlustringKaydın adı.
value zorunlustringYeni içerik.
ttlintegerYaşam süresi. Verilmezse kayıt mevcut yaşam süresini korur.
priorityintegerÖncelik. Verilmezse kayıt, türü değişmediği sürece mevcut önceliğini korur.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422addon_required, dns_edit_not_supported, dns_failed, dns_fields, dns_rejected, not_actionable
500dns_failed

Kod örnekleri

curl -s -X PUT 'https://www.gyrohosting.com/api/v1/client/domains/1/dns-records' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"identity": "string", "type": "string", "name": "string", "value": "string", "ttl": 1, "priority": 1}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.put("https://www.gyrohosting.com/api/v1/client/domains/1/dns-records", headers=h, json={"identity": "string", "type": "string", "name": "string", "value": "string", "ttl": 1, "priority": 1}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/dns-records", {
  method: "PUT",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"identity": "string", "type": "string", "name": "string", "value": "string", "ttl": 1, "priority": 1}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/domains/{domain}/dns-records

DNS Kaydını SilmeKapsam: Domains/DeleteDnsRecord

Bir DNS kaydını kaldırır. — eşleşme daraltılır

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422addon_required, dns_failed, dns_fields, dns_rejected, not_actionable
500dns_failed

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/domains/1/dns-records' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/domains/1/dns-records", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/dns-records", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/domains/{domain}/dnssec

İmza Kayıtlarını ListelemeKapsam: Domains/GetDnssecRecords

Alan adının imza doğrulama kayıtlarını döndürür. — sağlayıcıdan okur

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

Yanıtlar

200Success — data: array<object>
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422dnssec_failed, dnssec_not_supported
500dnssec_failed

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/domains/1/dnssec' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/domains/1/dnssec", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/dnssec", {
  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/domains/{domain}/dnssec

İmza Kaydı EklemeKapsam: Domains/CreateDnssecRecord

Alan adına bir imza doğrulama kaydı ekler. — algoritma denetlenir

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

İstek gövdesi

AlanTürAçıklama
key_tag zorunluintegerAnahtarın etiketi. dnskey-keytag-flags'te anahtar bayrağını taşır.
algorithm zorunluintegerAnahtar algoritmasının numarası. Modülün bildirdiği kümede olmalıdır.
digest_type zorunluintegerÖzet algoritmasının numarası ya da meta.dnssec_fields'in adlandırdığı anahtar bayrağı veya protokol. Modülün bildirdiği kümede olmalıdır.
digest zorunlustringİmza özeti. DNSKEY isteyen servis sağlayıcı burada açık anahtarı (base64) alır.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422dnssec_algorithm_invalid, dnssec_digest_type_invalid, dnssec_failed, dnssec_fields, dnssec_not_supported, dnssec_rejected, not_actionable
500dnssec_failed

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/domains/1/dnssec' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key_tag": 1, "algorithm": 1, "digest_type": 1, "digest": "string"}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/domains/1/dnssec", headers=h, json={"key_tag": 1, "algorithm": 1, "digest_type": 1, "digest": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/dnssec", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"key_tag": 1, "algorithm": 1, "digest_type": 1, "digest": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/domains/{domain}/dnssec

İmza Kaydını SilmeKapsam: Domains/DeleteDnssecRecord

Bir imza doğrulama kaydını kaldırır. — siteyi kırabilir

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422dnssec_failed, dnssec_fields, dnssec_not_supported, dnssec_rejected, not_actionable
500dnssec_failed

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/domains/1/dnssec' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/domains/1/dnssec", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/dnssec", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/domains/{domain}/whois

Alan Adı Kişilerini OkumaKapsam: Domains/GetWhoisContacts

Alan adının dört rolündeki kişi bilgilerini döndürür. — sağlayıcıdan okur

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422whois_not_supported, whois_rejected

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/domains/1/whois' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/domains/1/whois", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/whois", {
  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}`);

PUT/domains/{domain}/whois

Alan Adı Kişilerini YazmaKapsam: Domains/UpdateWhoisContacts

Bir kişiyi seçilen role ya da dört role birden yazar. — sicile yazar

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

İstek gövdesi

AlanTürAçıklama
rolestringHangi rollere yazılacağı. Verilmezse dört rolün hepsine yazılır.
contact zorunluobjectcontactYazılacak kişi.
first_name zorunlustringKişinin adı.
last_name zorunlustringKişinin soyadı.
companystringKurum adı. Tek isteğe bağlı alandır.
email zorunlustringGeçerli bir e-posta.
phone zorunlustringTelefon.
address zorunlustringAdres satırı.
address2stringİkinci adres satırı (daire, kat, blok). Anahtar gönderilmezse sağlayıcıdaki satır korunur; boş metin satırı siler.
city zorunlustringŞehir.
statestringİl ya da eyalet. Alan adı kişilerinde zorunludur, kayıtlı profillerde değildir.
zip zorunlustringPosta kodu.
country zorunlustringÜlke kodu. Büyük harfe çevrilir.
postal_codestring

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422contact_email_invalid, contact_field_invalid, contact_field_required, contact_name_required, not_actionable, role_invalid, whois_failed, whois_not_supported, whois_rejected
500whois_failed

Kod örnekleri

curl -s -X PUT 'https://www.gyrohosting.com/api/v1/client/domains/1/whois' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"role": "string", "contact": {}, "first_name": "string", "last_name": "string", "company": "string", "email": "string", "phone": "string", "address": "string", "address2": "string", "city": "string", "state": "string", "zip": "string", "country": "string", "postal_code": "string"}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.put("https://www.gyrohosting.com/api/v1/client/domains/1/whois", headers=h, json={"role": "string", "contact": {}, "first_name": "string", "last_name": "string", "company": "string", "email": "string", "phone": "string", "address": "string", "address2": "string", "city": "string", "state": "string", "zip": "string", "country": "string", "postal_code": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/whois", {
  method: "PUT",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"role": "string", "contact": {}, "first_name": "string", "last_name": "string", "company": "string", "email": "string", "phone": "string", "address": "string", "address2": "string", "city": "string", "state": "string", "zip": "string", "country": "string", "postal_code": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/domains/{domain}/whois/apply

Kayıtlı Profili UygulamaKapsam: Domains/ApplyWhoisProfile

Kayıtlı bir kişi profilini alan adının dört rolüne birden yazar. — dört rolü doldurur

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

İstek gövdesi

AlanTürAçıklama
profile_id zorunluintegerUygulanacak profilin numarası.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422not_actionable, whois_failed, whois_not_supported, whois_rejected
500whois_failed

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/domains/1/whois/apply' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"profile_id": 1}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/domains/1/whois/apply", headers=h, json={"profile_id": 1}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/whois/apply", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"profile_id": 1}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

PUT/domains/{domain}/whois-privacy

Kayıt Gizliliğini DeğiştirmeKapsam: Domains/UpdateWhoisPrivacy

Kişi bilgilerinin herkese açık sorguda gizlenmesini açar ya da kapatır. — ücretli olabilir

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

İstek gövdesi

AlanTürAçıklama
enabled zorunlubooleanGizlilik açık mı. Gerçek bir mantıksal değer olmalıdır.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422addon_required, enabled_invalid, not_actionable, privacy_failed, privacy_not_supported, privacy_rejected
500privacy_failed

Kod örnekleri

curl -s -X PUT 'https://www.gyrohosting.com/api/v1/client/domains/1/whois-privacy' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.put("https://www.gyrohosting.com/api/v1/client/domains/1/whois-privacy", headers=h, json={"enabled": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/whois-privacy", {
  method: "PUT",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"enabled": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/domains/{domain}/email-forwards

E-posta Yönlendirmelerini ListelemeKapsam: Domains/GetEmailForwards

Alan adında tanımlı e-posta yönlendirmelerini döndürür. — ek hizmet gerekir

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

Yanıtlar

200Success — data: array<object>
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422addon_pending, addon_required, email_forwarding_failed, email_forwarding_not_supported
500email_forwarding_failed

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/domains/1/email-forwards' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/domains/1/email-forwards", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/email-forwards", {
  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/domains/{domain}/email-forwards

E-posta Yönlendirmesi EklemeKapsam: Domains/CreateEmailForward

Alan adına gelen postayı başka bir kutuya taşıyan bir kural ekler. — ek hizmet gerekir

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

İstek gövdesi

AlanTürAçıklama
prefix zorunlustringAlan adındaki yerel kısım. Yönlendirme bu kısım ile alan adının birleşimine yanıt verir.
target zorunlustringHedef posta kutusu. Geçerli bir e-posta adresi olmalıdır.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422addon_required, email_forward_fields, email_forward_rejected, email_forward_target_invalid, email_forwarding_failed, email_forwarding_not_supported, not_actionable
500email_forwarding_failed

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/domains/1/email-forwards' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"prefix": "string", "target": "string"}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/domains/1/email-forwards", headers=h, json={"prefix": "string", "target": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/email-forwards", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"prefix": "string", "target": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/domains/{domain}/email-forwards

E-posta Yönlendirmesini SilmeKapsam: Domains/DeleteEmailForward

Bir e-posta yönlendirme kuralını kaldırır. — eşleşme daraltılır

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422addon_required, email_forward_fields, email_forwarding_failed, email_forwarding_not_supported, not_actionable
500email_forwarding_failed

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/domains/1/email-forwards' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/domains/1/email-forwards", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/email-forwards", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/domains/{domain}/forwarding

Adres Yönlendirmesini OkumaKapsam: Domains/GetUrlForwarding

Alan adının başka bir adrese yönlendirilip yönlendirilmediğini döndürür. — ek hizmet gerekir

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422addon_pending, addon_required, url_forwarding_failed, url_forwarding_not_supported
500url_forwarding_failed

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/domains/1/forwarding' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/domains/1/forwarding", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/forwarding", {
  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}`);

PUT/domains/{domain}/forwarding

Adres Yönlendirmesi KurmaKapsam: Domains/UpdateUrlForwarding

Alan adına gelen ziyaretçiyi başka bir adrese gönderir. — ek hizmet gerekir

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

İstek gövdesi

AlanTürAçıklama
url zorunlustringTam hedef adres. Şeması yönlendirmenin şeması olur; yazılmazsa güvensiz şema kullanılır.
methodintegerYönlendirme türü. Kalıcı olan varsayılandır; başka bir değer ona düşer.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422addon_required, not_actionable, url_forwarding_failed, url_forwarding_not_supported, url_forwarding_rejected, url_required
500url_forwarding_failed

Kod örnekleri

curl -s -X PUT 'https://www.gyrohosting.com/api/v1/client/domains/1/forwarding' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url": "string", "method": 1}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.put("https://www.gyrohosting.com/api/v1/client/domains/1/forwarding", headers=h, json={"url": "string", "method": 1}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/forwarding", {
  method: "PUT",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"url": "string", "method": 1}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

DELETE/domains/{domain}/forwarding

Adres Yönlendirmesini KaldırmaKapsam: Domains/DeleteUrlForwarding

Alan adının adres yönlendirmesini kaldırır. — ek hizmet gerekir

Parametreler

AlaninTürAçıklama
domain zorunlupathstring

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422addon_required, not_actionable, url_forwarding_failed, url_forwarding_not_supported, url_forwarding_rejected
500url_forwarding_failed

Kod örnekleri

curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/domains/1/forwarding' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.delete("https://www.gyrohosting.com/api/v1/client/domains/1/forwarding", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/forwarding", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/domains/{domain}/addons/{key}

Alan Adı Ek Hizmeti AlmaKapsam: Domains/BuyDomainAddon

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). Alan adı yönetimi, gizlilik ya da yönlendirme ek hizmetini satın alır. — oranlı ilk dönem

Parametreler

AlaninTürAçıklama
domain zorunlupathstring
key zorunlupathstring
Idempotency-Key zorunluheaderstring

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422addon_active, addon_free, addon_not_offered, addon_not_supported, addon_pending, addon_rejected, addon_term_invalid, not_actionable
500addon_failed

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/domains/1/addons/1' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"
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/domains/1/addons/1", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/domains/1/addons/1", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Idempotency-Key": crypto.randomUUID(),
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

Siparişler

Her ürün için teklif ve sipariş.

GET/orders

Siparişleri ListelemeKapsam: Orders/GetOrders

Hesabın siparişlerini en yeniden başlayarak döndürür. — anahtarın sahibi

Parametreler

AlaninTürAçıklama
pagequeryintegerKaçıncı sayfa.
limitqueryintegerSayfa başına satır. En çok 100.
statusquerystringDurum süzgeci: bekliyor, işlemde, etkin ya da iptal.

Yanıtlar

200Success — data: array<object>
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
422status_invalid

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/orders' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/orders", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/orders", {
  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/orders

Sipariş VermeKapsam: Orders/CreateOrder

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). Siparişi verir ve aynı çağrıda tahsil eder. — bakiye ya da kayıtlı kart

Parametreler

AlaninTürAçıklama
Idempotency-Key zorunluheaderstring

İstek gövdesi

AlanTürAçıklama
terms zorunlubooleanŞartların kabulü. Doğru gönderilmelidir.
items zorunlustringitems[]Sipariş satırları. Birden yirmiye kadar.
product_id zorunluintegerSipariş edilecek ürünün numarası.
cycle zorunlustringÖdeme döngüsü. Ürünün fiyatlı döngülerinden biri olmalıdır.
quantityintegerAdet. Yalnız ürün çoklu alıma izin veriyorsa dikkate alınır.
addonsobjectSeçilen ek hizmetler. Ek hizmet numarasını seçenek numarasına eşler. Ürünün ilk dönemi ücretsiz dahil ettiği ek hizmet gönderilmese de siparişe eklenir. İlk dönem tutarı 0 olur, yenilemeler ek hizmet fiyatından faturalanır ve siparişten çıkarılamaz.
addons_qtyobjectAdetli ek hizmetlerin sayısı.
requirementsobjectÜrünün sorduğu alanların yanıtları. Zorunlu işaretlenen her alan gönderilmelidir.
requirement_filesobjectDosya isteyen alanların içeriği. Kodlanmış içerik olarak gönderilir; adres kabul edilmez.
metricsstringAçılacak ölçümlerin numaraları.
domainobjectSatırın alan adı ekseni. Seçim, ad, alt alan adı kökü ve lisans alanlarını taşır.
couponsstringKupon kodları. Operatörün kendiliğinden uygulanan kuponları da katılır.
billing_profile_idintegerFatura profilinin numarası.
notesstringSipariş notu. Bin karakterden uzunu kırpılır.
paymentobjectpaymentÖdeme kaynağı. Toplam sıfırın üstündeyse zorunludur.
methodstringÖdeme yolu: hesap bakiyesi ya da kayıtlı kart.
card_idintegerÇekilecek kartın numarası. Verilmezse hesabın varsayılan kartı çekilir.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
422card_not_chargeable, checkout_blocked, insufficient_balance, no_stored_card, payment_method_restricted, terms_required, verification_required
404not_found

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/orders' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"terms": true, "items": "string", "product_id": 1, "cycle": "string", "quantity": 1, "addons": {}, "addons_qty": {}, "requirements": {}, "requirement_files": {}, "metrics": "string", "domain": {}, "coupons": "string", "billing_profile_id": 1, "notes": "string", "payment": {}, "method": "string", "card_id": 1}'
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/orders", headers=h, json={"terms": True, "items": "string", "product_id": 1, "cycle": "string", "quantity": 1, "addons": {}, "addons_qty": {}, "requirements": {}, "requirement_files": {}, "metrics": "string", "domain": {}, "coupons": "string", "billing_profile_id": 1, "notes": "string", "payment": {}, "method": "string", "card_id": 1}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/orders", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
    "Idempotency-Key": crypto.randomUUID(),
  },
  body: JSON.stringify({"terms": true, "items": "string", "product_id": 1, "cycle": "string", "quantity": 1, "addons": {}, "addons_qty": {}, "requirements": {}, "requirement_files": {}, "metrics": "string", "domain": {}, "coupons": "string", "billing_profile_id": 1, "notes": "string", "payment": {}, "method": "string", "card_id": 1}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/orders/preview

Siparişi FiyatlandırmaKapsam: Orders/PreviewOrder

Sipariş gövdesini fiyatlandırır ve tek satır bile yazmaz. — hiçbir şey yazılmaz

İstek gövdesi

AlanTürAçıklama
items zorunlustringitems[]Sipariş satırları. Birden yirmiye kadar; şekli sipariş ucuyla aynıdır.
product_id zorunluintegerSipariş edilecek ürünün numarası.
cycle zorunlustringÖdeme döngüsü. Ürünün fiyatlı döngülerinden biri olmalıdır.
quantityintegerAdet. Yalnız ürün çoklu alıma izin veriyorsa dikkate alınır.
addonsobjectSeçilen ek hizmetler. Ek hizmet numarasını seçenek numarasına eşler. Ürünün ilk dönemi ücretsiz dahil ettiği ek hizmet gönderilmese de siparişe eklenir. İlk dönem tutarı 0 olur, yenilemeler ek hizmet fiyatından faturalanır ve siparişten çıkarılamaz.
addons_qtyobjectAdetli ek hizmetlerin sayısı.
requirementsobjectÜrünün sorduğu alanların yanıtları. Zorunlu işaretlenen her alan gönderilmelidir.
requirement_filesobjectDosya isteyen alanların içeriği. Kodlanmış içerik olarak gönderilir; adres kabul edilmez.
metricsstringAçılacak ölçümlerin numaraları.
domainobjectSatırın alan adı ekseni. Seçim, ad, alt alan adı kökü ve lisans alanlarını taşır.
couponsstringDenenecek kupon kodları.
billing_profile_idintegerFatura profilinin numarası. Vergi bağlamını belirler; verilmezse varsayılan profil, hesapta kayıtlı profil yoksa hesabın ülkesi kullanılır.
paymentobjectÖdeme bloğu. Verilirse yöntemin komisyonu toplama eklenir; bakiye yeterliliği burada denetlenmez.
methodstring
card_idstring

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
422coupon_invalid, cycle_invalid, domain_acquisition_not_here, items_required, product_not_orderable, requirement_missing
404not_found

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/orders/preview' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"items": "string", "product_id": 1, "cycle": "string", "quantity": 1, "addons": {}, "addons_qty": {}, "requirements": {}, "requirement_files": {}, "metrics": "string", "domain": {}, "coupons": "string", "billing_profile_id": 1, "payment": {}, "method": "string", "card_id": "string"}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/orders/preview", headers=h, json={"items": "string", "product_id": 1, "cycle": "string", "quantity": 1, "addons": {}, "addons_qty": {}, "requirements": {}, "requirement_files": {}, "metrics": "string", "domain": {}, "coupons": "string", "billing_profile_id": 1, "payment": {}, "method": "string", "card_id": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/orders/preview", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"items": "string", "product_id": 1, "cycle": "string", "quantity": 1, "addons": {}, "addons_qty": {}, "requirements": {}, "requirement_files": {}, "metrics": "string", "domain": {}, "coupons": "string", "billing_profile_id": 1, "payment": {}, "method": "string", "card_id": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/orders/{id}

Sipariş Detayını OkumaKapsam: Orders/GetOrder

Siparişin satırlarını, doğan hizmetlerini ve faturasını döndürür. — anahtarın sahibi

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/orders/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/orders/47466", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/orders/47466", {
  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}`);

Destek talepleri

Departmanlar, aç, yanıtla, kapat, yeniden aç, puanla, ekler.

GET/tickets/departments

Departmanları ListelemeKapsam: Tickets/GetTicketDepartments

Talep açılabilecek departmanları kendi alan şemalarıyla döndürür. — açılış şeması

Yanıtlar

200Success — data: array<object>
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
422ticket_system_disabled

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/tickets/departments' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/tickets/departments", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/tickets/departments", {
  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/tickets/access-groups

Erişim Gruplarını ListelemeKapsam: Tickets/GetTicketAccessGroups

Mesaja eklenebilecek erişim bilgisi gruplarını şemalarıyla döndürür. — şifreli alanlar

Yanıtlar

200Success — data: array<object>
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
422ticket_system_disabled

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/tickets/access-groups' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/tickets/access-groups", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/tickets/access-groups", {
  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/tickets

Talepleri ListelemeKapsam: Tickets/GetTickets

Hesabın destek taleplerini durum sırasıyla döndürür. — durum sırası

Parametreler

AlaninTürAçıklama
pagequeryintegerKaçıncı sayfa.
limitqueryintegerSayfa başına satır. En çok 100.
statusquerystringDurum süzgeci. Müşteriye gösterilen durum sözlüğünü kabul eder.
departmentqueryintegerDepartman süzgeci.
searchquerystringKonu, referans ve departman adında arar.

Yanıtlar

200Success — data: array<object>
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
422status_invalid, ticket_system_disabled

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/tickets' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/tickets", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/tickets", {
  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/tickets

Talep AçmaKapsam: Tickets/CreateTicket

Yeni bir destek talebi açar. — ek kabul eder

İstek gövdesi

AlanTürAçıklama
department_id zorunluintegerDepartmanın numarası.
subject zorunlustringKonu.
message zorunlustringAçılış mesajı. En az beş karakter; düz metindir ve işaretleme ayıklanır.
priorityintegerÖncelik. Verilmezse orta alınır.
service_idintegerTalebi bir hizmete bağlar.
custom_fieldsobjectDepartman alanlarının yanıtları. Alan numarasını değere eşler; kutu tipli alanlar dizi alır.
credentialsstringErişim bilgileri. Her satır bir grup numarası ve alan haritası taşır; mesaja şifreli işlenir.
attachmentsarray<any>Ekler. Kodlanmış içerik olarak gönderilir; adres reddedilir.
encrypt_messagebooleanMesaj gövdesi şifreli saklansın mı.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422access_group_invalid, attachment_invalid, credential_field_required, custom_field_required, department_invalid, message_too_short, subject_required, ticket_rejected, ticket_system_disabled

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/tickets' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"department_id": 1, "subject": "string", "message": "string", "priority": 1, "service_id": 1, "custom_fields": {}, "credentials": "string", "attachments": [null], "encrypt_message": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/tickets", headers=h, json={"department_id": 1, "subject": "string", "message": "string", "priority": 1, "service_id": 1, "custom_fields": {}, "credentials": "string", "attachments": [None], "encrypt_message": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/tickets", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"department_id": 1, "subject": "string", "message": "string", "priority": 1, "service_id": 1, "custom_fields": {}, "credentials": "string", "attachments": [null], "encrypt_message": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/tickets/{id}

Talebi ve Mesajları OkumaKapsam: Tickets/GetTicket

Talebin üst bilgilerini ve bütün mesaj dizisini döndürür. — okundu işaretler

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422ticket_system_disabled

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/tickets/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/tickets/47466", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/tickets/47466", {
  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/tickets/{id}/reply

Yanıt YazmaKapsam: Tickets/ReplyTicket

Açık bir talebe yanıt ekler. — ek kabul eder

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

İstek gövdesi

AlanTürAçıklama
message zorunlustringYanıt metni. En az beş karakter.
credentialsstringErişim bilgileri.
attachmentsarray<any>Ekler.
encrypt_messagebooleanGövde şifreli saklansın mı.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422access_group_invalid, attachment_invalid, message_too_short, reply_rejected, ticket_not_open, ticket_system_disabled

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/tickets/47466/reply' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"message": "string", "credentials": "string", "attachments": [null], "encrypt_message": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/tickets/47466/reply", headers=h, json={"message": "string", "credentials": "string", "attachments": [None], "encrypt_message": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/tickets/47466/reply", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"message": "string", "credentials": "string", "attachments": [null], "encrypt_message": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/tickets/{id}/close

Talebi KapatmaKapsam: Tickets/CloseTicket

Talebi çözüldü olarak kapatır. — puan verilebilir

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

İstek gövdesi

AlanTürAçıklama
ratingintegerKapatırken verilen puan. Yalnız talep henüz puansızken işlenir.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422ticket_system_disabled

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/tickets/47466/close' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"rating": 1}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/tickets/47466/close", headers=h, json={"rating": 1}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/tickets/47466/close", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"rating": 1}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/tickets/{id}/reopen

Talebi Yeniden AçmaKapsam: Tickets/ReopenTicket

Kapalı bir talebi yeniden açar. — kilitliyse olmaz

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422ticket_locked, ticket_system_disabled

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/tickets/47466/reopen' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/tickets/47466/reopen", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/tickets/47466/reopen", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/tickets/{id}/rating

Talebi PuanlamaKapsam: Tickets/RateTicket

Talebe bir ile beş arasında puan verir. — bir kez

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

İstek gövdesi

AlanTürAçıklama
rating zorunluintegerVerilen puan. Birden beşe.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422already_rated, rating_invalid, ticket_system_disabled

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/tickets/47466/rating' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"rating": 1}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/tickets/47466/rating", headers=h, json={"rating": 1}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/tickets/47466/rating", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"rating": 1}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/tickets/{id}/replies/{rid}/rating

Personel Yanıtını PuanlamaKapsam: Tickets/RateTicketReply

Tek bir personel yanıtına puan verir. — bir kez

Parametreler

AlaninTürAçıklama
id zorunlupathinteger
rid zorunlupathinteger

İstek gövdesi

AlanTürAçıklama
rating zorunluintegerVerilen puan. Birden beşe.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422already_rated, rating_invalid, ticket_system_disabled

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/tickets/47466/replies/1/rating' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"rating": 1}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/tickets/47466/replies/1/rating", headers=h, json={"rating": 1}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/tickets/47466/replies/1/rating", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"rating": 1}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/tickets/{id}/attachments/{aid}

Eki İndirmeKapsam: Tickets/GetTicketAttachment

Bir mesaj ekini içeriğiyle birlikte döndürür. — kodlanmış içerik

Parametreler

AlaninTürAçıklama
id zorunlupathinteger
aid zorunlupathinteger

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422ticket_system_disabled

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/tickets/47466/attachments/1' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/tickets/47466/attachments/1", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/tickets/47466/attachments/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}`);

SMS

SMS başlıkları, teklif ve gönderim.

GET/sms/senders

Başlıkları ListelemeKapsam: Sms/GetSmsSenders

Gönderimde kullanılabilecek başlıkları ve ülke kayıtlarını döndürür. — anahtarın sahibi

Yanıtlar

200Success — data: array<object>
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
422sms_api_disabled, sms_disabled

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/sms/senders' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/sms/senders", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/sms/senders", {
  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/sms/quote

Fiyat AlmaKapsam: Sms/QuoteSms

Gönderimin ne kadar tutacağını ve neyin eleneceğini söyler. — gönderim yok

İstek gövdesi

AlanTürAçıklama
sender zorunlustringGönderen başlığı. Hesabın etkin başlıklarından biri olmalıdır.
message zorunlustringMesaj metni. Parça tavanını aşan metin kırpılır ve kırpıldığı bildirilir.
numbers zorunluarray<any>Alıcı numaralar. Uluslararası biçimde; tek bir metin olarak gönderilirse satır, virgül ve noktalı virgülden bölünür.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
422message_required, numbers_required, sender_invalid, sms_api_disabled, sms_disabled

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/sms/quote' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"sender": "string", "message": "string", "numbers": [null]}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/sms/quote", headers=h, json={"sender": "string", "message": "string", "numbers": [None]}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/sms/quote", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"sender": "string", "message": "string", "numbers": [null]}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/sms/send

Toplu GönderimKapsam: Sms/SendSms

Mesajı gönderir ve tutarı cüzdandan keser. — cüzdandan keser

İstek gövdesi

AlanTürAçıklama
sender zorunlustringGönderen başlığı. Hesabın etkin başlıklarından biri olmalıdır.
message zorunlustringMesaj metni. Parça tavanını aşan metin kırpılır ve kırpıldığı bildirilir.
numbers zorunluarray<any>Alıcı numaralar. Uluslararası biçimde; tek bir metin olarak gönderilirse satır, virgül ve noktalı virgülden bölünür.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
422insufficient_balance, no_recipients, price_unavailable, send_rejected, sender_invalid, sms_api_disabled, sms_disabled, sms_module_unavailable
500send_failed

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/sms/send' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"sender": "string", "message": "string", "numbers": [null]}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/sms/send", headers=h, json={"sender": "string", "message": "string", "numbers": [None]}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/sms/send", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"sender": "string", "message": "string", "numbers": [null]}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

GET/sms/messages

Gönderim GeçmişiKapsam: Sms/GetSmsMessages

Yapılmış gönderimleri en yeniden başlayarak döndürür. — anahtarın sahibi

Parametreler

AlaninTürAçıklama
pagequeryintegerKaçıncı sayfa.
limitqueryintegerSayfa başına satır. En çok 100.

Yanıtlar

200Success — data: array<object>
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
422sms_api_disabled, sms_disabled

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/sms/messages' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/sms/messages", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/sms/messages", {
  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/sms/messages/{id}

Tek Gönderimi OkumaKapsam: Sms/GetSmsMessage

Bir gönderimi alıcı numaralarıyla birlikte döndürür. — anahtarın sahibi

Parametreler

AlaninTürAçıklama
id zorunlupathinteger

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
404not_found
422sms_api_disabled, sms_disabled

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/sms/messages/47466' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/sms/messages/47466", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/sms/messages/47466", {
  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}`);

Satış ortaklığı

Satış ortaklığı.

GET/affiliate

Program Durumunu OkumaKapsam: Affiliate/GetAffiliate

Programı, kazancı ve ödeme durumunu tek çağrıda döndürür. — olgunlaşanı taşır

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
422affiliate_disabled

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/affiliate' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/affiliate", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/affiliate", {
  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/affiliate/commissions

Komisyonları ListelemeKapsam: Affiliate/GetAffiliateCommissions

Kazanılan komisyonları en yeniden başlayarak döndürür. — anahtarın sahibi

Parametreler

AlaninTürAçıklama
pagequeryintegerKaçıncı sayfa.
limitqueryintegerSayfa başına satır. En çok 100.

Yanıtlar

200Success — data: array<object>
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
422affiliate_disabled, not_enrolled

Kod örnekleri

curl -s 'https://www.gyrohosting.com/api/v1/client/affiliate/commissions' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/affiliate/commissions", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/affiliate/commissions", {
  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/affiliate/enroll

Programa KatılmaKapsam: Affiliate/EnrollAffiliate

Hesabı satış ortaklığı programına kaydeder. — hesabın para birimi

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
422affiliate_disabled

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/affiliate/enroll' \
  -H "Authorization: Bearer $GYRO_TOKEN"
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/affiliate/enroll", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/affiliate/enroll", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

POST/affiliate/withdraw

Ödeme Talebi AçmaKapsam: Affiliate/WithdrawAffiliate

Kullanılabilir kazancın ödenmesini ister. — aynı anda tek talep

İstek gövdesi

AlanTürAçıklama
amount zorunlunumberİstenen tutar. Alt sınır ile kullanılabilir bakiye arasında olmalıdır.
gateway zorunlustringÖdeme yolu. Operatörün sunduklarından biri olmalıdır.
gateway_infostringHedef bilgisi. Kayıtlı bir hedef varsa atlanabilir.
save_defaultbooleanBu hedefi sonraki talepler için kaydet.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
422affiliate_disabled, affiliate_disabled_account, amount_invalid, below_minimum, gateway_info_required, gateway_invalid, not_enrolled, withdrawal_pending, withdrawal_rejected

Kod örnekleri

curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/affiliate/withdraw' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"amount": 1.0, "gateway": "string", "gateway_info": "string", "save_default": true}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/affiliate/withdraw", headers=h, json={"amount": 1.0, "gateway": "string", "gateway_info": "string", "save_default": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/affiliate/withdraw", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"amount": 1.0, "gateway": "string", "gateway_info": "string", "save_default": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);

PUT/affiliate/payment-method

Ödeme Hedefini KaydetmeKapsam: Affiliate/SaveAffiliatePayoutMethod

Bir ödeme yolunun hedef bilgisini kaydeder ya da siler. — anahtarın sahibi

İstek gövdesi

AlanTürAçıklama
gateway zorunlustringÖdeme yolu.
infostringHedef bilgisi. Boş göndermek kaydı siler.

Yanıtlar

200Success — data: object
401Missing, invalid or revoked key
403Key lacks the scope, IP not allowed, or feature disabled
422affiliate_disabled, gateway_invalid, not_enrolled

Kod örnekleri

curl -s -X PUT 'https://www.gyrohosting.com/api/v1/client/affiliate/payment-method' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"gateway": "string", "info": "string"}'
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.put("https://www.gyrohosting.com/api/v1/client/affiliate/payment-method", headers=h, json={"gateway": "string", "info": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
const res = await fetch("https://www.gyrohosting.com/api/v1/client/affiliate/payment-method", {
  method: "PUT",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"gateway": "string", "info": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);