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 URL | https://api.saatlik.cloud/v1 |
| Format | JSON istek/yanıt — Content-Type: application/json |
| Şartlar | API 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.
| Yetki | Kapsam |
|---|---|
| read | Listeleme ve okuma uçları (her anahtarda vardır) |
| write | Sunucu kurma, güç işlemleri, yeniden kurulum, snapshot, şifre, upgrade, rDNS yazma |
| destroy | Sunucu 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
| Limit | Değer |
|---|---|
| Genel istek | 60 istek / dakika (anahtar başına) |
| Sunucu kurma | 2 / saat — ayrıca hesap limitin (günlük) geçerli |
| Güç işlemi | 10 / saat |
| Yeniden kurulum | 1 / saat, sunucu başına 30 dk arayla |
| Sonlandır → yeni kur | 10 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."
}
}
| HTTP | Kodlar |
|---|---|
| 401 | missing_token · invalid_token |
| 403 | forbidden — anahtarın yetkisi yok · no_snapshot_addon |
| 404 | not_found |
| 409 | invalid_state · already_terminated · request_in_progress |
| 422 | validation_failed · invalid_product · invalid_image · invalid_action · missing_idempotency_key · insufficient_credit · quota_exceeded · limit_exceeded · rejected |
| 429 | rate_limited — Retry-After başlığına bak |
| 400/503 | unsupported_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
| Alan | Tip | Açı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
| Alan | Tip | Açı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
| Alan | Tip | Açı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
| Alan | Tip | Açı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
| Alan | Tip | Açı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
| Alan | Tip | Açı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
| Alan | Tip | Açı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
| Alan | Tip | Açı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