Gyro API'ye ilk adım: API anahtarı oluşturma, kapsamlar ve ilk istek
1. Gyro API ne yapar?
Gyro Public API, müşteri panelinde yaptığınız işlerin çoğunu programla yapmanızı sağlayan bir REST API'dir: bulut sunucu siparişi ve yönetimi (güç, yeniden kurulum, snapshot, yedek, ters DNS, güvenlik duvarı), SSH anahtarları, fatura ve bakiye, alan adı ve DNS, destek talepleri, Kurumsal Mail, Nesne Depolama, Uptime İzleme ve tüm hizmetleriniz için ortak bir araç köprüsü.
| Bilgi | Değer |
|---|---|
| Taban adres | https://www.gyrohosting.com/api/v1/client |
| Kimlik | Authorization: Bearer <ANAHTAR> (ya da X-Api-Key: <ANAHTAR>) |
| Biçim | JSON gönderilir, JSON döner |
| Tam başvuru | Geliştirici belgeleri (her uç, parametre ve örnek; OpenAPI 3.1 tanımı indirilebilir) |
Bu rehber ilk 10 dakikayı anlatır; her ucun ayrıntısı geliştirici belgelerindedir.
2. API anahtarı oluşturma
- Müşteri paneline girin. Sağ üstteki hesap menüsünü açıp API Kimlik Bilgileri'ne tıklayın.
- API Anahtarı Oluştur'a basın. Kimliğinizi yeniden doğrulamanız istenebilir (Siz Olduğunuzu Doğrulayın); parolanızla ya da gelen kodla onaylayın.
- Ad alanına anahtarın nerede kullanılacağını yazın (ör. "CI sunucusu", "Yedekleme betiği").
- İzinli IP Adresleri'ne anahtarı kullanacak makinelerin IP adreslerini her satıra bir tane yazın. Boş bırakırsanız anahtar her IP'den çalışır.
- İzinler listesinden yalnız ihtiyacınız olanları seçin (Bölüm 4). İzinler kategorilere ayrılmıştır (Hesap, Hizmetler, Alan Adları, Faturalar …); İzinlerde ara... kutusuna
cloudyazarak bulut sunucu izinlerini bulabilirsiniz. Okuma ile başlamak en güvenli yoldur. - Oluşturun. API Anahtarı Oluşturuldu penceresindeki anahtarı Kopyala ile alın ve bir parola yöneticisinde ya da CI sistemindeki gizli değişkenlerde saklayın.
Anahtar yalnız bir kez gösterilir ve okunabilir biçimde saklanmaz. Kaybederseniz Anahtarı Yenile ile yeni bir değer üretin; eskisi o anda çalışmaz olur. Anahtarı kod deposuna (Git) yazmayın, e-posta ya da sohbet uygulamasıyla paylaşmayın.
Anahtarlarınızın listesinde her anahtarın durumu (Aktif, İptal Edildi), izin sayısı, IP kısıtı ve son kullanım zamanı görünür. İstek Kayıtları sekmesinde anahtarlarınızla yapılan her istek durum kodu, IP ve süreyle listelenir; beklemediğiniz bir erişimi buradan fark edersiniz.
3. İlk istek
Anahtarı bir ortam değişkenine koyun (komut geçmişinize düşmemesi için):
read -rs GYRO_TOKEN && export GYRO_TOKEN
Anahtarın kim olduğunu ve izinlerini sorun:
curl -s https://www.gyrohosting.com/api/v1/client/whoami \
-H "Authorization: Bearer $GYRO_TOKEN"
Bulut sunucularınızı listeleyin:
curl -s https://www.gyrohosting.com/api/v1/client/cloud/servers \
-H "Authorization: Bearer $GYRO_TOKEN"
Python ile aynı istek:
import os, 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()
for s in r.json()["data"]:
print(s["id"], s.get("hostname"), s.get("status"))
Sunucu numarası (id), müşteri panelindeki hizmet numarasıyla aynıdır.
4. İzinler (kapsamlar)
Her anahtar yalnız verdiğiniz izinleri taşır. Bulut sunucu işlemleri için temel izinler:
| İzin | Ne verir |
|---|---|
cloud_read |
Tüm okuma uçları: sunucu listesi ve ayrıntısı, snapshot ve yedek listesi, grafikler, katalog |
cloud_write |
Güç, yeniden kurulum, snapshot, ters DNS, ad değiştirme, SSH anahtarları |
cloud_order |
Para harcar: yeni sunucu siparişi (hesap bakiyesinden ödenir) |
cloud_delete |
Sunucu iptali / silme |
services_read / services_write |
Tüm ürün hatlarındaki hizmetlerinizi okuma / hizmet araçlarını çalıştırma (Kurumsal Mail, Nesne Depolama, Uptime İzleme vb.) |
billing_read / billing_pay |
Fatura ve bakiye okuma / faturayı bakiyeden ödeme (para harcar) |
webhooks, keys |
Webhook'ları ve alt hesap anahtarlarını yönetme |
Bunların yanında alan adı, DNS, destek talebi, sipariş ve hesap işlemleri için uç başına ayrı izinler vardır; liste her izni HTTP yöntemi ve yoluyla (ör. GET /client/me) gösterir.
Tam Erişim Ver kutusu anahtara tüm izinleri verir; para harcayan ve silen işlemler dahil. Yalnız gerçekten gerekiyorsa ve anahtarı IP ile kısıtlayarak kullanın.
Önerilen anahtar düzeni:
- İzleme ve raporlama betikleri: yalnız
cloud_read. - Dağıtım (deploy) hattı:
cloud_read+cloud_write, IP kısıtlı. - Sunucu açıp kapatan altyapı otomasyonu (ör. Terraform): ayrıca
cloud_ordervecloud_delete; yalnız bu iş için ayrı bir anahtar.
Ekibinize ya da müşterinize sınırlı erişim vermeniz gerekiyorsa ana anahtarınızı paylaşmayın. API'deki alt hesap anahtarlarıyla yalnız belirli hizmetlere ve eylemlere izin veren dar anahtarlar üretebilirsiniz (geliştirici belgelerinde "API anahtarları" bölümü).
5. Yanıtlar, hatalar ve hız sınırı
Başarılı yanıt {"data": …, "meta": {…}}, hata {"error": {"code": "…", "message": "…", "details": {…}}} biçimindedir. Programınızda mesaja değil code alanına göre karar verin; mesajlar hesabınızın dilindedir.
| HTTP | Sık kodlar | Ne yapmalı |
|---|---|---|
| 401 | missing_token, invalid_token, key_revoked |
Anahtarı ve Authorization başlığını kontrol edin |
| 402 | insufficient_balance |
Hesap bakiyenizi yükleyin |
| 403 | insufficient_scope, ip_not_allowed |
Anahtara izni ekleyin ya da IP'nizi izinli listeye yazın |
| 404 | server_not_found |
Kimlik yanlış ya da nesne size ait değil (başkasına ait nesneler de 404 döner) |
| 409 | server_locked |
Sunucuda süren bir işlem var; birkaç saniye sonra tekrar deneyin |
| 422 | confirm_required |
İstek gövdesine "confirm": true ekleyin (Bölüm 6) |
| 429 | rate_limited |
Retry-After başlığındaki süre kadar bekleyin |
Hız sınırı: anahtar başına varsayılan dakikada 60 istek. Her yanıtta X-RateLimit-Limit, X-RateLimit-Remaining ve X-RateLimit-Reset başlıkları bulunur. Sınırın çok üzerine çıkan anahtar geçici olarak kilitlenir; ağır sunucu işlemleri (yeniden kurulum, geri yükleme) ayrıca sunucu başına günlük sınırlıdır.
Sayfalama: listeler page ve limit (en çok 100) alır; yanıttaki meta.next_page 0 ise son sayfadasınız.
Eşzamansız işler: kurulum, güç ve snapshot işlemleri arka planda çalışır. GET /cloud/servers/{id} ile 5-10 saniyede bir durumu sorgulayın; live.locked true iken yazma istekleri 409 döner.
6. Para harcayan ve geri dönüşsüz işlemler
API, yanlışlıkla iki sunucu sipariş etmenizi ya da veri silmenizi önlemek için üç güvenlik katmanı kullanır:
- Önce teklif: sipariş gövdesine
"dry_run": trueekleyin; fiyat teklifi döner, hiçbir şey oluşturulmaz. - Açık onay: gerçek sipariş ve yıkıcı işlemler (yeniden kurulum, snapshot'tan dönüş, silme)
"confirm": trueolmadan çalışmaz. - Tekrar koruması: siparişlerde
Idempotency-Keybaşlığı zorunludur. Ağ hatasında aynı anahtar ve aynı gövdeyle tekrar denerseniz ikinci sipariş verilmez; ilk yanıt döner (Idempotency-Replayed: true).
# Önce fiyat teklifi (hiçbir şey oluşturulmaz)
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": 814, "cycle": "monthly", "image": "ubuntu-24.04", "dry_run": true}'
product_id, sipariş sayfasının adresindeki numaradır (ör. /siparis/server/814); sipariş verilebilen ürünleri GET /cloud/products ile de listeleyebilirsiniz. Ürün numarası yerine paket adı ve bölgeyle de sipariş verebilirsiniz: "plan": "standart-2-4", "region": "eu-de-1". Her ürünün plan ve region değeri GET /cloud/products yanıtında yazar; bölgelerin listesi ve şehirleri GET /cloud/locations ile görünür.
API siparişleri hesap bakiyenizden ödenir; kayıtlı kartınızdan çekim yapılmaz. Bakiye yetmezse 402 insufficient_balance döner. Bakiye yükleme için Bakiye yükleme rehberine bakın.
7. Anahtar güvenliği
- Her kullanım yeri için ayrı anahtar oluşturun; bir yer ele geçirilirse yalnız o anahtarı iptal edersiniz.
- Sabit IP'li sunuculardan kullanılan anahtarları İzinli IP Adresleri ile kısıtlayın.
- Kullanılmayan anahtarları Anahtarı İptal Et ile iptal edin. İptal anında geçerlidir ve geri alınamaz; iptal edilen anahtar silinebilir.
- İstek Kayıtları'nı ara sıra gözden geçirin.
8. Sık sorulan sorular
Menüde "API Kimlik Bilgileri"ni neden göremiyorum?
Alt kullanıcı olarak girdiyseniz API anahtarı oluşturamazsınız; anahtarları hesap sahibi oluşturur. Hesap sahibiyseniz ve yine göremiyorsanız destek talebi açın.
API ile yaptığım işlemler panelde görünür mü?
Evet. API ile açılan sunucu ya da değiştirilen ayar, müşteri panelinde aynı hizmetin altında görünür.
API'yi kullanmak ücretli mi?
Hayır. API ücretsizdir; yalnız API ile sipariş ettiğiniz hizmetler ücretlidir.
Anahtarım çalınırsa ne yapmalıyım?
Hemen API Kimlik Bilgileri'nde anahtarı iptal edin, yeni bir anahtar oluşturun ve İstek Kayıtları'nda o anahtarla yapılan istekleri inceleyin. Şüpheli bir işlem görürseniz destek talebi açın.
Hazır istemci kütüphanesi var mı?
Evet. Komut satırı için gyro CLI, altyapıyı kodla yönetmek için Terraform sağlayıcısı var; Python, Go ve JavaScript örnekleri geliştirici belgelerinde.
Olayları (ör. sunucu hazır oldu) kendi sistemime alabilir miyim?
Evet, imzalı webhook'larla. Kurulum ve imza doğrulama örneği geliştirici belgelerinin "Webhook'lar" bölümündedir.
curl yazmak yerine gyro CLI aynı API'yi tek komutla kullanır, para harcayan işlemlerde fiyatı gösterip onay ister ve tekrar korumasını kendisi ekler: gyro CLI kurulumu ve ilk komutlar.
Sıradaki adım
- Altyapınızı kodla yönetin: Terraform ile Gyro Bulut sunucusu rehberi.
- Tüm uçlar ve örnekler: Gyro geliştirici belgeleri
Thanks for your feedback!