v1.0.7

API Dokümantasyonu

Netlen Cloud API ile sunucularınızı programatik olarak yönetin

API Key Al

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.

Base URL
https://api.netlen.com.tr/v1
Versiyon
v1.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.

1

API Anahtarı Alın

Netlen Cloud panelinden Bayi → API menüsüne gidin.

Panele Git
2

İ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"
3

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ı

Modülü İndir

Resmi WHMCS modülünü indirin ve kurulum talimatlarını takip edin.

WHMCS Modülünü İndir

Kurulum

1

Dosyaları Çıkartın

ZIP dosyasını WHMCS kök dizinine çıkartın. Modül otomatik olarak doğru klasörlere yerleşecektir.

2

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.

3

WHMCS'de Sunucu Ekleyin

Setup → Products/Services → Servers menüsüne gidin, yeni sunucu ekleyin ve modül olarak Netlen Cloud'u seçin.

4

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.

CodeNameAçıklama
400
Bad RequestGeçersiz istek parametreleri
401
UnauthorizedGeçersiz API anahtarı veya IP izin listesinde değil
403
ForbiddenBu işlem için yetkiniz yok
404
Not Foundİstenen kaynak bulunamadı
422
Unprocessable EntityDoğrulama hatası
429
Too Many RequestsRate limit aşıldı
500
Internal Server ErrorSunucu 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

GET
/packages

Sunucu Paketlerini Listele

Mevcut sunucu paketlerini listeler. Bayi statüsüne sahip müşteriler için indirimli fiyatlar da gösterilir.

Parametreler

pageinteger
Opsiyonel
Sayfa numarası
limitinteger
Opsiyonel
Sayfa başına öğe (max 100)
{
  "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
  }
}
GET
/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"
        }
      ]
    }
  ]
}
GET
/locations

Lokasyonları 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

GET
/servers

Sunucuları Listele

Hesabınıza ait tüm sunucuları listeler.

Parametreler

pageinteger
Opsiyonel
Sayfa numarası
per_pageinteger
Opsiyonel
Sayfa başına öğe
statusstring
Opsiyonel
Durum filtresi (active, stopped, suspended)
{
  "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"
    }
  ]
}
POST
/servers

Sunucu 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"
}
GET
/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"
    }
  }
}
DELETE
/servers/{server_id}

Sunucu Sil

Sunucuyu kalıcı olarak siler. Bu işlem geri alınamaz.

{
  "success": true,
  "message": "Server deleted successfully"
}
POST
/servers/{server_id}/start

Sunucuyu Başlat

Kapalı durumdaki sunucuyu başlatır.

{
  "success": true,
  "message": "Server started successfully"
}
POST
/servers/{server_id}/stop

Sunucuyu Durdur

Çalışan sunucuyu durdurur.

{
  "success": true,
  "message": "Server stopped successfully"
}
POST
/servers/{server_id}/restart

Sunucuyu Yeniden Başlat

Sunucuyu yeniden başlatır.

{
  "success": true,
  "message": "Server restarted successfully"
}
POST
/servers/{server_id}/upgrade

Sunucu Yükselt

Sunucu paketini yükseltir.

{
  "new_package_id": 2,
  "plan_id": 5
}
POST
/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"
  }
}
POST
/servers/{server_id}/reinstall

Yeniden Kur

İşletim sistemini yeniden kurar. Tüm veriler silinir.

{
  "version_id": 1
}
POST
/servers/{server_id}/vnc

VNC 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

GET
/resources

VDC 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
    }
  }
}
GET
/vms

VM 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"
      }
    ]
  }
}
POST
/vms

VM 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
}
GET
/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"
  }
}
DELETE
/vms/{vm_id}

VM Sil

VM'i siler. Body'de VM adı onayı zorunludur.

{
  "confirm_vm_name": "web-server"
}
POST
/vms/{vm_id}/resize

VM Boyutlandır

VM kaynaklarını günceller.

{
  "cpu_cores": 4,
  "ram_gb": 8,
  "disk_gb": 100
}
POST
/vms/{vm_id}/start

VM Başlat

VM'yi başlatır.

{
  "success": true,
  "message": "VM is starting"
}
POST
/vms/{vm_id}/stop

VM Durdur

VM'yi durdurur.

{
  "success": true,
  "message": "VM is stopping"
}
GET
/vms/{vm_id}/usage

VM Kullanımı

VM kullanım bilgisi.

{
  "success": true,
  "data": {
    "usage": {
      "cpu": {
        "load_average": 0.5
      },
      "memory": {
        "used_mb": 1024
      },
      "disk": {
        "used_gb": 12
      }
    }
  }
}
GET
/vms/{vm_id}/snapshots

Snapshot Listesi

VM'in snapshot listesi.

{
  "success": true,
  "data": {
    "snapshots": [
      {
        "id": 42,
        "name": "Yedek",
        "status": "completed"
      }
    ]
  }
}
POST
/vms/{vm_id}/snapshots

Snapshot Oluştur

VM için snapshot oluşturur.

{
  "name": "Yedek-20250124"
}
DELETE
/vms/{vm_id}/snapshots/{snapshot_id}

Snapshot Sil

Snapshot'u siler.

{
  "success": true,
  "message": "Snapshot deleted successfully"
}
POST
/vms/{vm_id}/snapshots/{snapshot_id}/restore

Snapshot Geri Yükle

Snapshot'tan geri yükler.

{
  "success": true,
  "message": "Snapshot restore started"
}

IP Adresleri

IP adresi yönetimi

GET
/servers/{server_id}/ips

IP 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"
  }
}
POST
/servers/{server_id}/ips/purchase

Ek IP Satın Al

Sunucuya ek IP adresi ekler.

{
  "ip_type": "IPv4"
}
GET
/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"
  }
}
POST
/servers/{server_id}/ips/{ip_address}

rDNS Güncelle

IP adresinin reverse DNS kaydını günceller.

{
  "rdns": "server.example.com"
}
DELETE
/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

GET
/servers/{server_id}/snapshots

Snapshot Listele

Sunucunun snapshot'larını listeler.

{
  "success": true,
  "data": [
    {
      "id": "snapshot-123",
      "name": "backup-2025-12-16",
      "created_at": "2025-12-16T10:00:00Z"
    }
  ]
}
POST
/servers/{server_id}/snapshots

Snapshot Oluştur

Sunucunun anlık görüntüsünü oluşturur.

{
  "name": "backup-2025-12-16"
}
POST
/servers/{server_id}/snapshots/{snapshot_id}/restore

Snapshot'tan Geri Yükle

Sunucuyu snapshot'tan geri yükler.

{
  "success": true,
  "message": "Snapshot restored successfully"
}
DELETE
/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

GET
/departments

Departmanları 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"
    }
  ]
}
GET
/tickets

Talepleri Listele

Destek taleplerini listeler.

Parametreler

statusstring
Opsiyonel
Durum filtresi
{
  "success": true,
  "data": [
    {
      "id": "T000001",
      "subject": "Server issue",
      "status": "open",
      "department": "Technical Support"
    }
  ]
}
POST
/tickets

Talep Oluştur

Yeni destek talebi oluşturur.

{
  "subject": "Sunucu erişim sorunu",
  "message": "Sunucuma SSH ile bağlanamıyorum.",
  "department_id": 1,
  "priority": "high"
}
GET
/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"
      }
    ]
  }
}
POST
/tickets/{ticket_id}/reply

Yanıt Ekle

Destek talebine yanıt ekler.

{
  "message": "Problem solved, thank you!"
}
POST
/tickets/{ticket_id}/close

Talebi Kapat

Destek talebini kapatır.

{
  "success": true,
  "message": "Ticket closed successfully"
}

Alt Kullanıcılar

Alt kullanıcı yönetimi

GET
/sub-users

Alt 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"
    }
  ]
}
POST
/sub-users

Alt Kullanıcı Oluştur

Yeni alt kullanıcı oluşturur.

{
  "email": "jane@example.com",
  "first_name": "Jane",
  "last_name": "Doe",
  "password": "SecurePass123!"
}
GET
/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"
    ]
  }
}
PUT
/sub-users/{sub_user_id}

Alt Kullanıcı Güncelle

Alt kullanıcı bilgilerini günceller.

{
  "first_name": "John",
  "last_name": "Smith"
}
DELETE
/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

GET
/balance

Bakiye Bilgisi

Hesap bakiyesini getirir.

{
  "success": true,
  "data": {
    "balance": 1247.5,
    "total_deposits": 2000,
    "total_withdrawals": 752.5
  }
}
GET
/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

GET
/email-packages

E-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
    }
  ]
}
GET
/web-hosting-packages

Web 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
    }
  ]
}
GET
/colocation-packages

Colocation Paketleri

Colocation hizmet paketlerini listeler.

{
  "success": true,
  "data": [
    {
      "id": 1,
      "name": "Single Server",
      "type": "single_server",
      "monthly_price": 99.99
    }
  ]
}
GET
/dedicated-server-packages

Fiziksel 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
    }
  ]
}
GET
/ip-subnet-packages

IP Subnet Paketleri

IP subnet paketlerini listeler.

{
  "success": true,
  "data": [
    {
      "id": 1,
      "name": "/29 Subnet",
      "subnet_size": "/29",
      "monthly_price": 49.99
    }
  ]
}