ZiraCP API Referansı
ZiraCP tamamen API-öncelikli tasarlanmıştır: panelde yapabildiğiniz her şey REST API üzerinden de yapılabilir. Bu, WHMCS gibi faturalama sistemleriyle ve kendi otomasyonlarınızla entegrasyonu mümkün kılar.
Genel bakış
API, JSON gövdeli REST uç noktaları ve canlı iş ilerlemesi için SSE (Server-Sent Events) akışları sunar. İki düzlem, iki router olarak ayrılmıştır: yönetici (zCenter) ve kullanıcı (zPanel). Her istek sunucu tarafında yeniden yetkilendirilir ve hash-zincirli audit log'a yazılır.
Temel URL
API, panelinizin kendi ana makinesinde çalışır — merkezi bir bulut yoktur, verileriniz sizde kalır:
# Yönetici düzlemi (zCenter)
https://SUNUCU:7443/api/v1
# Kullanıcı düzlemi (zPanel)
https://SUNUCU:7444/api/v1
Kimlik doğrulama
İki yöntem desteklenir:
- Oturum (cookie): tarayıcı arayüzü kullanır;
POST /auth/loginile oturum açılır, iptal edilebilir kayan oturum çerezleri kullanılır. - API tokenı (Bearer): otomasyon için; her istekte
Authorizationbaşlığıyla gönderilir.
curl https://SUNUCU:7443/api/v1/accounts \
-H "Authorization: Bearer zcp_XXXXXXXXXXXXXXXX"
API tokenları
Tokenlar zCenter'daki API & Webhook ekranından oluşturulur. Her token kapsamlıdır (scoped) — yalnızca izin verdiği eylemleri yapar. Token yalnızca oluşturulurken bir kez gösterilir ve veritabanında yalnızca hash'i saklanır.
Hatalar
Hatalar tutarlı bir JSON gövdesi ve uygun HTTP durum kodu döndürür:
{
"error": {
"code": "forbidden",
"message": "role \"user\" may not call this endpoint"
}
}
| Kod | HTTP | Anlamı |
|---|---|---|
bad_request | 400 | Geçersiz gövde/parametre |
unauthorized | 401 | Kimlik doğrulama gerekli |
forbidden | 403 | Yetki yetersiz |
not_found | 404 | Kaynak yok |
unavailable | 502/503 | Alt sistem erişilemez |
Webhook'lar
Olay bildirimleri için webhook'lar tanımlayabilirsiniz. İki tür kanca vardır: pre-veto (işlemi engelleyebilir) ve post-notify (bilgilendirir). Tüm giden istekler tek bir SSRF-güvenli HTTP istemcisinden geçer.
Hesaplar
Web siteleri
DNS
Veritabanları
E-posta
Yedekler
İşler & SSE
Uzun süren işlemler (hesap açma, kurulum, yedek) bir iş kuyruğuna alınır ve ilerleme SSE ile canlı akıtılır. Last-Event-ID ile kaldığı yerden devam eder.
Lisans & sürüm
OpenAPI şeması
TypeScript istemcisi spec'ten üretilir; bu yapısal olarak "UI'daki her özellik API'de var" garantisini verir. Çalışan panelinizin makine-okunur şeması kendi kurulumunuzdan sunulur:
https://SUNUCU:7443/api/v1/openapi.json
openapi.json dosyasıdır.