Giriş
Netlen Cloud API, sunucularınızı programatik olarak yönetmenizi sağlar. RESTful mimari ile tasarlanmış API, JSON formatında veri alışverişi yapar.
https://api.netlen.com.tr/v1v1.0.7 (OpenAPI 3.0.3)Kimlik Doğrulama
Tüm API isteklerinde X-API-Key header'ı kullanılmalıdır. API anahtarınızı Netlen Cloud panelinizden alabilirsiniz.
Örnek
curl -X GET "https://api.netlen.com.tr/v1/servers" \ -H "X-API-Key: YOUR_API_KEY" \ -H "Content-Type: application/json"
Hızlı Başlangıç
API'yi kullanmaya başlamak için önce bir API anahtarı almanız gerekir. Ardından bu anahtarı tüm isteklerinizde X-API-Key header'ı olarak göndermeniz gerekir.
İlk İsteğinizi Yapın
Sunucularınızı listelemek için aşağıdaki komutu kullanın:
curl -X GET "https://api.netlen.com.tr/v1/servers" \ -H "X-API-Key: YOUR_API_KEY"
Sunucu Oluşturun
Yeni bir sunucu oluşturmak için POST isteği gönderin:
curl -X POST "https://api.netlen.com.tr/v1/servers" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"package_id": 1,
"version_id": 1,
"location_id": 1,
"server_name": "my-server"
}'WHMCS Modülü
WHMCS entegrasyonu ile müşterilerinize otomatik sunucu sağlama imkanı sunun.
Gereksinimler
- WHMCS 8.x
- PHP 8.1 veya üzeri
- ionCube Loader 13 veya üzeri
- cURL desteği
- Netlen Cloud API anahtarı
Kurulum
Dosyaları Çıkartın
ZIP dosyasını WHMCS kök dizinine çıkartın. Modül otomatik olarak doğru klasörlere yerleşecektir.
API Anahtarı Alın
Netlen Cloud panelinden Bayi → API menüsüne gidin ve yeni bir API anahtarı oluşturun. WHMCS sunucunuzun IP adresini izin verilen IP'lere ekleyin.
WHMCS'de Sunucu Ekleyin
Setup → Products/Services → Servers menüsüne gidin, yeni sunucu ekleyin ve modül olarak Netlen Cloud'u seçin.
Addon Modülü Aktifleştirin
Setup → Addon Modules menüsünden Netlen Cloud modülünü bulun ve aktifleştirin.
Hata Kodları
API, standart HTTP durum kodları ve detaylı hata mesajları döndürür.
| Code | Name | Açıklama |
|---|---|---|
400 | Bad Request | Geçersiz istek parametreleri |
401 | Unauthorized | Geçersiz API anahtarı veya IP izin listesinde değil |
403 | Forbidden | Bu işlem için yetkiniz yok |
404 | Not Found | İstenen kaynak bulunamadı |
422 | Unprocessable Entity | Doğrulama hatası |
429 | Too Many Requests | Rate limit aşıldı |
500 | Internal Server Error | Sunucu hatası |
Hata Yanıtı Örneği
{
"success": false,
"error": {
"code": "INVALID_API_KEY",
"message": "Invalid API key",
"details": {}
}
}API Referansı
Kaynaklar
Sunucu oluşturma için gerekli kaynaklar
/packagesSunucu Paketlerini Listele
Mevcut sunucu paketlerini listeler. Bayi statüsüne sahip müşteriler için indirimli fiyatlar da gösterilir.
Parametreler
pageintegerlimitinteger{
"success": true,
"data": [
{
"id": 1,
"name": "Basic Plan",
"cpu_cores": 2,
"ram_mb": 2048,
"storage_gb": 50,
"bandwidth_gb": 1000,
"monthly_price": 29.99,
"reseller_monthly_price": 25.49,
"reseller_discount_percentage": 15
}
],
"pagination": {
"current_page": 1,
"total": 10,
"total_pages": 1
}
}/operating-systemsİşletim Sistemlerini Listele
Kullanılabilir işletim sistemlerini ve versiyonlarını listeler.
{
"success": true,
"data": [
{
"id": 1,
"name": "Ubuntu",
"versions": [
{
"id": 1,
"name": "Ubuntu 22.04 LTS"
},
{
"id": 2,
"name": "Ubuntu 20.04 LTS"
}
]
}
]
}/locationsLokasyonları Listele
Mevcut veri merkezi lokasyonlarını listeler.
{
"success": true,
"data": {
"locations": [
{
"id": 1,
"name": "Istanbul",
"code": "IST",
"status": "active"
},
{
"id": 2,
"name": "Frankfurt",
"code": "FRA",
"status": "active"
}
]
}
}Sunucular
Sunucu yönetimi işlemleri
/serversSunucuları Listele
Hesabınıza ait tüm sunucuları listeler.
Parametreler
pageintegerper_pageintegerstatusstring{
"success": true,
"data": [
{
"server_id": "ABC123",
"name": "my-server",
"status": "active",
"ip_address": "192.168.1.100",
"package": {
"id": 1,
"name": "Basic Plan"
},
"amount": 29.99,
"next_billing_date": "2024-02-01T00:00:00Z"
}
]
}/serversSunucu Oluştur
Yeni bir sunucu oluşturur. Hesabınızda yeterli bakiye olmalıdır.
{
"package_id": 1,
"version_id": 1,
"location_id": 1,
"server_name": "my-new-server",
"password": "SecurePass123!",
"description": "My first server"
}/servers/{server_id}Sunucu Detayları
Belirtilen sunucunun detaylı bilgilerini getirir.
{
"success": true,
"data": {
"server_id": "ABC123",
"name": "my-server",
"status": "active",
"primary_ip": {
"ip_address": "192.168.1.100",
"rdns": "server.example.com"
},
"extra_ips": [],
"traffic_usage": {
"upload_used": 1073741824,
"download_used": 2147483648,
"upload_limit": 1000,
"upload_limit_unit": "GiB"
}
}
}/servers/{server_id}Sunucu Sil
Sunucuyu kalıcı olarak siler. Bu işlem geri alınamaz.
{
"success": true,
"message": "Server deleted successfully"
}/servers/{server_id}/startSunucuyu Başlat
Kapalı durumdaki sunucuyu başlatır.
{
"success": true,
"message": "Server started successfully"
}/servers/{server_id}/stopSunucuyu Durdur
Çalışan sunucuyu durdurur.
{
"success": true,
"message": "Server stopped successfully"
}/servers/{server_id}/restartSunucuyu Yeniden Başlat
Sunucuyu yeniden başlatır.
{
"success": true,
"message": "Server restarted successfully"
}/servers/{server_id}/upgradeSunucu Yükselt
Sunucu paketini yükseltir.
{
"new_package_id": 2,
"plan_id": 5
}/servers/{server_id}/password-resetŞifre Sıfırla
Root şifresini sıfırlar. Body gerekmez, yeni şifre response'da döner.
{
"success": true,
"message": "Password reset initiated",
"data": {
"server_id": "ABC123",
"new_password": "#0u0%sxdE86D"
}
}/servers/{server_id}/reinstallYeniden Kur
İşletim sistemini yeniden kurar. Tüm veriler silinir.
{
"version_id": 1
}/servers/{server_id}/vncVNC Konsol Erişimi
Sunucu için tek kullanımlık VNC viewer URL'i üretir. URL 300 saniye içinde açılmalıdır; süre dolduğunda yeniden istek atılır. Body gerekmez.
{
"success": true,
"data": {
"server_id": "abc-123",
"viewer_url": "https://app.netlen.com.tr/servers/vnc-console?token=a8f3e2b9c4d7f1a5e8b2c9d6f3a1e4b7c0d2e5f8a1b4c7d0e3f6a9c2b5d8f1e4",
"expires_at": "2026-05-14 15:42:30",
"expires_in": 300,
"vnc_password": "Xb!7yQ2dKm",
"usage_note": "Viewer URL tek kullanımlıktır ve 300 saniye içinde açılmalıdır."
}
}Sanal Veri Merkezi
VDC kaynak ve VM yönetimi
/resourcesVDC Kaynakları
Müşterinin satın aldığı VDC kaynakları, kullanım ve müsait kaynakları döner.
{
"success": true,
"data": {
"resources": {
"cpu_cores": 8,
"ram_gb": 16,
"disk_gb": 200,
"ipv4_count": 2,
"ipv6_count": 1,
"bandwidth_mbit": 1000
},
"usage": {
"cpu_used": 2,
"ram_used_gb": 4,
"disk_used_gb": 50,
"ipv4_used": 1,
"ipv6_used": 0,
"bandwidth_used_mbit": 100
},
"available": {
"cpu_available": 6,
"ram_available_gb": 12,
"disk_available_gb": 150,
"ipv4_available": 1,
"ipv6_available": 1,
"bandwidth_available_mbit": 900
}
}
}/vmsVM Listesi
VDC içindeki VM listesini döner.
{
"success": true,
"data": {
"vms": [
{
"unique_id": "VDC-A1B2C",
"vm_name": "web-server",
"cpu_cores": 2,
"ram_gb": 4,
"disk_gb": 50,
"primary_ip": "192.168.1.100",
"status": "active",
"os_name": "Debian",
"os_version": "12"
}
]
}
}/vmsVM Oluştur
VDC içinde yeni VM oluşturur.
{
"vm_name": "my-vm",
"password": "SecurePass123!",
"cpu_cores": 2,
"ram_gb": 4,
"disk_gb": 50,
"location_name": "Türkiye",
"os_id": 3
}/vms/{vm_id}VM Detayları
Tek VM detayını döner.
{
"success": true,
"data": {
"vm_id": "VDC-A1B2C",
"vm_name": "web-server",
"cpu_cores": 2,
"ram_gb": 4,
"disk_gb": 50,
"status": "active",
"primary_ip": "192.168.1.100"
}
}/vms/{vm_id}VM Sil
VM'i siler. Body'de VM adı onayı zorunludur.
{
"confirm_vm_name": "web-server"
}/vms/{vm_id}/resizeVM Boyutlandır
VM kaynaklarını günceller.
{
"cpu_cores": 4,
"ram_gb": 8,
"disk_gb": 100
}/vms/{vm_id}/startVM Başlat
VM'yi başlatır.
{
"success": true,
"message": "VM is starting"
}/vms/{vm_id}/stopVM Durdur
VM'yi durdurur.
{
"success": true,
"message": "VM is stopping"
}/vms/{vm_id}/usageVM Kullanımı
VM kullanım bilgisi.
{
"success": true,
"data": {
"usage": {
"cpu": {
"load_average": 0.5
},
"memory": {
"used_mb": 1024
},
"disk": {
"used_gb": 12
}
}
}
}/vms/{vm_id}/snapshotsSnapshot Listesi
VM'in snapshot listesi.
{
"success": true,
"data": {
"snapshots": [
{
"id": 42,
"name": "Yedek",
"status": "completed"
}
]
}
}/vms/{vm_id}/snapshotsSnapshot Oluştur
VM için snapshot oluşturur.
{
"name": "Yedek-20250124"
}/vms/{vm_id}/snapshots/{snapshot_id}Snapshot Sil
Snapshot'u siler.
{
"success": true,
"message": "Snapshot deleted successfully"
}/vms/{vm_id}/snapshots/{snapshot_id}/restoreSnapshot Geri Yükle
Snapshot'tan geri yükler.
{
"success": true,
"message": "Snapshot restore started"
}IP Adresleri
IP adresi yönetimi
/servers/{server_id}/ipsIP Adreslerini Listele
Sunucuya ait IP adreslerini listeler.
{
"success": true,
"data": {
"server_id": "ABC123",
"primary_ip": {
"ip_address": "192.168.1.100",
"type": "IPv4",
"rdns": "server.example.com"
},
"extra_ips": [
{
"ip_address": "192.168.1.101",
"type": "IPv4",
"rdns": null
}
],
"ipv6_address": "2001:db8::1"
}
}/servers/{server_id}/ips/purchaseEk IP Satın Al
Sunucuya ek IP adresi ekler.
{
"ip_type": "IPv4"
}/servers/{server_id}/ips/{ip_address}rDNS Bilgisi Al
IP adresinin reverse DNS kaydını getirir.
{
"success": true,
"data": {
"ip_address": "192.0.2.1",
"rdns": "server.example.com"
}
}/servers/{server_id}/ips/{ip_address}rDNS Güncelle
IP adresinin reverse DNS kaydını günceller.
{
"rdns": "server.example.com"
}/servers/{server_id}/ips/{ip_address}IP İptal Et
Ek IP adresini iptal eder.
{
"success": true,
"message": "Extra IP cancelled successfully"
}Snapshots
Anlık görüntü yönetimi
/servers/{server_id}/snapshotsSnapshot Listele
Sunucunun snapshot'larını listeler.
{
"success": true,
"data": [
{
"id": "snapshot-123",
"name": "backup-2025-12-16",
"created_at": "2025-12-16T10:00:00Z"
}
]
}/servers/{server_id}/snapshotsSnapshot Oluştur
Sunucunun anlık görüntüsünü oluşturur.
{
"name": "backup-2025-12-16"
}/servers/{server_id}/snapshots/{snapshot_id}/restoreSnapshot'tan Geri Yükle
Sunucuyu snapshot'tan geri yükler.
{
"success": true,
"message": "Snapshot restored successfully"
}/servers/{server_id}/snapshots/{snapshot_id}Snapshot Sil
Snapshot'u kalıcı olarak siler.
{
"success": true,
"message": "Snapshot deleted successfully"
}Destek Talepleri
Destek talebi yönetimi
/departmentsDepartmanları Listele
Aktif destek departmanlarını listeler.
{
"success": true,
"data": [
{
"id": 1,
"name": "Teknik Destek",
"email": "support@netlen.com.tr"
},
{
"id": 2,
"name": "Satış",
"email": "sales@netlen.com.tr"
}
]
}/ticketsTalepleri Listele
Destek taleplerini listeler.
Parametreler
statusstring{
"success": true,
"data": [
{
"id": "T000001",
"subject": "Server issue",
"status": "open",
"department": "Technical Support"
}
]
}/ticketsTalep Oluştur
Yeni destek talebi oluşturur.
{
"subject": "Sunucu erişim sorunu",
"message": "Sunucuma SSH ile bağlanamıyorum.",
"department_id": 1,
"priority": "high"
}/tickets/{ticket_id}Talep Detayları
Destek talebi detaylarını getirir.
{
"success": true,
"data": {
"id": "T000001",
"subject": "Server issue",
"status": "open",
"messages": [
{
"id": 1,
"message": "I cannot connect to my server",
"author": "Customer",
"created_at": "2025-01-15T10:00:00Z"
}
]
}
}/tickets/{ticket_id}/replyYanıt Ekle
Destek talebine yanıt ekler.
{
"message": "Problem solved, thank you!"
}/tickets/{ticket_id}/closeTalebi Kapat
Destek talebini kapatır.
{
"success": true,
"message": "Ticket closed successfully"
}Alt Kullanıcılar
Alt kullanıcı yönetimi
/sub-usersAlt Kullanıcıları Listele
Alt kullanıcıları listeler.
{
"success": true,
"data": [
{
"id": 1,
"email": "john@example.com",
"first_name": "John",
"last_name": "Doe",
"status": "active"
}
]
}/sub-usersAlt Kullanıcı Oluştur
Yeni alt kullanıcı oluşturur.
{
"email": "jane@example.com",
"first_name": "Jane",
"last_name": "Doe",
"password": "SecurePass123!"
}/sub-users/{sub_user_id}Alt Kullanıcı Detayları
Alt kullanıcı detaylarını getirir.
{
"success": true,
"data": {
"id": 1,
"email": "john@example.com",
"first_name": "John",
"last_name": "Doe",
"permissions": [
"servers.view",
"servers.manage"
]
}
}/sub-users/{sub_user_id}Alt Kullanıcı Güncelle
Alt kullanıcı bilgilerini günceller.
{
"first_name": "John",
"last_name": "Smith"
}/sub-users/{sub_user_id}Alt Kullanıcı Sil
Alt kullanıcıyı siler.
{
"success": true,
"message": "Sub-user deleted successfully"
}Bakiye
Bakiye ve işlem geçmişi
/balanceBakiye Bilgisi
Hesap bakiyesini getirir.
{
"success": true,
"data": {
"balance": 1247.5,
"total_deposits": 2000,
"total_withdrawals": 752.5
}
}/balance/transactionsİşlem Geçmişi
Bakiye işlem geçmişini listeler.
{
"success": true,
"data": [
{
"id": 1,
"type": "deposit",
"amount": 100,
"status": "success",
"created_at": "2025-01-15T10:00:00Z"
},
{
"id": 2,
"type": "withdraw",
"amount": -29.99,
"description": "Server charge",
"created_at": "2025-01-14T00:00:00Z"
}
]
}Paket Tipleri
Farklı hizmet paketleri
/email-packagesE-posta Paketleri
E-posta hosting paketlerini listeler.
{
"success": true,
"data": [
{
"id": 1,
"name": "Starter Email",
"disk_quota_mb": 5120,
"max_accounts": 10,
"monthly_price": 9.99
}
]
}/web-hosting-packagesWeb Hosting Paketleri
Web hosting paketlerini listeler.
{
"success": true,
"data": [
{
"id": 1,
"name": "Starter Web",
"disk_quota_mb": 10240,
"max_domains": 5,
"monthly_price": 4.99
}
]
}/colocation-packagesColocation Paketleri
Colocation hizmet paketlerini listeler.
{
"success": true,
"data": [
{
"id": 1,
"name": "Single Server",
"type": "single_server",
"monthly_price": 99.99
}
]
}/dedicated-server-packagesFiziksel Sunucu Paketleri
Fiziksel sunucu paketlerini listeler.
{
"success": true,
"data": [
{
"id": 1,
"name": "DS-1",
"cpu_cores": 4,
"ram_gb": 16,
"storage_gb": 500,
"monthly_price": 199.99
}
]
}/ip-subnet-packagesIP Subnet Paketleri
IP subnet paketlerini listeler.
{
"success": true,
"data": [
{
"id": 1,
"name": "/29 Subnet",
"subnet_size": "/29",
"monthly_price": 49.99
}
]
}