REST API · v1

API referansı

Avenlith API’si REST prensiplerine göre tasarlanmıştır. JSON istek gövdelerini kabul eder, JSON yanıt döner; standart HTTP durum kodları ve bearer token kimlik doğrulaması kullanır.

Temel URLhttps://api.avenlith.com/v1

Sunucular

Sunucuları listele

GET/servers

Anahtarın ait olduğu projedeki tüm sunucuları en yeniden eskiye döner.

Parametreler

  • regionstringqueryisteğe bağlı

    Bölge koduna göre filtrele, örn. `ist1`.

  • labelstringqueryisteğe bağlı

    Etikete göre filtrele, örn. `role=web`.

  • per_pageintegerqueryisteğe bağlı

    Sayfa başına öğe, 1–200. Varsayılan 50.

  • cursorstringqueryisteğe bağlı

    Önceki sayfanın `meta.next_cursor` değeri.

İstek

Shell
curl -X GET https://api.avenlith.com/v1/servers \
  -H "Authorization: Bearer $AVENLITH_TOKEN"

Yanıt

JSON
{
  "data": [{
      "id": "srv_8f2k1",
      "name": "web-01",
      "status": "running",
      "plan": "vps-pro",
      "region": "ist1",
      "image": "ubuntu-26.04",
      "ipv4": "203.0.113.24",
      "ipv6": "2a0f:9400:7a00::1",
      "shield": "standard",
      "labels": { "role": "web" },
      "created_at": "2026-09-18T09:12:44Z"
    }],
  "meta": { "per_page": 50, "next_cursor": null }
}

Sunucu oluştur

POST/servers

Bir bulut sunucu oluşturur. Yanıt provisioning durumuyla hemen döner; sunucu genellikle 40 saniye içinde running olur.

Parametreler

  • namestringbodyzorunlu

    Sunucu adı, 1–63 karakter.

  • planstringbodyzorunlu

    Plan kodu, örn. `vps-pro`.

  • regionstringbodyzorunlu

    Bölge kodu.

  • imagestringbodyzorunlu

    İmaj kodu veya anlık görüntü kimliği.

  • ssh_keysstring[]bodyisteğe bağlı

    Yüklenecek SSH anahtarlarının kimlikleri.

  • shieldstringbodyisteğe bağlı

    `standard` (varsayılan), `advanced` veya `enterprise`.

  • labelsobjectbodyisteğe bağlı

    Filtreleme ve güvenlik duvarları için anahtar/değer etiketleri.

İstek

Shell
curl -X POST https://api.avenlith.com/v1/servers \
  -H "Authorization: Bearer $AVENLITH_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "name": "web-01", "plan": "vps-pro", "region": "ist1", "image": "ubuntu-26.04", "ssh_keys": ["key_31xa"], "shield": "advanced", "labels": { "role": "web" } }'

Yanıt

JSON
{
  "id": "srv_8f2k1",
  "name": "web-01",
  "status": "provisioning",
  "plan": "vps-pro",
  "region": "ist1",
  "image": "ubuntu-26.04",
  "ipv4": "203.0.113.24",
  "ipv6": "2a0f:9400:7a00::1",
  "shield": "standard",
  "labels": { "role": "web" },
  "created_at": "2026-09-18T09:12:44Z"
}

Sunucu bilgisi al

GET/servers/{id}

Tek bir sunucunun bilgilerini döner.

Parametreler

  • idstringpathzorunlu

    Sunucu kimliği, örn. `srv_8f2k1`.

İstek

Shell
curl -X GET https://api.avenlith.com/v1/servers/{id} \
  -H "Authorization: Bearer $AVENLITH_TOKEN"

Yanıt

JSON
{
  "id": "srv_8f2k1",
  "name": "web-01",
  "status": "running",
  "plan": "vps-pro",
  "region": "ist1",
  "image": "ubuntu-26.04",
  "ipv4": "203.0.113.24",
  "ipv6": "2a0f:9400:7a00::1",
  "shield": "standard",
  "labels": { "role": "web" },
  "created_at": "2026-09-18T09:12:44Z"
}

Sunucuyu yeniden başlat

POST/servers/{id}/actions/reboot

ACPI yeniden başlatma gönderir. Yanıt vermeyen sunucuyu kapatıp açmak için "hard": true kullanın.

Parametreler

  • idstringpathzorunlu

    Sunucu kimliği, örn. `srv_8f2k1`.

  • hardbooleanbodyisteğe bağlı

    Normal yeniden başlatma yerine kapat-aç.

İstek

Shell
curl -X POST https://api.avenlith.com/v1/servers/{id}/actions/reboot \
  -H "Authorization: Bearer $AVENLITH_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "hard": false }'

Yanıt

JSON
{ "action_id": "act_2Lw9", "status": "in_progress" }

Sunucuyu sil

DELETE/servers/{id}

Sunucuyu ve disklerini kalıcı olarak siler. Anlık görüntüler ve yedekler korunur.

Parametreler

  • idstringpathzorunlu

    Sunucu kimliği, örn. `srv_8f2k1`.

İstek

Shell
curl -X DELETE https://api.avenlith.com/v1/servers/{id} \
  -H "Authorization: Bearer $AVENLITH_TOKEN"

Yanıt

JSON
{ "deleted": true }

Özel ağları listele

GET/networks

Özel ağları ve bağlı sunucuları döner.

Parametreler

  • per_pageintegerqueryisteğe bağlı

    Sayfa başına öğe, 1–200. Varsayılan 50.

  • cursorstringqueryisteğe bağlı

    Önceki sayfanın `meta.next_cursor` değeri.

İstek

Shell
curl -X GET https://api.avenlith.com/v1/networks \
  -H "Authorization: Bearer $AVENLITH_TOKEN"

Yanıt

JSON
{
  "data": [
    { "id": "net_5d1q", "name": "app-net", "region": "ist1", "cidr": "10.20.0.0/24", "servers": ["srv_8f2k1", "srv_9a7c3"] }
  ],
  "meta": { "per_page": 50, "next_cursor": null }
}

Floating IP ata

POST/floating-ips/{ip}/assign

Floating IP’yi aynı bölgedeki başka bir sunucuya taşır. Trafik bir saniyeden kısa sürede geçer.

Parametreler

  • ipstringpathzorunlu

    Floating IP adresi.

  • server_idstringbodyzorunlu

    Hedef sunucu kimliği.

İstek

Shell
curl -X POST https://api.avenlith.com/v1/floating-ips/{ip}/assign \
  -H "Authorization: Bearer $AVENLITH_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "server_id": "srv_9a7c3" }'

Yanıt

JSON
{ "ip": "203.0.113.50", "server_id": "srv_9a7c3", "region": "ist1" }

Shield

Saldırıları listele

GET/shield/attacks

Projeye yönelik engellenen saldırıları vektörleri ve en yüksek değerleriyle döner.

Parametreler

  • sincestringqueryisteğe bağlı

    ISO 8601 tarih veya `7d` gibi göreli değer.

  • targetstringqueryisteğe bağlı

    Saldırıya uğrayan IP’ye göre filtrele.

  • per_pageintegerqueryisteğe bağlı

    Sayfa başına öğe, 1–200. Varsayılan 50.

İstek

Shell
curl -X GET https://api.avenlith.com/v1/shield/attacks \
  -H "Authorization: Bearer $AVENLITH_TOKEN"

Yanıt

JSON
{
  "data": [
    {
      "id": "atk_9Qx2",
      "target": "203.0.113.24",
      "vectors": ["udp_amplification", "syn_flood"],
      "peak_bps": 412000000000,
      "peak_pps": 38200000,
      "started_at": "2026-09-18T21:04:11Z",
      "ended_at": "2026-09-18T21:31:40Z"
    }
  ],
  "meta": { "per_page": 50, "next_cursor": null }
}

Filtreleme kuralı oluştur

POST/shield/rules

Bir IP adresinin port aralığına filtreleme profili uygular.

Parametreler

  • targetstringbodyzorunlu

    Korunan IP adresi.

  • protocolstringbodyzorunlu

    `tcp` veya `udp`.

  • portsstringbodyzorunlu

    Tek port veya aralık, örn. `27015-27030`.

  • profilestringbodyzorunlu

    Profil kodu, bkz. Filtreleme profilleri.

İstek

Shell
curl -X POST https://api.avenlith.com/v1/shield/rules \
  -H "Authorization: Bearer $AVENLITH_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "target": "203.0.113.24", "protocol": "udp", "ports": "27015-27030", "profile": "game-source" }'

Yanıt

JSON
{ "id": "rule_7Fk2", "target": "203.0.113.24", "protocol": "udp", "ports": "27015-27030", "profile": "game-source", "active": true }

Hesap & faturalandırma

SSH anahtarlarını listele

GET/ssh-keys

Yeni sunuculara eklenebilecek SSH anahtarlarını döner.

İstek

Shell
curl -X GET https://api.avenlith.com/v1/ssh-keys \
  -H "Authorization: Bearer $AVENLITH_TOKEN"

Yanıt

JSON
{
  "data": [
    { "id": "key_31xa", "name": "laptop", "fingerprint": "SHA256:Qm4b…9Zs", "created_at": "2026-05-02T08:00:00Z" }
  ]
}

SSH anahtarı ekle

POST/ssh-keys

Genel anahtar yükler. Ed25519 ve RSA (3072 bit ve üzeri) kabul edilir.

Parametreler

  • namestringbodyzorunlu

    Görünen ad.

  • public_keystringbodyzorunlu

    OpenSSH biçiminde genel anahtar.

İstek

Shell
curl -X POST https://api.avenlith.com/v1/ssh-keys \
  -H "Authorization: Bearer $AVENLITH_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "name": "laptop", "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI… you@company.com" }'

Yanıt

JSON
{ "id": "key_31xa", "name": "laptop", "fingerprint": "SHA256:Qm4b…9Zs" }

Faturaları listele

GET/invoices

Faturaları toplam tutar ve PDF bağlantısıyla döner.

Parametreler

  • statusstringqueryisteğe bağlı

    `open`, `paid` veya `overdue`.

  • per_pageintegerqueryisteğe bağlı

    Sayfa başına öğe, 1–200. Varsayılan 50.

  • cursorstringqueryisteğe bağlı

    Önceki sayfanın `meta.next_cursor` değeri.

İstek

Shell
curl -X GET https://api.avenlith.com/v1/invoices \
  -H "Authorization: Bearer $AVENLITH_TOKEN"

Yanıt

JSON
{
  "data": [
    { "id": "inv_2026_0913", "status": "paid", "currency": "EUR", "total": 812.40, "issued_at": "2026-09-01", "pdf_url": "https://console.avenlith.com/invoices/inv_2026_0913.pdf" }
  ],
  "meta": { "per_page": 50, "next_cursor": null }
}