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, eklenti, 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_addon · 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"}
]
}
GET
/v1/addon-types
read
Eklenti Türleri
Satın alınabilir eklenti türlerini ve fiyatlarını listeler (ek IP, snapshot paketi, ek RAM/CPU/disk, lisanslar...).
slug değeri eklenti satın alırken type alanında kullanılır.İstek
curl https://api.saatlik.cloud/v1/addon-types \
-H "Authorization: Bearer sc_live_..."
Yanıt
{
"addon_types": [
{"slug": "snapshot", "name": "Snapshot Paketi", "billing_type": "monthly",
"hourly_rate": null, "monthly_price": 40}
]
}
Sipariş
POST
/v1/servers
write
Sunucu Kur (Satın Al)
Yeni sunucu satın alır ve kurar; ücret kredi bakiyenden kesilir (saatlik ya da aylık peşin), 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}/addons
write
Eklenti Satın Al
Sunucuya eklenti satın alır: snapshot paketi, ek IP, ek RAM/CPU/disk, panel lisansı, otomatik yedekleme... Ücret kredinden kesilir; kaynak eklentilerinde sunucu kısa süre yeniden başlatılabilir. Başarıda
201 döner.Parametreler
| Alan | Tip | Açıklama | |
|---|---|---|---|
type |
string | zorunlu | Eklenti slug — GET /v1/addon-types |
quantity |
integer | opsiyonel | Adet/miktar (varsayılan 1; örn. RAM için GB) |
İstek
curl -X POST https://api.saatlik.cloud/v1/servers/HKC.../addons \
-H "Authorization: Bearer sc_live_..." \
-H "Content-Type: application/json" \
-d '{"type":"snapshot","quantity":1}'
Yanıt
{"addon": "snapshot", "quantity": 1, "status": "ordered"}
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": {...}}
Sunucu Yönetimi
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/{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. Uzun süreli kapalı sunucuda başlatma/durdurma kabul edilmez; açmak panelden yapılır.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"}
GET
/v1/servers/{id}/addons
read
Sunucu Eklentileri
Sunucudaki aktif/bekleyen eklentileri listeler. Dönen
id değeri eklenti iptalinde kullanılır.İstek
curl https://api.saatlik.cloud/v1/servers/HKC.../addons \
-H "Authorization: Bearer sc_live_..."
Yanıt
{
"addons": [
{"id": 12, "type": "snapshot", "name": "Snapshot Paketi", "quantity": 1,
"status": "active", "assigned_ip": null, "next_billing": "..."}
]
}
DELETE
/v1/servers/{id}/addons/{addonId}
write
Eklenti İptal
Eklentiyi iptal eder. Disk büyütme (
extra-disk) iptal edilemez; kaynak eklentilerinin iptalinde sunucu yeniden başlatılabilir.İstek
curl -X DELETE https://api.saatlik.cloud/v1/servers/HKC.../addons/12 \
-H "Authorization: Bearer sc_live_..."
Yanıt
{"cancelled": 12}
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"}
Fiziksel Sunucu
GET
/v1/physical/configs
read
Konfigürasyonlar
Satın alınabilir fiziksel sunucu konfigürasyonlarını, stok ve fiyatları listeler. Dönen
config değeri sipariş verirken kullanılır. Teslim modeli rescue'dur: işletim sistemini rehberdeki gibi kendin kurarsın.İstek
curl https://api.saatlik.cloud/v1/physical/configs \
-H "Authorization: Bearer sc_live_..."
Yanıt
{
"configs": [
{"config": "493b1a...", "cpu": "Intel Core i7-6700", "ram_gb": 32,
"disk": "2×4 TB HDD", "location": "Almanya", "hourly_rate": 6.81,
"monthly_price": 3189, "stock": 1, "min_hours": 3}
],
"delivery_model": "rescue"
}
GET
/v1/physical/servers
read
Fiziksel Sunucularım
Fiziksel sunucu siparişlerini ve teslim edilmiş sunucuları listeler (durum:
ordering → processing → delivered).İstek
curl https://api.saatlik.cloud/v1/physical/servers \
-H "Authorization: Bearer sc_live_..."
Yanıt
{
"servers": [
{"id": "SBS-A1B2", "status": "delivered", "cpu": "AMD Ryzen 5 3600",
"ram_gb": 64, "disk": "2×512 GB NVMe", "location": "Almanya",
"ip": "1.2.3.4", "billing_mode": "hourly", "hourly_rate": 6.81, ...}
]
}
GET
/v1/physical/servers/{id}
read
Fiziksel Sunucu Detayı
Sipariş/sunucu detayı. Teslim edilmiş sunucuda
rescue_user + rescue_password da döner — bunlarla SSH'lanıp işletim sistemini kurarsın.İstek
curl https://api.saatlik.cloud/v1/physical/servers/SBS-A1B2 \
-H "Authorization: Bearer sc_live_..."
Yanıt
{
"server": {"id": "SBS-A1B2", "status": "delivered", "ip": "1.2.3.4",
"rescue_user": "root", "rescue_password": "...", ...}
}
POST
/v1/physical/servers
write
Fiziksel Sunucu Sipariş Et
Fiziksel sunucu sipariş eder; teslimat birkaç dakika ile birkaç saat arasında sürer, hazır olunca e-posta gelir. Ücret kesimi teslimatta başlar (saatlik modda en az
min_hours saat peşin). Bakiye yetersizse sipariş kabul edilmez. Idempotency-Key zorunlu. Aynı anda en fazla 2 bekleyen sipariş. Başarıda 201.Parametreler
| Alan | Tip | Açıklama | |
|---|---|---|---|
config |
string | zorunlu | Konfigürasyon kimliği — GET /v1/physical/configs |
hostname |
string | opsiyonel | Küçük harf/rakam/nokta/tire (boşsa otomatik üretilir) |
billing_mode |
string | opsiyonel | hourly (varsayılan) veya monthly (30 günlük peşin) |
İstek
curl -X POST https://api.saatlik.cloud/v1/physical/servers \
-H "Authorization: Bearer sc_live_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: fiziksel-001" \
-d '{"config":"493b1a...","hostname":"db1.alanadi.com"}'
Yanıt
{
"server": {"id": "SBS-A1B2", "status": "ordering", "hostname": "db1.alanadi.com", ...}
}
DELETE
/v1/physical/servers/{id}
destroy
Fiziksel Sunucuyu Sonlandır
Geri alınamaz. Teslim edilmiş sunucuyu sonlandırır; kalan dakikalar kesilir, faturalama durur.
destroy yetkili anahtar gerektirir. Başarıda 202.İstek
curl -X DELETE https://api.saatlik.cloud/v1/physical/servers/SBS-A1B2 \
-H "Authorization: Bearer sc_live_..."
Yanıt
{"terminate": "completed"}
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}