v1 Beta — yayında

saatlik.cloud API

Kendi yazılımından sunucu kur, yönet, snapshot al, sonlandır. Türkiye'nin ilk saatlik sunucu API'si — tek bir curl komutuyla dakikalar içinde sunucun hazır.

Base URLhttps://api.saatlik.cloud/v1
FormatJSON istek/yanıt — Content-Type: application/json
ŞartlarAPI ile sipariş, hizmet sözleşmesinin kabulü sayılır

Kimlik Doğrulama

Her istek Authorization: Bearer başlığıyla yapılır. Anahtarını panelden oluştur: Ayarlar → API Anahtarı. Anahtar yalnızca oluşturulduğu anda bir kez gösterilir; veritabanında geri okunamayan özetiyle (hash) saklanır.

YetkiKapsam
readListeleme ve okuma uçları (her anahtarda vardır)
writeSunucu kurma, güç işlemleri, yeniden kurulum, snapshot, şifre, upgrade, rDNS yazma
destroySunucu sonlandırma — anahtar oluştururken ayrıca seçilmeli
# Örnek
curl https://api.saatlik.cloud/v1/me \
  -H "Authorization: Bearer sc_live_XXXXXXXXXXXXXXXX"

Hız Limitleri

LimitDeğer
Genel istek60 istek / dakika (anahtar başına)
Sunucu kurma2 / saat — ayrıca hesap limitin (günlük) geçerli
Güç işlemi10 / saat
Yeniden kurulum1 / saat, sunucu başına 30 dk arayla
Sonlandır → yeni kur10 dk bekleme

Limit aşımında 429 döner; Retry-After başlığı kaç saniye bekleneceğini söyler. Limitler panel ve API genelinde ortak sayılır.

Hatalar

Hatalar standart HTTP kodları ve tutarlı bir JSON gövdesiyle döner:

{
  "error": {
    "code": "insufficient_credit",
    "message": "Bakiyeniz bu işlem için yeterli değil."
  }
}
HTTPKodlar
401missing_token · invalid_token
403forbidden — anahtarın yetkisi yok · no_snapshot_addon
404not_found
409invalid_state · already_terminated · request_in_progress
422validation_failed · invalid_product · invalid_image · invalid_action · missing_idempotency_key · insufficient_credit · quota_exceeded · limit_exceeded · rejected
429rate_limitedRetry-After başlığına bak
400/503unsupported_location · temporarily_unavailable · action_failed

Hesap

GET /v1/me read

Hesap Bilgisi

Hesap, bakiye, kullanım limitleri ve anlık kaynak kullanımını döner.
İstek
curl https://api.saatlik.cloud/v1/me \
  -H "Authorization: Bearer sc_live_..."
Yanıt
{
  "account": {"client_id": 1, "name": "Ad Soyad", "email": "..."},
  "balance": 195.35,
  "currency": "TRY",
  "limits": {"create_per_day": 3, "max_total_cpu": 8, ...},
  "usage": {"servers": 2, "cpu": 4, "ram_gb": 8, ...}
}
GET /v1/transactions read

İşlem Geçmişi

Kredi hareketlerini yeniden eskiye sayfalı listeler.
Parametreler
AlanTipAçıklama
page integer opsiyonel Sayfa numarası (varsayılan 1)
per_page integer opsiyonel Sayfa başına kayıt, max 100 (varsayılan 25)
type string opsiyonel Tek tipe filtrele: topup, usage_minute_server, termination, refund ...
İstek
curl "https://api.saatlik.cloud/v1/transactions?per_page=25" \
  -H "Authorization: Bearer sc_live_..."
Yanıt
{
  "transactions": [
    {"id": 12805, "type": "usage_minute_server", "amount": -0.0116,
     "description": "Dakikalık kullanım — HKC...", "server_id": "HKC...",
     "created_at": "2026-06-09T18:33:01+03:00"}
  ],
  "meta": {"page": 1, "per_page": 25, "total": 12166}
}

Kaynaklar

GET /v1/products read

Paketler

Satın alınabilir sunucu paketlerini ve saatlik fiyatları listeler. Dönen slug değeri sunucu kurarken product alanında kullanılır.
İstek
curl https://api.saatlik.cloud/v1/products \
  -H "Authorization: Bearer sc_live_..."
Yanıt
{
  "products": [
    {"slug": "hk-2", "name": "HK-2", "category": "saatlik-bulut-sunucu",
     "cpu": 2, "ram_gb": 4, "disk_gb": 64, "hourly_rate": 0.9028,
     "billing_mode": "both", "min_credit": 250}
  ]
}
GET /v1/locations read

Lokasyonlar

Veri merkezi lokasyonlarını ve stok durumunu listeler. slug değeri kurulumda location alanında kullanılır.
İstek
curl https://api.saatlik.cloud/v1/locations \
  -H "Authorization: Bearer sc_live_..."
Yanıt
{
  "locations": [
    {"slug": "prox", "label": "Frankfurt-1", "location": "Frankfurt, Almanya",
     "country": "DE", "in_stock": true}
  ]
}
GET /v1/images read

İşletim Sistemleri & Uygulamalar

Kurulabilir işletim sistemlerini (os), panelleri (panel) ve hazır uygulamaları (app) listeler. slug değeri kurulum ve yeniden kurulumda os alanında kullanılır.
İstek
curl https://api.saatlik.cloud/v1/images \
  -H "Authorization: Bearer sc_live_..."
Yanıt
{
  "images": [
    {"slug": "ubuntu2404", "name": "Ubuntu 24.04", "category": "os"},
    {"slug": "wordpress", "name": "WordPress", "category": "app"}
  ]
}

Sunucular

GET /v1/servers read

Sunucu Listesi

Hesabınızdaki aktif sunucuları listeler (sonlandırılmışlar hariç).
İstek
curl https://api.saatlik.cloud/v1/servers \
  -H "Authorization: Bearer sc_live_..."
Yanıt
{
  "servers": [
    {"id": "HKC...", "name": "web1", "hostname": "web1.alanadi.com",
     "status": "running", "ip": "1.2.3.4", "location": "Frankfurt, Almanya",
     "cpu": 2, "ram_gb": 4, "disk_gb": 64, "billing_type": "hourly",
     "hourly_rate": 0.9028, "os": "Ubuntu 24.04", "created_at": "..."}
  ]
}
GET /v1/servers/{id} read

Sunucu Detayı

Tek sunucunun detayını döner. {id} sunucu kimliğidir (listede dönen id, örn. HKC...).
İstek
curl https://api.saatlik.cloud/v1/servers/HKC... \
  -H "Authorization: Bearer sc_live_..."
Yanıt
{
  "server": {"id": "HKC...", "status": "running", "ip": "1.2.3.4",
    "ip_type": "ipv4", "sata_disk_gb": 0, "suspended_at": null, ...}
}
POST /v1/servers write

Sunucu Kur

Yeni sunucu kurar; kurulum arka planda sürer, sunucu hazır olunca e-posta gelir. Idempotency-Key başlığı zorunludur — aynı key ile tekrarlanan istek ikinci sunucu kurmaz, ilkini döner. Başarıda 201 döner; API ile sipariş hizmet sözleşmesinin kabulü sayılır.
Parametreler
AlanTipAçıklama
product string zorunlu Paket slug — GET /v1/products
location string zorunlu Lokasyon slug — GET /v1/locations
os string zorunlu İşletim sistemi/uygulama slug — GET /v1/images
hostname string zorunlu FQDN — örn. web1.alanadi.com
root_password string zorunlu 8-64 karakter, sadece harf ve rakam
billing_type string opsiyonel hourly (varsayılan) veya monthly
ip_type string opsiyonel ipv4 (varsayılan) veya ipv6
sata_gb integer opsiyonel Ek SATA disk GB (destekleyen lokasyonlarda)
İstek
curl -X POST https://api.saatlik.cloud/v1/servers \
  -H "Authorization: Bearer sc_live_..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: siparis-001" \
  -d '{"product":"hk-2","location":"prox","os":"ubuntu2404",
       "hostname":"web1.alanadi.com","root_password":"GucluSifre123"}'
Yanıt
{
  "server": {"id": "HKC...", "status": "creating", "hostname": "web1.alanadi.com", ...}
}
POST /v1/servers/{id}/actions write

Güç İşlemleri

Sunucuyu başlatır, durdurur veya yeniden başlatır. Askıdaki sunucu yalnızca resume kabul eder. Durdurulan sunucuda saatlik ücret kesimi devam eder.
Parametreler
AlanTipAçıklama
type string zorunlu start · stop · reboot · hard_reboot · resume
İstek
curl -X POST https://api.saatlik.cloud/v1/servers/HKC.../actions \
  -H "Authorization: Bearer sc_live_..." \
  -H "Content-Type: application/json" \
  -d '{"type":"reboot"}'
Yanıt
{"action": "reboot", "status": "running"}
POST /v1/servers/{id}/reinstall write

Yeniden Kur

Sunucuyu seçilen sistemle sıfırdan kurar — diskteki her şey silinir. Sunucu başına 30 dakikada bir yapılabilir. Başarıda 202 döner, işlem arka planda sürer.
Parametreler
AlanTipAçıklama
os string zorunlu Yeni sistem slug — GET /v1/images
root_password string zorunlu 8-64 karakter, sadece harf ve rakam
hostname string opsiyonel Yeni FQDN (boşsa mevcut kalır)
İstek
curl -X POST https://api.saatlik.cloud/v1/servers/HKC.../reinstall \
  -H "Authorization: Bearer sc_live_..." \
  -H "Content-Type: application/json" \
  -d '{"os":"almalinux9","root_password":"YeniSifre123"}'
Yanıt
{"reinstall": "started", "os": "almalinux9", "hostname": "web1.alanadi.com"}
POST /v1/servers/{id}/password write

Root Şifresi Değiştir

Sunucunun root şifresini değiştirir (sunucu çalışırken uygulanır).
Parametreler
AlanTipAçıklama
new_password string zorunlu 8-64 karakter
İstek
curl -X POST https://api.saatlik.cloud/v1/servers/HKC.../password \
  -H "Authorization: Bearer sc_live_..." \
  -H "Content-Type: application/json" \
  -d '{"new_password":"YeniSifre123"}'
Yanıt
{"password": "changed"}
POST /v1/servers/{id}/upgrade write

Paket Yükselt

Sunucuyu daha büyük bir pakete yükseltir (CPU/RAM/disk büyür; disk küçültme desteklenmez). İşlem sırasında sunucu kısa süre yeniden başlatılır.
Parametreler
AlanTipAçıklama
product string zorunlu Yeni paket slug — GET /v1/products
İstek
curl -X POST https://api.saatlik.cloud/v1/servers/HKC.../upgrade \
  -H "Authorization: Bearer sc_live_..." \
  -H "Content-Type: application/json" \
  -d '{"product":"hk-3"}'
Yanıt
{"upgrade": "completed", "product": "hk-3", "server": {...}}
DELETE /v1/servers/{id} destroy

Sunucuyu Sonlandır

Geri alınamaz. Sunucuyu kalıcı olarak sonlandırır, faturalama durur. destroy yetkili anahtar gerektirir (anahtar oluştururken ayrıca seçilmeli). Başarıda 202 döner.
İstek
curl -X DELETE https://api.saatlik.cloud/v1/servers/HKC... \
  -H "Authorization: Bearer sc_live_..."
Yanıt
{"terminate": "started"}

Snapshots

GET /v1/servers/{id}/snapshots read

Snapshot Listesi

Sunucunun anlık görüntülerini, kotasını ve kullanımını döner. Snapshot almak için sunucuda aktif snapshot eklentisi olmalıdır.
İstek
curl https://api.saatlik.cloud/v1/servers/HKC.../snapshots \
  -H "Authorization: Bearer sc_live_..."
Yanıt
{
  "snapshots": [
    {"name": "oncesi", "created": "09.06.2026 14:22", "description": null}
  ],
  "quota": 3, "used": 1
}
POST /v1/servers/{id}/snapshots write

Snapshot Al

Sunucunun anlık görüntüsünü alır. Başarıda 201 döner.
Parametreler
AlanTipAçıklama
name string zorunlu Harfle başlar; harf/rakam/tire/altçizgi, max 40
description string opsiyonel Açıklama (max 200)
İstek
curl -X POST https://api.saatlik.cloud/v1/servers/HKC.../snapshots \
  -H "Authorization: Bearer sc_live_..." \
  -H "Content-Type: application/json" \
  -d '{"name":"guncelleme-oncesi"}'
Yanıt
{"snapshot": "guncelleme-oncesi"}
POST /v1/servers/{id}/snapshots/{name}/restore write

Snapshot'a Geri Dön

Yıkıcı işlem: sunucu, snapshot alındığı ana geri döner — sonrasındaki tüm değişiklikler kaybolur. İşlem sırasında sunucu kapatılıp açılır.
İstek
curl -X POST https://api.saatlik.cloud/v1/servers/HKC.../snapshots/guncelleme-oncesi/restore \
  -H "Authorization: Bearer sc_live_..."
Yanıt
{"restore": "completed", "snapshot": "guncelleme-oncesi"}
DELETE /v1/servers/{id}/snapshots/{name} write

Snapshot Sil

Anlık görüntüyü kalıcı olarak siler.
İstek
curl -X DELETE https://api.saatlik.cloud/v1/servers/HKC.../snapshots/guncelleme-oncesi \
  -H "Authorization: Bearer sc_live_..."
Yanıt
{"deleted": "guncelleme-oncesi"}

rDNS

GET /v1/servers/{id}/rdns read

rDNS Kaydını Oku

Sunucu IP'sinin reverse DNS (PTR) kaydını döner. Desteklenmeyen lokasyonlarda unsupported_location hatası gelir.
İstek
curl https://api.saatlik.cloud/v1/servers/HKC.../rdns \
  -H "Authorization: Bearer sc_live_..."
Yanıt
{"ip": "1.2.3.4", "ptr": "mail.alanadi.com"}
PUT /v1/servers/{id}/rdns write

rDNS Kaydını Güncelle

Sunucu IP'sine PTR kaydı tanımlar/günceller (mail sunucuları için önemli).
Parametreler
AlanTipAçıklama
ptr string zorunlu PTR değeri — örn. mail.alanadi.com
İstek
curl -X PUT https://api.saatlik.cloud/v1/servers/HKC.../rdns \
  -H "Authorization: Bearer sc_live_..." \
  -H "Content-Type: application/json" \
  -d '{"ptr":"mail.alanadi.com"}'
Yanıt
{"ip": "1.2.3.4", "ptr": "mail.alanadi.com"}
DELETE /v1/servers/{id}/rdns write

rDNS Kaydını Sil

PTR kaydını kaldırır.
İstek
curl -X DELETE https://api.saatlik.cloud/v1/servers/HKC.../rdns \
  -H "Authorization: Bearer sc_live_..."
Yanıt
{"ip": "1.2.3.4", "ptr": null}
© 2026 saatlik.cloud — API Dökümanı v1 Soru & geri bildirim için iletişim