v2.3.23OpenAPI 3.0.3

Fornex Public API

Authentifizierung

Für den Zugriff auf die API ist ein API-Schlüssel erforderlich. Übergeben Sie ihn im HTTP-Header jeder Anfrage.

Authorization: Api-Key <key>

API-Schlüssel im Kundenbereich erstellen

Account

#

Kontostand

Gibt das aktuelle Kontoguthaben zurück

get/account/balance

Antworten

  • 200application/json
    balancenumber (double)Erforderlich
    currencystringErforderlich
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/account/balance"
Antwort200
{
  "balance": 10,
  "currency": "EUR"
}
#

Info

get/account/info

Antworten

  • 200application/json
    emailstring (email)max length: 254
    namestringErforderlich
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/account/info"
Antwort200
{
  "email": "example@fornex.com",
  "name": "Example Account"
}
#

Rechnungen

Gibt die Anzahl und den Gesamtbetrag unbezahlter Rechnungen zurück.

get/account/invoices

Antworten

  • 200application/json
    unpaid_invoices_countintegerErforderlich
    unpaid_invoices_amountnumber (double)Erforderlich
    currencystringErforderlich
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/account/invoices"
Antwort200
{
  "unpaid_invoices_count": 1,
  "unpaid_invoices_amount": 100,
  "currency": "EUR"
}

Plans

#

Backups

get/plans/backups

Antworten

  • 200application/json
    array object[]BackupTariff[]
    spaceintegerErforderlich
    pricenumber (double)Erforderlich
    unitsstringread-onlyErforderlichdefault: GB
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/plans/backups"
Antwort200
[
  {
    "price": 3,
    "space": 100,
    "units": "GB"
  }
]
#

Dedizierte Server

get/plans/dedicated

Antworten

  • 200application/json
    array object[]DedicatedTariff[]
    idintegerread-onlyErforderlich
    namestringmax length: 128Erforderlich

    Der Tarifname erscheint auf Rechnungen, daher sollte er kurz und in lateinischen Zeichen geschrieben sein — z. B. Cloud NVMe 1.

    cpu_modelstringread-onlyErforderlich
    cpu_countintegermin: 0max: 65535
    ramstringErforderlich
    diskstringErforderlich
    bandwidthstringErforderlich
    pricenumber (double)Erforderlich
    locationsarray array[]Erforderlich
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/plans/dedicated"
Antwort200
[
  {
    "id": 101,
    "name": "DS XeonSAS",
    "price": 198,
    "bandwidth": "1 Gbit/s",
    "cpu_model": "Intel Xeon E3-1270 (4×3.4Ghz)",
    "cpu_count": 1,
    "disk": "4 × 300 GB SAS 15k",
    "ram": "16 GB",
    "locations": [
      [
        "DE",
        "Германия"
      ]
    ]
  }
]
#

Webhosting

get/plans/hosting

Antworten

  • 200application/json
    array object[]VHTariff[]
    idintegerread-onlyErforderlich
    namestringmax length: 128Erforderlich

    Der Tarifname erscheint auf Rechnungen, daher sollte er kurz und in lateinischen Zeichen geschrieben sein — z. B. Cloud NVMe 1.

    sitesintegermin: 0max: 65535nullable
    pricenumber (double)Erforderlich
    cpu_coresintegermin: 0max: 65535nullable
    hdd_spaceinteger (int64)min: 0max: 4294967295nullable

    GB

    available_locationsarray string[]read-onlyErforderlich
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/plans/hosting"
Antwort200
[
  {
    "id": 33,
    "name": "VH-SSD-2",
    "price": 1,
    "sites": 2,
    "cpu_cores": 1,
    "hdd_space": 1,
    "available_locations": [
      "DE",
      "RU"
    ]
  }
]
#

VPN

get/plans/vpn

Antworten

  • 200application/json
    array object[]VpnTariff[]
    idintegerread-onlyErforderlich
    pricenumber (double)Erforderlich
    Werte
    • shared
    • dedicated
    • multi-hop
    available_locationsarray string[]read-onlyErforderlich
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/plans/vpn"
Antwort200
[
  {
    "id": 1,
    "type": "dedicated",
    "price": 10,
    "available_locations": [
      "DE",
      "NL",
      "US",
      "RU"
    ]
  }
]
#

VPS

get/plans/vps

Antworten

  • 200application/json
    array object[]VpsTariff[]
    idintegerread-onlyErforderlich
    namestringmax length: 128Erforderlich

    Der Tarifname erscheint auf Rechnungen, daher sollte er kurz und in lateinischen Zeichen geschrieben sein — z. B. Cloud NVMe 1.

    cpu_countintegerErforderlich
    ramstringErforderlich
    diskstringErforderlich
    bandwidthstringErforderlich
    pricenumber (double)Erforderlich
    disk_classVpsDiskClassErforderlich
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/plans/vps"
Antwort200
[
  {
    "id": 433,
    "name": "SSD Cloud 1GB",
    "cpu_count": 1,
    "ram": "1 GB",
    "bandwidth": "100 Mbit/s",
    "disk": "10 GB",
    "price": 5,
    "disk_class": null
  }
]

Projects

#

Projektliste

get/project/

Query-Parameter

  • pageinteger

    Eine Seitennummer innerhalb des paginierten Ergebnissatzes.

    default: 1
  • page_sizeinteger

    Anzahl der Ergebnisse pro Seite.

    default: 10

Antworten

  • 200application/json
    countintegerErforderlichexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]Project[]Erforderlich
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/project/"
Antwort200
{
  "type": "object",
  "required": [
    "count",
    "results"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "example": 123
    },
    "next": {
      "type": "string",
      "nullable": true,
      "format": "uri",
      "example": "http://api.example.org/accounts/?page=4"
    },
    "previous": {
      "type": "string",
      "nullable": true,
      "format": "uri",
      "example": "http://api.example.org/accounts/?page=2"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 40
          },
          "comment": {
            "type": "string",
            "maxLength": 256
          },
          "logo": {
            "type": "string",
            "format": "uri",
            "readOnly": true
          }
        },
        "required": [
          "id",
          "logo",
          "name"
        ]
      }
    }
  }
}
#

Projekt erstellen

post/project/

Body

Erforderlich
namestringlength 1…40Erforderlich
commentstringmax length: 256

Antworten

  • 201application/json
    idintegerread-onlyErforderlich
    namestringmax length: 40Erforderlich
    commentstringmax length: 256
    logostring (uri)read-onlyErforderlich
Fornex API Key
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"name":"string","comment":"string"}' \
  "https://fornex.com/api/project/"
Antwort201
{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "readOnly": true
    },
    "name": {
      "type": "string",
      "maxLength": 40
    },
    "comment": {
      "type": "string",
      "maxLength": 256
    },
    "logo": {
      "type": "string",
      "format": "uri",
      "readOnly": true
    }
  },
  "required": [
    "id",
    "logo",
    "name"
  ]
}
#

Projektdetails

get/project/{id}/

Pfad-Parameter

  • idintegerErforderlich

    Ein eindeutiger Ganzzahl-Wert, das diesen project identifiziert.

Antworten

  • 200application/json
    idintegerread-onlyErforderlich
    namestringmax length: 40Erforderlich
    commentstringmax length: 256
    logostring (uri)read-onlyErforderlich
Fornex API Key
ID='1'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/project/$ID/"
Antwort200
{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "readOnly": true
    },
    "name": {
      "type": "string",
      "maxLength": 40
    },
    "comment": {
      "type": "string",
      "maxLength": 256
    },
    "logo": {
      "type": "string",
      "format": "uri",
      "readOnly": true
    }
  },
  "required": [
    "id",
    "logo",
    "name"
  ]
}
#

Projekt bearbeiten

patch/project/{id}/

Pfad-Parameter

  • idintegerErforderlich

    Ein eindeutiger Ganzzahl-Wert, das diesen project identifiziert.

Body

namestringlength 1…40
commentstringmax length: 256

Antworten

  • 200application/json
    idintegerread-onlyErforderlich
    namestringmax length: 40Erforderlich
    commentstringmax length: 256
    logostring (uri)read-onlyErforderlich
Fornex API Key
ID='1'

curl -X PATCH \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"name":"string","comment":"string"}' \
  "https://fornex.com/api/project/$ID/"
Antwort200
{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "readOnly": true
    },
    "name": {
      "type": "string",
      "maxLength": 40
    },
    "comment": {
      "type": "string",
      "maxLength": 256
    },
    "logo": {
      "type": "string",
      "format": "uri",
      "readOnly": true
    }
  },
  "required": [
    "id",
    "logo",
    "name"
  ]
}
#

Projekt entfernen

delete/project/{id}/

Pfad-Parameter

  • idintegerErforderlich

    Ein eindeutiger Ganzzahl-Wert, das diesen project identifiziert.

Antworten

  • 204

    No response body

Fornex API Key
ID='1'

curl -X DELETE \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/project/$ID/"
#

Bestellung hinzufügen

Anfrage zum Hinzufügen einer Bestellung aus dem Projekt.

post/project/{id}/add_orders/

Pfad-Parameter

  • idintegerErforderlich

    Ein eindeutiger Ganzzahl-Wert, das diesen project identifiziert.

Body

Erforderlich
ordersarray string[]write-onlyErforderlich

Antworten

  • 200

    No response body

Fornex API Key
ID='1'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"orders":["string"]}' \
  "https://fornex.com/api/project/$ID/add_orders/"
#

Logo bearbeiten

Anfrage zum Bearbeiten des Projektlogos.

put/project/{id}/edit_logo/

Pfad-Parameter

  • idintegerErforderlich

    Ein eindeutiger Ganzzahl-Wert, das diesen project identifiziert.

Body

multipart/form-data
logostring (binary)

Pfad zur Datei.

Antworten

  • 200application/json
    logostring (uri)

    Pfad zur Datei.

Fornex API Key
ID='1'

curl -X PUT \
  -H "Content-Type: multipart/form-data" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  -F "logo=@\"path/to/file\"" \
  "https://fornex.com/api/project/$ID/edit_logo/"
Antwort200
{
  "type": "object",
  "properties": {
    "logo": {
      "type": "string",
      "format": "uri",
      "description": "Pfad zur Datei."
    }
  }
}
#

Bestellung entfernen

Anfrage zum Entfernen einer Bestellung aus dem Projekt.

post/project/{id}/remove_orders/

Pfad-Parameter

  • idintegerErforderlich

    Ein eindeutiger Ganzzahl-Wert, das diesen project identifiziert.

Body

Erforderlich
ordersarray string[]write-onlyErforderlich

Antworten

  • 200

    No response body

Fornex API Key
ID='1'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"orders":["string"]}' \
  "https://fornex.com/api/project/$ID/remove_orders/"

Orders

Eine Bestellung ist eine interne Entität unseres Systems, die zusammen mit einem Dienst erstellt wird und eine Liste seiner Eigenschaften enthält (z. B. Kosten, Standort usw.). Beispielsweise ist ein VPS der Dienst selbst (virtuelle Maschine), und eine VPS-Bestellung ist eine Liste der zugehörigen Eigenschaften. Um daher eine Bestellung zu erstellen, stellen Sie eine Anfrage zur Diensterstellung im entsprechenden API-Abschnitt, z. B. VPS erstellen. Und für die weitere Arbeit mit einer beliebigen Bestellung verwenden Sie Methoden aus diesem Abschnitt.

Nachfolgend finden Sie die API-Anfragen, mit denen Sie Bestellungen beliebiger Art verwalten können, um insbesondere die Bestelldetails abzurufen, diese zu bearbeiten oder zu stornieren.

#

Bestellungsliste

Liste alle verfügbaren Bestellungen auf. Informationen zu den Parametern jeder Bestellung werden auch in der Antwort enthalten.

get/orders/

Query-Parameter

  • cancel_markboolean

    Filtern Sie die Bestellungen, die storniert werden.

  • orderingstring

    Feld, nach dem die Ergebnisse sortiert werden.

    default: id
    expiredid
  • pageinteger

    Eine Seitennummer innerhalb des paginierten Ergebnissatzes.

    default: 1
  • page_sizeinteger

    Anzahl der Ergebnisse pro Seite.

    default: 10

Antworten

  • 200application/json
    countintegerErforderlichexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]Order[]Erforderlich
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/"
Antwort200
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "results": [
    {
      "id": "34-1234",
      "name": "DB Host",
      "tariff": "VPS Master",
      "tariff_price": 140,
      "type": "vps",
      "hostname": "srv-123.fornex.org",
      "ipaddress_set": [
        "123.123.123.123"
      ],
      "status": "active",
      "cost_month": 148,
      "expiration_date": "2015-12-18T17:21:46",
      "tags": [
        "Database"
      ]
    }
  ]
}
#

Bestellungsdetails

Rufen Sie alle verfügbaren Daten zur Bestellung nach ihrer ID ab.

get/orders/{order_id}/

Pfad-Parameter

  • order_idstringErforderlich

    Bestellungs-ID im Format NN-NNNNN. Das Präfix kann je nach Bestellungstyp variieren.

Antworten

  • 200application/json
    idstringread-onlyErforderlich
    namestringmax length: 64
    tariffstringread-onlyErforderlich
    tariff_pricenumber (double)nullableread-onlyErforderlich
    typestringread-onlyErforderlich
    hostnamestringnullableread-onlyErforderlich
    ipaddress_setarray string[]nullableread-onlyErforderlich
    statusstringread-onlyErforderlich
    Werte
    • unpaid
    • pending
    • active
    • expired
    • disabled
    • canceled
    • blocked
    • noprolong
    cost_monthnumber (double)read-onlyErforderlich
    expiration_datestring (date-time)read-onlyErforderlich
    tagsarray string[]Erforderlich
    cancel_markbooleanread-onlyErforderlich

    Ein Marker, der anzeigt, dass die Bestellung storniert wird.

    projectobjectnullableread-onlyErforderlich
Fornex API Key
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/$ORDER_ID/"
Antwort200
{
  "id": "34-1234",
  "name": "DB Host",
  "tariff": "VPS Master",
  "tariff_price": 140,
  "type": "vps",
  "hostname": "srv-123.fornex.org",
  "ipaddress_set": [
    "123.123.123.123"
  ],
  "status": "active",
  "cost_month": 148,
  "expiration_date": "2015-12-18T17:21:46",
  "tags": [
    "Database"
  ]
}
#

Bestellung bearbeiten

Ändern Sie einige Parameter einer bestimmten Bestellung (Suche nach ID), die zur Bearbeitung verfügbar sind.

patch/orders/{order_id}/

Pfad-Parameter

  • order_idstringErforderlich

    Bestellungs-ID im Format NN-NNNNN. Das Präfix kann je nach Bestellungstyp variieren.

Body

namestringlength 1…64default:

Benutzerdefinierter Name für die Bestellung. Geben Sie einen leeren String ein, wenn Sie den Namen entfernen möchten.

tagsarray string[]

Tags für die Bestellung. Neue Tags ersetzen alte Tags vollständig, falls vorhanden. Legen Sie eine leere Liste fest, wenn Sie alle Tags entfernen möchten.

projectintegernullable

Projekt der Bestellung. Geben Sie einen leeren String ein, wenn Sie das Projekt entfernen möchten.

Antworten

  • 200application/json
    namestringmax length: 64default:

    Benutzerdefinierter Name für die Bestellung.

    tagsarray string[]Erforderlich

    Tags für die Bestellung.

    projectintegernullableErforderlich

    Projekt der Bestellung.

Fornex API Key
ORDER_ID='34-1234'

curl -X PATCH \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"name": "DB Host"}' \
  "https://fornex.com/api/orders/$ORDER_ID/"
Antwort200
{
  "name": "DB Host",
  "tags": [
    "Database"
  ],
  "project": 1
}
#

Bestellung stornieren

Stornieren Sie eine Bestellung und löschen Sie den zugehörigen Dienst. Je nach Parameter when sind zwei Optionen möglich:

  • expired - die Bestellung wird mit einem Stornierungszeichen versehen und nach Ablauf der bezahlten Frist storniert. Mit anderen Worten, es blockiert die automatische Erneuerung. Dies ist der Standard-Ansatz. Sie können die Markierung entfernen, wenn Sie sich anders entscheiden.
  • now - die Stornierungsanfrage wird sofort zur Bearbeitung weitergeleitet und die Bestellung wird so schnell wie möglich storniert. Eine sofortige Stornierung von Bestellungen wird noch nicht unterstützt.

Wenn die Bestellung noch nicht bezahlt wurde, wird sie sofort storniert, unabhängig vom ausgewählten Parameter when.

post/orders/{order_id}/cancel/

Pfad-Parameter

  • order_idstringErforderlich

    Bestellungs-ID im Format NN-NNNNN. Das Präfix kann je nach Bestellungstyp variieren.

Body

whenstringwrite-onlydefault: expired
Werte
  • now
  • expired

Der Parameter beschreibt, wann die Bestellung storniert werden soll - jetzt oder nach Ablauf der bezahlten Periode.

save_backupbooleanwrite-onlydefault: true

Der Parameter beschreibt, ob vor dem Löschen der virtuellen Maschine ein Snapshot des VPS erstellt werden soll oder nicht.

Antworten

  • 200application/json
    statusstringread-onlyErforderlich
    Werte
    • canceled
    • cancel_pending
    messagestringread-onlyErforderlich
Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"when": "expired", "save_backup": true}' \
  "https://fornex.com/api/orders/$ORDER_ID/cancel/"
Antwort200
{
  "status": "cancel_pending",
  "message": "Order will be canceled after expiration."
}
#

Stornierungszeichen entfernen

Entfernen Sie das Stornierungszeichen für eine bestimmte Bestellung (Suche nach ID). Das Zeichen wird auch automatisch entfernt, wenn Sie die Bestellung erzwungen erneuern.

delete/orders/{order_id}/cancel/

Pfad-Parameter

  • order_idstringErforderlich

    Bestellungs-ID im Format NN-NNNNN. Das Präfix kann je nach Bestellungstyp variieren.

Antworten

  • 204

    No response body

Fornex API Key
ORDER_ID='34-1234'

curl -X DELETE \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/$ORDER_ID/cancel/"

VPS: Orders

VPS ist ein Virtual Private Server, auch als Virtual Dedicated Server bekannt. Dieser Abschnitt behandelt die wichtigsten und zusätzlichen API-Endpunkte, die für die Arbeit mit VPS bei Fornex verwendet werden.

#

Liste der VPS-Bestellungen

Liste alle verfügbaren VPS-Bestellungen auf. Informationen zu den Parametern jeder Bestellung werden auch in der Antwort enthalten.

get/orders/vps/

Query-Parameter

  • cancel_markboolean

    Filtern Sie die Bestellungen, die storniert werden.

  • orderingstring

    Feld, nach dem die Ergebnisse sortiert werden.

    default: id
    expiredid
  • pageinteger

    Eine Seitennummer innerhalb des paginierten Ergebnissatzes.

    default: 1
  • page_sizeinteger

    Anzahl der Ergebnisse pro Seite.

    default: 10

Antworten

  • 200application/json
    countintegerErforderlichexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]VPSOrder[]Erforderlich
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/vps/"
Antwort200
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "results": [
    {
      "id": "34-1234",
      "name": "DB Host",
      "tariff": "VPS Master",
      "tariff_price": 140,
      "type": "vps",
      "hostname": "srv-123.fornex.org",
      "ipaddress_set": [
        "123.123.123.123"
      ],
      "status": "active",
      "cost_month": 148,
      "expiration_date": "2015-12-18T17:21:46",
      "tags": [
        "Database"
      ],
      "configuration": {
        "cpu_count": 1,
        "ram_size": 2,
        "disk_size": 10,
        "cpu_arch": "x86_64",
        "min_cpu_freq": 3
      }
    }
  ]
}
#

Details der VPS-Bestellung

Rufen Sie alle verfügbaren Daten zur VPS-Bestellung nach ihrer ID ab.

get/orders/vps/{order_id}/

Pfad-Parameter

  • order_idstringErforderlich

    Bestellungs-ID im Format NN-NNNNN.

Antworten

  • 200application/json
    idstringread-onlyErforderlich
    namestringmax length: 64
    tariffstringread-onlyErforderlich
    tariff_pricenumber (double)nullableread-onlyErforderlich
    typestringread-onlyErforderlich
    hostnamestringnullableread-onlyErforderlich
    ipaddress_setarray string[]nullableread-onlyErforderlich
    statusstringread-onlyErforderlich
    Werte
    • unpaid
    • pending
    • active
    • expired
    • disabled
    • canceled
    • blocked
    • noprolong
    cost_monthnumber (double)read-onlyErforderlich
    expiration_datestring (date-time)read-onlyErforderlich
    tagsarray string[]Erforderlich
    cancel_markbooleanread-onlyErforderlich

    Ein Marker, der anzeigt, dass die Bestellung storniert wird.

    projectobjectnullableread-onlyErforderlich
    configurationobjectread-onlyErforderlich

    Serverkonfiguration

Fornex API Key
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/vps/$ORDER_ID/"
Antwort200
{
  "id": "34-1234",
  "name": "DB Host",
  "tariff": "VPS Master",
  "tariff_price": 140,
  "type": "vps",
  "hostname": "srv-123.fornex.org",
  "ipaddress_set": [
    "123.123.123.123"
  ],
  "status": "active",
  "cost_month": 148,
  "expiration_date": "2015-12-18T17:21:46",
  "tags": [
    "Database"
  ],
  "configuration": {
    "cpu_count": 1,
    "ram_size": 2,
    "disk_size": 10,
    "cpu_arch": "x86_64",
    "min_cpu_freq": 3
  }
}

VPS: Create

VPS ist ein Virtual Private Server, auch als Virtual Dedicated Server bekannt. Dieser Abschnitt behandelt die wichtigsten und zusätzlichen API-Endpunkte, die zum Erstellen eines neuen VPS bei Fornex verwendet werden.

#

VPS erstellen

Diese Anfrage ist standardmäßig nicht verfügbar. Wenden Sie sich an den technischen Support, um Zugriff zu erhalten.

Zum aktuellen Zeitpunkt erfordert das Erstellen eines VPS über die API eine Zahlung aus dem Kontoguthaben. Wenn Sie nicht über ausreichende Mittel verfügen, gibt die Anfrage einen Fehler zurück und die Bestellung wird nicht erstellt.

Um einen VPS zu erstellen, sollten Sie drei erforderliche Parameter berücksichtigen - VPS-Konfiguration (Kerne, RAM, Speicher), vorinstallierte Software und Standort:

  • Konfiguration: Wählen Sie tariff (vordefinierter Plan) oder configuration (flexibler Parametersatz aus dem Konfigurator). Sie können verfügbare Konfigurationen auf der VPS-Seite ausprobieren.
  • Software: Wählen Sie template (um ein Betriebssystem und optional ein Hosting-Control-Panel zu installieren) oder app (um eine Anwendung zu installieren) oder snapshot (um einen VPS aus Ihrem Snapshot wiederherzustellen).
  • Land: Wählen Sie location aus den verfügbaren Optionen.

Um einen VPS über die API zu stornieren und zu löschen, verwenden Sie die universelle Bestellungsstornierungsmethode.

post/orders/vps/

Body

Erforderlich
tariffintegernullablewrite-only

Die ID des vordefinierten Tarifs. Die verfügbaren Optionen für tariff erhalten Sie unter VPS-Tarife.

Zum Erstellen einer benutzerdefinierten Konfiguration verwenden Sie den Parameter configuration. Verwenden Sie nicht beide Parameter gleichzeitig.

configurationobjectnullablewrite-only

Die benutzerdefinierten Konfigurationsparameter als Objekt (öffnen Sie den ausklappbaren Bereich für weitere Details). Verwenden Sie den VPS-Konfigurator, um eine angemessene Kombination von Parametern gemäß dynamischer Einschränkungen zu erhalten.

Anstelle einer benutzerdefinierten Konfiguration können Sie einen vordefinierten Tarif auswählen, der normalerweise günstiger ist. Verwenden Sie dazu den Parameter tariff. Verwenden Sie nicht beide Parameter gleichzeitig.

templateintegerwrite-only

Template-ID zum Installieren eines Betriebssystems und optional eines Hosting-Kontrollpanels. Die verfügbaren Optionen für template erhalten Sie unter VPS-Vorlagen.

Anstelle eines Betriebssystems können Sie eine Anwendung installieren (Parameter app) oder VPS aus einem Snapshot wiederherstellen (Parameter snapshot). Verwenden Sie dazu den entsprechenden Parameter. Verwenden Sie nur einen Parameter pro Bestellung.

appintegerwrite-only

Anwendungs-ID, die Sie installieren möchten. Die verfügbaren Optionen für app erhalten Sie unter VPS-Anwendungen.

Anstelle einer Anwendung können Sie ein Betriebssystem installieren (Parameter template) oder VPS aus einem Snapshot wiederherstellen (Parameter snapshot). Verwenden Sie dazu den entsprechenden Parameter. Verwenden Sie nur einen Parameter pro Bestellung.

snapshotintegerwrite-only

Snapshot-ID, aus der Sie VPS wiederherstellen möchten. Die verfügbaren Optionen für snapshot erhalten Sie unter VPS-Snapshots.

Sie können einen Snapshot aus einem beliebigen bereits erstellten VPS in Ihrem Dashboard auf der Seite der Bestellung erstellen und ihn zum Wiederherstellen (als Sicherung) oder zum Erstellen von Kopien der Bestellung (als Vorlage) verwenden.

Anstelle der Wiederherstellung aus einem Snapshot können Sie ein Betriebssystem installieren (Parameter template) oder eine Anwendung installieren (Parameter app). Verwenden Sie dazu den entsprechenden Parameter. Verwenden Sie nur einen Parameter pro Bestellung.

locationstringmin length: 1write-onlyErforderlich

Der Zweizeichenländercode des Bestellungsstandorts. Die verfügbaren Optionen für location erhalten Sie unter VPS-Standorte.

termintegerwrite-onlydefault: 1
Werte
  • 1
  • 3
  • 6
  • 12

Die Anzahl der Monate, für die die Bestellung nach der Erstellung erneuert wird (z. B. 3).

servicesarray object[]OrderServiceCreateRequest[]write-only

Zusatzleistungen und deren Menge als Liste (öffnen Sie den ausklappbaren Bereich für weitere Details). Die verfügbaren Optionen für services erhalten Sie unter VPS-Zusatzleistungen.

ssh_keysarray integer[]write-only

IDs der SSH-Schlüssel als Liste, die während der Installation zum Server hinzugefügt werden. Die verfügbaren Optionen für ssh_keys erhalten Sie unter SSH-Schlüssel. Übergeben Sie die Schlüsselliste explizit. Standardmäßig wird eine leere Liste übergeben, auch wenn in Ihrem Dashboard Schlüssel mit der Markierung "standardmäßig hinzufügen" vorhanden sind.

namestringlength 1…25write-onlydefault:

Benutzerdefinierter Name für den VPS. Standardmäßig ist für den Server kein Name festgelegt.

projectintegernullablewrite-only

Projekt-ID. Die verfügbaren Optionen für project können in der Projektliste abgerufen werden.

disk_classintegernullablewrite-only

Die ID der VPS-Festplattenklasse. Die verfügbaren Optionen für tariff erhalten Sie unter VPS-Laufwerke.

Bei Verwendung einer benutzerdefinierten Konfiguration verwenden Sie das Attribut im Parameter configuration. Verwenden Sie nicht beide Parameter gleichzeitig.

bandwidthintegernullablewrite-only

Bandbreitenlimit für die VPS-Bestellung. Der Preis pro Einheit ist im Wert bandwidth_tariff definiert

webhookobjectwrite-only

Webhook-Konfiguration als Objekt (öffnen Sie den ausklappbaren Bereich für weitere Details). Dies ist erforderlich, um eine POST-Anfrage mit Bestellungsdetails und Zugriffsanmeldeinformationen nach der Erstellung des VPS zu erhalten.

placement_policystringwrite-onlydefault: OPTIONAL
Werte
  • STRICT
  • OPTIONAL
placement_groupintegernullablewrite-only
private_networkintegernullablewrite-only
tagsarray string[]write-only

Tags für den VPS. Standardmäßig sind für den Server keine Tags festgelegt.

Antworten

Fornex API Key
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"tariff": 1, "template": 1, "location": "DE", "term": 3, "services": [{"service": 1, "count": 1}], "ssh_keys": [1, 3]}' \
  "https://fornex.com/api/orders/vps/"
Antwort201
{
  "order_id": "34-1"
}
#

VPS-Vorlagen

Liste alle verfügbaren Vorlagen zum Erstellen eines VPS auf. Informationen zu den erforderlichen VPS-Parametern werden auch für jede Vorlage enthalten.

get/orders/vps/templates/

Antworten

  • 200application/json
    array object[]Template[]
    idintegerread-onlyErforderlich

    ID der Vorlage.

    namestringmax length: 64Erforderlich

    Name der Vorlage.

    osstringread-onlyErforderlich
    panelnullable

    In der Vorlage verwendetes Admin-Panel, kann leer sein.

    Einer von
    archstring
    Werte
    • x86_64
    • arm

    CPU-Architekturtyp, der für diese Vorlage erforderlich ist.

    min_storage_spaceinteger (int64)min: 0max: 4294967295nullable

    Minimaler Speicherplatz, der für diese Vorlage erforderlich ist.

    min_ram_volumeintegermin: 0max: 65535nullable

    Minimales RAM-Volumen, das für diese Vorlage erforderlich ist.

    min_cpu_coresinteger (int64)min: 0max: 4294967295nullable

    Minimale Anzahl von CPU-Kernen, die für diese Vorlage erforderlich sind.

Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/vps/templates/"
Antwort200
[
  {
    "id": 49,
    "name": "Ubuntu 20.04 & Hestia",
    "os": "Ubuntu 20.04 LTS",
    "panel": "hestia",
    "min_storage_space": 5,
    "min_ram_volume": 2,
    "min_cpu_cores": 1,
    "arch": "x86-64"
  }
]
#

VPS-Anwendungen

Liste alle verfügbaren Kombinationen aus "Anwendung + Betriebssystem" auf, die bei der VPS-Erstellung installiert werden könnten.

get/orders/vps/apps/

Antworten

  • 200application/json
    array object[]AppTemplate[]
    idintegerread-onlyErforderlich

    ID der Anwendung.

    namestringmax length: 64Erforderlich

    Name der Anwendung.

    osstringread-onlyErforderlich
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/vps/apps/"
Antwort200
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "readOnly": true,
        "description": "ID der Anwendung."
      },
      "name": {
        "type": "string",
        "description": " Name der Anwendung.",
        "maxLength": 64
      },
      "os": {
        "type": "string",
        "readOnly": true
      }
    },
    "required": [
      "id",
      "name",
      "os"
    ]
  }
}
#

VPS-Snapshots

Liste alle Snapshots auf Ihrem Konto auf, die zum Erstellen eines VPS verwendet werden könnten.

get/orders/vps/snapshots/

Antworten

  • 200application/json
    array object[]Snapshot[]
    idintegerread-onlyErforderlich

    ID des Snapshots.

    namestringmax length: 64Erforderlich

    Name des Snapshots.

    size_gbnumber (double)read-onlyErforderlich

    Größe des Snapshots in GB.

    created_atstring (date-time)Erforderlich
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/vps/snapshots/"
Antwort200
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "readOnly": true,
        "description": "ID des Snapshots."
      },
      "name": {
        "type": "string",
        "description": " Name des Snapshots.",
        "maxLength": 64
      },
      "size_gb": {
        "type": "number",
        "format": "double",
        "readOnly": true,
        "description": "Größe des Snapshots in GB."
      },
      "created_at": {
        "type": "string",
        "format": "date-time"
      }
    },
    "required": [
      "created_at",
      "id",
      "name",
      "size_gb"
    ]
  }
}
#

VPS-Standorte

Alle Rechenzentren auflisten, in denen VPS-Dienste verfügbar sind.

get/orders/vps/locations/

Antworten

  • 200application/json
    array object[]VpsLocation[]
    valuestringErforderlich
    labelstringErforderlich
    location_os_typesarray string[]Erforderlich
    bandwidth_tariffobjectnullable
    disabled_by_slotsbooleandefault: true
    disabled_by_cpu_freqbooleandefault: true
    disabled_by_osbooleandefault: false
    disabled_by_cpu_typebooleandefault: false
    available_frequenciesobjectErforderlich
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/vps/locations/"
Antwort200
[
  {
    "value": "DE",
    "label": "Germany",
    "location_os_types": [
      "linux",
      "windows-trial"
    ],
    "available_frequencies": {
      "x86_64": [
        "2.1",
        "3.8"
      ],
      "arm": [
        "1"
      ]
    }
  }
]
#

VPS-Laufwerke

Alle für einen VPS verfügbaren Festplattenoptionen auflisten.

get/orders/vps/disks/

Antworten

  • 200application/json
    array object[]VpsDiskClass[]
    idintegerread-onlyErforderlich
    namestringmax length: 64Erforderlich
    limit_total_mbytes_secintegermin: 0max: 65535Erforderlich

    Мb/sec

    limit_read_iops_secintegermin: 0max: 65535Erforderlich

    Op/sec

    limit_write_iops_secintegermin: 0max: 65535Erforderlich

    Op/sec

    price_per_gbstring (decimal)^-?\d{0,2}(?:\.\d{0,4})?$Erforderlich

    Kosten pro 1 GB

    disk_typeDiskTypeEnum
    Werte
    • hdd
    • nvme
    • ssd
    • sas
    disk_type_displaystringErforderlich
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/vps/disks/"
Antwort200
[
  {
    "id": 1,
    "name": "Optimal",
    "limit_total_mbytes_sec": 250,
    "limit_read_iops_sec": 9000,
    "limit_write_iops_sec": 7000,
    "price_per_gb": "0.0300",
    "disk_type": "ssd",
    "disk_type_display": "SSD"
  }
]
#

VPS Zusatzleistungen

Alle für einen VPS verfügbaren Zusatzleistungen auflisten.

get/orders/vps/services/

Antworten

  • 200application/json
    array object[]Service[]
    idintegerread-onlyErforderlich

    ID der Dienstleistung.

    namestringmax length: 128Erforderlich

    Name der Dienstleistung.

    descriptionstringmax length: 255

    Beschreibung der Dienstleistung.

    pricestring (decimal)^-?\d{0,8}(?:\.\d{0,2})?$Erforderlich

    Preis der Dienstleistung.

    billing_typestringErforderlich
    Werte
    • single
    • periodic

    Einmalige oder monatliche Gebühr.

Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/vps/services/"
Antwort200
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "readOnly": true,
        "description": "ID der Dienstleistung."
      },
      "name": {
        "type": "string",
        "description": " Name der Dienstleistung.",
        "maxLength": 128
      },
      "description": {
        "type": "string",
        "title": "Beschreibung",
        "description": "Beschreibung der Dienstleistung.",
        "maxLength": 255
      },
      "price": {
        "type": "string",
        "format": "decimal",
        "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
        "description": "Preis der Dienstleistung."
      },
      "billing_type": {
        "allOf": [
          {
            "enum": [
              "single",
              "periodic"
            ],
            "type": "string"
          }
        ],
        "description": "Einmalige oder monatliche Gebühr."
      }
    },
    "required": [
      "billing_type",
      "id",
      "name",
      "price"
    ]
  }
}

VPS: Reinstall

Installieren Sie das Betriebssystem auf Ihrem VPS neu, während Sie die bestehende Bestellung und Konfiguration beibehalten. Dieser Abschnitt behandelt die API-Endpunkte zum Abrufen verfügbarer Installationsziele – z. B. saubere OS-Vorlagen, vorkonfigurierte Anwendungen oder vorhandene Snapshots – und zum Starten des Neuinstallationsprozesses.

#

VPS-Neuinstallationsvorlagen

Liste aller verfügbaren Vorlagen zur Neuinstallation des VPS. Informationen über die erforderlichen VPS-Parameter werden auch für jede Vorlage enthalten sein.

get/vps/{order_id}/reinstall/templates/

Pfad-Parameter

  • order_idstringErforderlich

    Bestellnummer (einschließlich Präfix 34-...)

Query-Parameter

  • pageinteger

    Eine Seitennummer innerhalb des paginierten Ergebnissatzes.

    default: 1
  • page_sizeinteger

    Anzahl der Ergebnisse pro Seite.

    default: 10

Antworten

  • 200application/json
    countintegerErforderlichexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]Template[]Erforderlich
Fornex API Key
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/reinstall/templates/"
Antwort200
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "results": [
    {
      "id": 49,
      "name": "Ubuntu 20.04 & Hestia",
      "os": "Ubuntu 20.04 LTS",
      "panel": "hestia",
      "min_storage_space": 5,
      "min_ram_volume": 2,
      "min_cpu_cores": 1,
      "arch": "x86-64"
    }
  ]
}
#

VPS-Neuinstallationsanwendungen

Liste aller verfügbaren Kombinationen von "Anwendung + Betriebssystem", die bei der Neuinstallation des VPS installiert werden können.

get/vps/{order_id}/reinstall/apps/

Pfad-Parameter

  • order_idstringErforderlich

    Bestellnummer (einschließlich Präfix 34-...)

Query-Parameter

  • pageinteger

    Eine Seitennummer innerhalb des paginierten Ergebnissatzes.

    default: 1
  • page_sizeinteger

    Anzahl der Ergebnisse pro Seite.

    default: 10

Antworten

  • 200application/json
    countintegerErforderlichexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]AppTemplate[]Erforderlich
Fornex API Key
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/reinstall/apps/"
Antwort200
{
  "type": "object",
  "required": [
    "count",
    "results"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "example": 123
    },
    "next": {
      "type": "string",
      "nullable": true,
      "format": "uri",
      "example": "http://api.example.org/accounts/?page=4"
    },
    "previous": {
      "type": "string",
      "nullable": true,
      "format": "uri",
      "example": "http://api.example.org/accounts/?page=2"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true,
            "description": "ID der Anwendung."
          },
          "name": {
            "type": "string",
            "description": " Name der Anwendung.",
            "maxLength": 64
          },
          "os": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "id",
          "name",
          "os"
        ]
      }
    }
  }
}
#

VPS-Neuinstallations-Snapshots

Liste aller auf Ihrem Konto verfügbaren Snapshots, die zur Neuinstallation des VPS verwendet werden können.

get/vps/{order_id}/reinstall/snapshots/

Pfad-Parameter

  • order_idstringErforderlich

    Bestellnummer (einschließlich Präfix 34-...)

Query-Parameter

  • pageinteger

    Eine Seitennummer innerhalb des paginierten Ergebnissatzes.

    default: 1
  • page_sizeinteger

    Anzahl der Ergebnisse pro Seite.

    default: 10

Antworten

  • 200application/json
    countintegerErforderlichexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]Snapshot[]Erforderlich
Fornex API Key
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/reinstall/snapshots/"
Antwort200
{
  "type": "object",
  "required": [
    "count",
    "results"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "example": 123
    },
    "next": {
      "type": "string",
      "nullable": true,
      "format": "uri",
      "example": "http://api.example.org/accounts/?page=4"
    },
    "previous": {
      "type": "string",
      "nullable": true,
      "format": "uri",
      "example": "http://api.example.org/accounts/?page=2"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true,
            "description": "ID des Snapshots."
          },
          "name": {
            "type": "string",
            "description": " Name des Snapshots.",
            "maxLength": 64
          },
          "size_gb": {
            "type": "number",
            "format": "double",
            "readOnly": true,
            "description": "Größe des Snapshots in GB."
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "created_at",
          "id",
          "name",
          "size_gb"
        ]
      }
    }
  }
}
#

VPS neu installieren

Startet den Neuinstallationsprozess für den VPS. Sie müssen entweder eine VPS-Vorlagen-ID oder eine Anwendungs-ID für eine Neuinstallation oder eine Snapshot-ID zum Wiederherstellen des Servers in einen vorherigen Zustand angeben.

Warnung: Dies ist eine destruktive Aktion. Alle aktuellen Daten auf dem Server werden dauerhaft gelöscht und durch das ausgewählte Image ersetzt.

post/vps/{order_id}/reinstall/reinstall/

Pfad-Parameter

  • order_idstringErforderlich

    Bestellnummer (einschließlich Präfix 34-...)

Body

Public API version: exposes template instead of ostemplate.

appintegernullablewrite-only
templateintegerwrite-only
snapshotintegernullablewrite-only

Antworten

  • 200application/json

    Public API version: exposes template instead of ostemplate.

    display_namestringread-onlyErforderlich
    statusstringread-onlyErforderlich
    datestring (date-time)read-onlyErforderlich
Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"template":0}' \
  "https://fornex.com/api/vps/$ORDER_ID/reinstall/reinstall/"
Antwort200
{
  "type": "object",
  "description": "Public API version: exposes ``template`` instead of ``ostemplate``.",
  "properties": {
    "display_name": {
      "type": "string",
      "readOnly": true
    },
    "status": {
      "type": "string",
      "readOnly": true
    },
    "date": {
      "type": "string",
      "format": "date-time",
      "readOnly": true
    }
  },
  "required": [
    "date",
    "display_name",
    "status"
  ]
}

VPS: Controls

Ein Virtual Private Server bei Fornex unterstützt Remote-Control-Anfragen. Dieser Abschnitt behandelt die API-Endpunkte zum Starten, Stoppen oder Zurücksetzen Ihres VPS bei Fornex sowie weitere Optionen.

#

VPS-Status

get/vps/{order_id}/status/

Pfad-Parameter

  • order_idstringErforderlich

    Bestellnummer (einschließlich Präfix 34-...)

Antworten

  • 200application/json
    statusstringErforderlich

    on | off | unknown

Fornex API Key
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/status/"
Antwort200
{
  "status": "on"
}
#

VPS starten

post/vps/{order_id}/start/

Pfad-Parameter

  • order_idstringErforderlich

    Bestellnummer (einschließlich Präfix 34-...)

Antworten

  • 200application/json
    pkintegerread-onlyErforderlich
    actionstringread-onlyErforderlich
    notestringread-onlyErforderlich
    userstringread-onlyErforderlich
    timestring (date-time)read-onlyErforderlich
    completedbooleanread-onlyErforderlich
    job_statestringread-onlyErforderlich
    Werte
    • ready
    • error
    • done
    job_actionstringread-onlyErforderlich
Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/start/"
Antwort200
{
  "pk": 1,
  "action": "Starten",
  "note": "Server wird gestartet",
  "user": "username@example.com",
  "time": "2024-02-15T11:12:11+02:00",
  "completed": false,
  "job_state": "ready",
  "job_action": "start"
}
#

VPS stoppen

post/vps/{order_id}/stop/

Pfad-Parameter

  • order_idstringErforderlich

    Bestellnummer (einschließlich Präfix 34-...)

Antworten

  • 200application/json
    pkintegerread-onlyErforderlich
    actionstringread-onlyErforderlich
    notestringread-onlyErforderlich
    userstringread-onlyErforderlich
    timestring (date-time)read-onlyErforderlich
    completedbooleanread-onlyErforderlich
    job_statestringread-onlyErforderlich
    Werte
    • ready
    • error
    • done
    job_actionstringread-onlyErforderlich
Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/stop/"
Antwort200
{
  "pk": 1,
  "action": "Starten",
  "note": "Server wird gestartet",
  "user": "username@example.com",
  "time": "2024-02-15T11:12:11+02:00",
  "completed": false,
  "job_state": "ready",
  "job_action": "start"
}
#

VPS neu starten

post/vps/{order_id}/restart/

Pfad-Parameter

  • order_idstringErforderlich

    Bestellnummer (einschließlich Präfix 34-...)

Antworten

  • 200application/json
    pkintegerread-onlyErforderlich
    actionstringread-onlyErforderlich
    notestringread-onlyErforderlich
    userstringread-onlyErforderlich
    timestring (date-time)read-onlyErforderlich
    completedbooleanread-onlyErforderlich
    job_statestringread-onlyErforderlich
    Werte
    • ready
    • error
    • done
    job_actionstringread-onlyErforderlich
Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/restart/"
Antwort200
{
  "pk": 1,
  "action": "Starten",
  "note": "Server wird gestartet",
  "user": "username@example.com",
  "time": "2024-02-15T11:12:11+02:00",
  "completed": false,
  "job_state": "ready",
  "job_action": "start"
}
#

Rescue Mode starten

post/vps/{order_id}/rescue_mode/

Pfad-Parameter

  • order_idstringErforderlich

    Bestellnummer (einschließlich Präfix 34-...)

Antworten

  • 200application/json
    pkintegerread-onlyErforderlich
    actionstringread-onlyErforderlich
    notestringread-onlyErforderlich
    userstringread-onlyErforderlich
    timestring (date-time)read-onlyErforderlich
    completedbooleanread-onlyErforderlich
    job_statestringread-onlyErforderlich
    Werte
    • ready
    • error
    • done
    job_actionstringread-onlyErforderlich
Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/rescue_mode/"
Antwort200
{
  "pk": 1,
  "action": "Starten",
  "note": "Server wird gestartet",
  "user": "username@example.com",
  "time": "2024-02-15T11:12:11+02:00",
  "completed": false,
  "job_state": "ready",
  "job_action": "start"
}
#

Rescue Mode beenden

post/vps/{order_id}/stop_rescue_mode/

Pfad-Parameter

  • order_idstringErforderlich

    Bestellnummer (einschließlich Präfix 34-...)

Antworten

  • 200application/json
    pkintegerread-onlyErforderlich
    actionstringread-onlyErforderlich
    notestringread-onlyErforderlich
    userstringread-onlyErforderlich
    timestring (date-time)read-onlyErforderlich
    completedbooleanread-onlyErforderlich
    job_statestringread-onlyErforderlich
    Werte
    • ready
    • error
    • done
    job_actionstringread-onlyErforderlich
Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/stop_rescue_mode/"
Antwort200
{
  "pk": 1,
  "action": "Starten",
  "note": "Server wird gestartet",
  "user": "username@example.com",
  "time": "2024-02-15T11:12:11+02:00",
  "completed": false,
  "job_state": "ready",
  "job_action": "start"
}
#

VPS hart zurücksetzen

Sie können einen harten Reset durchführen, auch als Hard Reboot bekannt, um die VPS-Leistung wiederherzustellen.

Ein Rücksetzsignal wird an die virtuelle Maschine gesendet, die sie neu startet, ohne sie zunächst für das Herunterfahren vorzubereiten.

Beachten Sie, dass die meisten Dateisysteme, die verzögerte Schreibvorgänge verwenden, nach einem harten Neustart in einen "unbereinigten" Zustand geraten können. Danach wird normalerweise eine automatische Dateisystemprüfung ausgeführt, nach der die virtuelle Maschine normal funktionieren kann, aber einige Daten können dennoch verloren gehen.

post/vps/{order_id}/hard_reset/

Pfad-Parameter

  • order_idstringErforderlich

    Bestellnummer (einschließlich Präfix 34-...)

Antworten

  • 200application/json
    pkintegerread-onlyErforderlich
    actionstringread-onlyErforderlich
    notestringread-onlyErforderlich
    userstringread-onlyErforderlich
    timestring (date-time)read-onlyErforderlich
    completedbooleanread-onlyErforderlich
    job_statestringread-onlyErforderlich
    Werte
    • ready
    • error
    • done
    job_actionstringread-onlyErforderlich
Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/hard_reset/"
Antwort200
{
  "pk": 1,
  "action": "Starten",
  "note": "Server wird gestartet",
  "user": "username@example.com",
  "time": "2024-02-15T11:12:11+02:00",
  "completed": false,
  "job_state": "ready",
  "job_action": "start"
}
#

Root-Passwort zurücksetzen

post/vps/{order_id}/passwd_reset/

Pfad-Parameter

  • order_idstringErforderlich

    Bestellnummer (einschließlich Präfix 34-...)

Antworten

  • 200application/json
    passwdstringread-onlyErforderlich

    Ihr neues Passwort.

    resp_idintegerread-onlyErforderlich

    ID der Operation, um deren Status zu überprüfen. Weitere Details finden Sie unter vps_log_details

Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/passwd_reset/"
Antwort200
{
  "type": "object",
  "properties": {
    "passwd": {
      "type": "string",
      "readOnly": true,
      "description": "Ihr neues Passwort."
    },
    "resp_id": {
      "type": "integer",
      "readOnly": true,
      "description": "ID der Operation, um deren Status zu überprüfen. Weitere Details finden Sie unter [vps_log_details](#operation/vps_log_details_retrieve)"
    }
  },
  "required": [
    "passwd",
    "resp_id"
  ]
}
#

Anfragestatus

get/vps/{order_id}/log_details/{log_id}/

Pfad-Parameter

  • log_idintegerErforderlich

    Datensatz-ID

  • order_idstringErforderlich

    Bestellnummer (einschließlich Präfix 34-...)

Antworten

  • 200application/json
    pkintegerread-onlyErforderlich
    actionstringread-onlyErforderlich
    notestringread-onlyErforderlich
    userstringread-onlyErforderlich
    timestring (date-time)read-onlyErforderlich
    completedbooleanread-onlyErforderlich
    job_statestringread-onlyErforderlich
    Werte
    • ready
    • error
    • done
    job_actionstringread-onlyErforderlich
Fornex API Key
LOG_ID='1'
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/log_details/$LOG_ID/"
Antwort200
{
  "pk": 1,
  "action": "Starten",
  "note": "Server wird gestartet",
  "user": "username@example.com",
  "time": "2024-02-15T11:12:11+02:00",
  "completed": false,
  "job_state": "ready",
  "job_action": "start"
}

VPS: Settings

Sie können Einstellungen auf einem virtuellen Fornex-Server remote ändern. Dieser Abschnitt enthält API-Anfragen zur Durchführung dieser Änderungen.

#

VPS-Einstellungen anpassen

Verschiedene VPS-Parameter anpassen.

patch/vps/{order_id}/

Pfad-Parameter

  • order_idstringErforderlich

    Bestellnummer (einschließlich Präfix 34-...)

Body

private_network_enabledboolean

Verbinden Sie die Bestellung mit einem privaten Netzwerk. Dies ermöglicht den direkten Datenaustausch mit anderen Bestellungen im selben Netzwerk und verbessert Geschwindigkeit und Sicherheit. Derzeit wird nur ein privates Netzwerk pro Konto erstellt.

Antworten

  • 200application/json
    private_network_enabledbooleanErforderlich

    Verbinden Sie die Bestellung mit einem privaten Netzwerk. Dies ermöglicht den direkten Datenaustausch mit anderen Bestellungen im selben Netzwerk und verbessert Geschwindigkeit und Sicherheit. Derzeit wird nur ein privates Netzwerk pro Konto erstellt.

Fornex API Key
ORDER_ID='34-1234'

curl -X PATCH \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"private_network_enabled":false}' \
  "https://fornex.com/api/vps/$ORDER_ID/"
Antwort200
{
  "type": "object",
  "properties": {
    "private_network_enabled": {
      "type": "boolean",
      "description": "Verbinden Sie die Bestellung mit einem privaten Netzwerk. Dies ermöglicht den direkten Datenaustausch mit anderen Bestellungen im selben Netzwerk und verbessert Geschwindigkeit und Sicherheit. Derzeit wird nur ein privates Netzwerk pro Konto erstellt."
    }
  },
  "required": [
    "private_network_enabled"
  ]
}

VPS: Statistics

Bei Fornex erfassen wir Statistiken zur Leistung und Ressourcennutzung Ihres Virtual Private Server. Dieser Abschnitt behandelt den API-Endpunkt, mit dem Sie diese Statistiken anfordern können.

#

VPS-Statistiken

Das Feld series enthält eine Liste von Wertpaaren (Zeitstempel * 1000, Gleitkommawert).

get/vps/{order_id}/stats/{field}/

Pfad-Parameter

  • fieldstringErforderlich

    Statistikfeld

    cpudiskiomemorytraffic
  • order_idstringErforderlich

    Bestellnummer (einschließlich Präfix 34-...)

Query-Parameter

  • endstring

    Periodenende (Standard: now)

  • startstring

    Periodenbeginn (Standard: -1h)

Antworten

Fornex API Key
FIELD='traffic'
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/stats/$FIELD/"
Antwort200
{
  "series": [
    {
      "color": "#60B5FF",
      "data": [
        [
          1677628800000,
          0.09553581192531
        ],
        [
          1677629088000,
          0.09553581192531
        ],
        [
          1677629376000,
          0.09916645151423
        ]
      ],
      "name": "Eingehend"
    },
    {
      "color": "#61D561",
      "data": [
        [
          1677628800000,
          4585.9263464
        ],
        [
          1677629088000,
          4575.14841552
        ],
        [
          1677629376000,
          4636.41519648
        ]
      ],
      "name": "Ausgehend",
      "type": "areaspline"
    }
  ],
  "subtitle": "16. November 2015, 17:18 - 17. November 2015, 17:18 (Europe/Moscow)"
}

VPS: Private Network

Verwaltung von privaten Netzwerken für VPS.

#

Netzwerkliste

get/private-network/

Query-Parameter

  • pageinteger

    Eine Seitennummer innerhalb des paginierten Ergebnissatzes.

    default: 1
  • page_sizeinteger

    Anzahl der Ergebnisse pro Seite.

    default: 10

Antworten

  • 200application/json
    countintegerErforderlichexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]PrivateNetwork[]Erforderlich
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/private-network/"
Antwort200
{
  "type": "object",
  "required": [
    "count",
    "results"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "example": 123
    },
    "next": {
      "type": "string",
      "nullable": true,
      "format": "uri",
      "example": "http://api.example.org/accounts/?page=4"
    },
    "previous": {
      "type": "string",
      "nullable": true,
      "format": "uri",
      "example": "http://api.example.org/accounts/?page=2"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          }
        },
        "required": [
          "id"
        ]
      }
    }
  }
}
#

Netzwerk erstellen

post/private-network/

Antworten

Fornex API Key
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/private-network/"
Antwort201
{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "readOnly": true
    }
  },
  "required": [
    "id"
  ]
}
#

Unterstützte Standorte

get/private-network/locations/

Query-Parameter

  • pageinteger

    Eine Seitennummer innerhalb des paginierten Ergebnissatzes.

    default: 1
  • page_sizeinteger

    Anzahl der Ergebnisse pro Seite.

    default: 10

Antworten

  • 200application/json
    countintegerErforderlichexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]PrivateNetworkLocation[]Erforderlich
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/private-network/locations/"
Antwort200
{
  "type": "object",
  "required": [
    "count",
    "results"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "example": 123
    },
    "next": {
      "type": "string",
      "nullable": true,
      "format": "uri",
      "example": "http://api.example.org/accounts/?page=4"
    },
    "previous": {
      "type": "string",
      "nullable": true,
      "format": "uri",
      "example": "http://api.example.org/accounts/?page=2"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "location": {
            "type": "object",
            "properties": {
              "value": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "icon": {
                "type": "string"
              }
            },
            "required": [
              "icon",
              "label",
              "value"
            ]
          }
        },
        "required": [
          "id",
          "location"
        ]
      }
    }
  }
}
#

Netzwerk löschen

delete/private-network/{id}/

Pfad-Parameter

  • idintegerErforderlich

    Ein eindeutiger Ganzzahl-Wert, das diesen User VNI identifiziert.

Antworten

  • 204

    No response body

Fornex API Key
ID='1'

curl -X DELETE \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/private-network/$ID/"

Dedicated Order

#

DS-Bestellungsliste

Alle verfügbaren DS-Bestellungen auflisten. Informationen zu den Parametern jeder Bestellung werden auch in der Antwort enthalten sein.

get/orders/ds/

Query-Parameter

  • cancel_markboolean

    Filtern Sie die Bestellungen, die storniert werden.

  • orderingstring

    Feld, nach dem die Ergebnisse sortiert werden.

    default: id
    expiredid
  • pageinteger

    Eine Seitennummer innerhalb des paginierten Ergebnissatzes.

    default: 1
  • page_sizeinteger

    Anzahl der Ergebnisse pro Seite.

    default: 10

Antworten

  • 200application/json
    countintegerErforderlichexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]DSOrder[]Erforderlich
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/ds/"
Antwort200
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "results": [
    {
      "id": "34-1234",
      "name": "DB Host",
      "tariff": "VPS Master",
      "tariff_price": 140,
      "type": "vps",
      "hostname": "srv-123.fornex.org",
      "ipaddress_set": [
        "123.123.123.123"
      ],
      "status": "active",
      "cost_month": 148,
      "expiration_date": "2015-12-18T17:21:46",
      "tags": [
        "Database"
      ],
      "configuration": {
        "cpu_count": 1,
        "cpu": "Intel Xeon Silver 4110 (8×2.1Ghz)",
        "motherboard": "Supermicro X9SCM-F",
        "chassis": "(1U) Supermicro U1 (BP:no, hdd-3.5x4) (4x 3.5)",
        "bandwidth": 1024,
        "memory": 16
      }
    }
  ]
}
#

DS-Bestellungsdetails

Rufen Sie alle verfügbaren Daten zur Bestellung nach ihrer ID ab.

get/orders/ds/{order_id}/

Pfad-Parameter

  • order_idstringErforderlich

    Bestellungs-ID im Format NN-NNNNNNN.

Antworten

  • 200application/json
    idstringread-onlyErforderlich
    namestringmax length: 64
    tariffstringread-onlyErforderlich
    tariff_pricenumber (double)nullableread-onlyErforderlich
    typestringread-onlyErforderlich
    hostnamestringnullableread-onlyErforderlich
    ipaddress_setarray string[]nullableread-onlyErforderlich
    statusstringread-onlyErforderlich
    Werte
    • unpaid
    • pending
    • active
    • expired
    • disabled
    • canceled
    • blocked
    • noprolong
    cost_monthnumber (double)read-onlyErforderlich
    expiration_datestring (date-time)read-onlyErforderlich
    tagsarray string[]Erforderlich
    cancel_markbooleanread-onlyErforderlich

    Ein Marker, der anzeigt, dass die Bestellung storniert wird.

    projectobjectnullableread-onlyErforderlich
    configurationobjectread-onlyErforderlich

    Serverkonfiguration

Fornex API Key
ORDER_ID='34-123456'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/ds/$ORDER_ID/"
Antwort200
{
  "id": "34-1234",
  "name": "DB Host",
  "tariff": "VPS Master",
  "tariff_price": 140,
  "type": "vps",
  "hostname": "srv-123.fornex.org",
  "ipaddress_set": [
    "123.123.123.123"
  ],
  "status": "active",
  "cost_month": 148,
  "expiration_date": "2015-12-18T17:21:46",
  "tags": [
    "Database"
  ],
  "configuration": {
    "cpu_count": 1,
    "cpu": "Intel Xeon Silver 4110 (8×2.1Ghz)",
    "motherboard": "Supermicro X9SCM-F",
    "chassis": "(1U) Supermicro U1 (BP:no, hdd-3.5x4) (4x 3.5)",
    "bandwidth": 1024,
    "memory": 16
  }
}
#

Datenverkehr

Verkehrsdaten für Bestellung abrufen

get/orders/ds/{order_id}/traffic/

Pfad-Parameter

  • order_idstringErforderlich

    Bestellnummer (einschließlich Präfix 34-...)

Query-Parameter

  • periodstring

    Zeitraum für die Anzeige von Statistiken

    default: month
    monthyear
  • portinteger

    Sequenzielle Portnummer

    default: 0

Antworten

  • 200application/json
    dataarrayErforderlich
    orderstringErforderlich
    periodstringErforderlich
Fornex API Key
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/ds/$ORDER_ID/traffic/"
Antwort200
{
  "data": [
    [
      "2015-11-11",
      {
        "input": 41348840999.42331,
        "output": 969929788001.3163
      }
    ],
    [
      "2015-11-12",
      {
        "input": 44384423647.10196,
        "output": 1019910108491.1565
      }
    ]
  ],
  "order": "34-1234 DS HyperXeon (example.net)",
  "period": "month"
}
#

Verkehrsgrenzen

get/orders/ds/{order_id}/traffic_used/

Pfad-Parameter

  • order_idintegerErforderlich

    Ein eindeutiger Ganzzahl-Wert, das diesen DS-Bestellung identifiziert.

Antworten

  • 200application/json
    orderstringErforderlich
    limitintegerErforderlich
    range_startstring (date)Erforderlich
    range_endstring (date)Erforderlich
    usedintegerErforderlich
    used_ratenumber (double)Erforderlich
Fornex API Key
ORDER_ID='1'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/ds/$ORDER_ID/traffic_used/"
Antwort200
{
  "limit": 14293651161088,
  "order": "34-1234 DS XeonNeon (example.net)",
  "range_end": "2015-11-21",
  "range_start": "2015-10-21",
  "used": 3508146044885.079,
  "used_rate": 0.24543386468220252
}

Domain

#

Domain-Liste

get/dns/domain/

Query-Parameter

  • pageinteger

    Eine Seitennummer innerhalb des paginierten Ergebnissatzes.

    default: 1
  • page_sizeinteger

    Anzahl der Ergebnisse pro Seite.

    default: 10
  • qstring

    Nach Name oder IP suchen

  • tagstring

    Nach Tag filtern

Antworten

  • 200application/json
    countintegerErforderlichexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]Domain[]Erforderlich
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/dns/domain/"
Antwort200
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "results": [
    {
      "name": "example.com",
      "created": "2024-02-05T21:41:25",
      "updated": "2024-02-05T21:41:25",
      "entry_set": [
        {
          "host": "",
          "id": 366182,
          "type": "A",
          "ttl": null,
          "value": "192.0.2.1"
        }
      ],
      "tags": []
    }
  ]
}
#

Domain hinzufügen

Die Möglichkeit, Domains über die API hinzuzufügen, ist standardmäßig aus Sicherheitsgründen deaktiviert. Wenn Sie diese Funktion nutzen möchten — kontaktieren Sie den Support.

post/dns/domain/

Body

Erforderlich
namestringlength 1…128Erforderlich
ipstring (ipv4)min length: 1write-onlyErforderlich

Antworten

  • 201application/json
    namestringmax length: 128Erforderlich
    createdstring (date-time)read-onlyErforderlich
    updatedstring (date-time)read-onlyErforderlich
    tagsarray string[]read-onlyErforderlich
    entry_setarray object[]Entry[]read-onlyErforderlich
Fornex API Key
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"name": "example.com", "ip": "192.0.2.1"}' \
  "https://fornex.com/api/dns/domain/"
Antwort201
{
  "name": "example.com",
  "created": "2024-02-05T21:41:25",
  "updated": "2024-02-05T21:41:25",
  "entry_set": [
    {
      "host": "",
      "id": 366182,
      "type": "A",
      "ttl": null,
      "value": "192.0.2.1"
    }
  ],
  "tags": []
}
#

Domain löschen

delete/dns/domain/{name}/

Pfad-Parameter

  • namestringErforderlich

    Domänenname

Antworten

  • 204

    No response body

Fornex API Key
NAME='example.com'

curl -X DELETE \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/dns/domain/$NAME/"
#

Zonendatei

get/dns/domain/{name}/zone_file/

Pfad-Parameter

  • namestringErforderlich

    Domänenname

Antworten

  • 200text/plain

    Zone file content (BIND format)

    string
Fornex API Key
NAME='example.com'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/dns/domain/$NAME/zone_file/"
Antwort200
"$TTL 21600\n@\tIN\tSOA\tns1.fornex.com. hostmaster.fornex.com. (\n...\n"
#

Tags aktualisieren

put/dns/domain/{name}/tags/

Pfad-Parameter

  • namestringErforderlich

    Domänenname

Body

Erforderlich
tagsarray string[]Erforderlich

Antworten

  • 200application/json
    tagsarray string[]Erforderlich
Fornex API Key
NAME='example.com'

curl -X PUT \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"tags": ["example"]}' \
  "https://fornex.com/api/dns/domain/$NAME/tags/"
Antwort200
{
  "tags": [
    "example"
  ]
}

Domain: Entry

#

Eintragsliste

get/dns/domain/{name}/entry_set/

Pfad-Parameter

  • namestringErforderlich

    Domänenname

Query-Parameter

  • qstring

    Datensatzfilter

  • typestring
    AAAAACAACNAMEMXNSSRVTXTnull

Antworten

  • 200application/json
    array object[]Entry[]
    idintegerread-onlyErforderlich
    hoststringmax length: 255default:

    Eintrag-Hostname: '@, *, Subdomain'

    typestringErforderlich
    Werte
    • A
    • AAAA
    • TXT
    • CNAME
    • NS
    • MX
    • SRV
    • CAA

    Eintragstyp

    priointeger (int64)min: 0max: 4294967295nullable

    Priorität, wird nur für SRV und MX verwendet

    valuestringmax length: 1024Erforderlich

    Einragswert gemäß Typ, zum Beispiel IP für A-Einträge

    ttlnullable

    Eintrag-TTL (optional, Standard: 3600 Sek.)

    Einer von
Fornex API Key
NAME='example.com'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/dns/domain/$NAME/entry_set/"
Antwort200
[
  {
    "id": 1,
    "host": "www",
    "type": "A",
    "ttl": null,
    "value": "10.10.10.18"
  }
]
#

Eintrag hinzufügen

post/dns/domain/{name}/entry_set/

Pfad-Parameter

  • namestringErforderlich

    Domänenname

Body

Erforderlich
hoststringmax length: 255default:

Eintrag-Hostname: '@, *, Subdomain'

typestringErforderlich
Werte
  • A
  • AAAA
  • TXT
  • CNAME
  • NS
  • MX
  • SRV
  • CAA

Eintragstyp

priointeger (int64)min: 0max: 4294967295nullable

Priorität, wird nur für SRV und MX verwendet

valuestringlength 1…1024Erforderlich

Einragswert gemäß Typ, zum Beispiel IP für A-Einträge

ttlnullable

Eintrag-TTL (optional, Standard: 3600 Sek.)

Einer von

Antworten

  • 201application/json
    idintegerread-onlyErforderlich
    hoststringmax length: 255default:

    Eintrag-Hostname: '@, *, Subdomain'

    typestringErforderlich
    Werte
    • A
    • AAAA
    • TXT
    • CNAME
    • NS
    • MX
    • SRV
    • CAA

    Eintragstyp

    priointeger (int64)min: 0max: 4294967295nullable

    Priorität, wird nur für SRV und MX verwendet

    valuestringmax length: 1024Erforderlich

    Einragswert gemäß Typ, zum Beispiel IP für A-Einträge

    ttlnullable

    Eintrag-TTL (optional, Standard: 3600 Sek.)

    Einer von
Fornex API Key
NAME='example.com'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"host": "www", "type": "A", "ttl": null, "value": "10.10.10.18"}' \
  "https://fornex.com/api/dns/domain/$NAME/entry_set/"
Antwort201
{
  "id": 1,
  "host": "www",
  "type": "A",
  "ttl": null,
  "value": "10.10.10.18"
}
#

Eintrag aktualisieren

put/dns/domain/{name}/entry_set/{id}/

Pfad-Parameter

  • idintegerErforderlich

    Ein eindeutiger Ganzzahl-Wert, das diesen DNS-Eintrag identifiziert.

  • namestringErforderlich

    Domänenname

Body

Erforderlich
hoststringmax length: 255default:

Eintrag-Hostname: '@, *, Subdomain'

typestringErforderlich
Werte
  • A
  • AAAA
  • TXT
  • CNAME
  • NS
  • MX
  • SRV
  • CAA

Eintragstyp

priointeger (int64)min: 0max: 4294967295nullable

Priorität, wird nur für SRV und MX verwendet

valuestringlength 1…1024Erforderlich

Einragswert gemäß Typ, zum Beispiel IP für A-Einträge

ttlnullable

Eintrag-TTL (optional, Standard: 3600 Sek.)

Einer von

Antworten

  • 200application/json
    idintegerread-onlyErforderlich
    hoststringmax length: 255default:

    Eintrag-Hostname: '@, *, Subdomain'

    typestringErforderlich
    Werte
    • A
    • AAAA
    • TXT
    • CNAME
    • NS
    • MX
    • SRV
    • CAA

    Eintragstyp

    priointeger (int64)min: 0max: 4294967295nullable

    Priorität, wird nur für SRV und MX verwendet

    valuestringmax length: 1024Erforderlich

    Einragswert gemäß Typ, zum Beispiel IP für A-Einträge

    ttlnullable

    Eintrag-TTL (optional, Standard: 3600 Sek.)

    Einer von
Fornex API Key
ID='1'
NAME='example.com'

curl -X PUT \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"host": "www", "type": "A", "ttl": null, "value": "10.10.10.18"}' \
  "https://fornex.com/api/dns/domain/$NAME/entry_set/$ID/"
Antwort200
{
  "id": 1,
  "host": "www",
  "type": "A",
  "ttl": null,
  "value": "10.10.10.18"
}
#

Eintrag löschen

delete/dns/domain/{name}/entry_set/{id}/

Pfad-Parameter

  • idintegerErforderlich

    Ein eindeutiger Ganzzahl-Wert, das diesen DNS-Eintrag identifiziert.

  • namestringErforderlich

    Domänenname

Antworten

  • 204

    No response body

Fornex API Key
ID='1'
NAME='example.com'

curl -X DELETE \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/dns/domain/$NAME/entry_set/$ID/"

Domain Order

#

NS ändern

Anfrage zur Änderung von Nameservern für Domain-Bestellung.

post/dns/order/{order_id}/change_ns/

Pfad-Parameter

  • order_idstringErforderlich

    Bestellungsnummer

Body

Erforderlich
nssstringmin length: 1Erforderlich

Liste der NS, durch Komma getrennt

Antworten

Fornex API Key
ORDER_ID='375-13'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"nss": "ns1.examle.com,ns2.example.com"}' \
  "https://fornex.com/api/dns/order/$ORDER_ID/change_ns/"
Antwort200
{
  "type": "object",
  "properties": {
    "nss": {
      "type": "string",
      "title": "Nameservers",
      "description": "Liste der NS, durch Komma getrennt"
    }
  },
  "required": [
    "nss"
  ]
}

SSH Keys

#

Schlüsselliste

get/ssh_keys/

Antworten

  • 200application/json
    array object[]SshKey[]
    idintegerread-onlyErforderlich
    userstringread-onlyErforderlich
    keystringmax length: 16384Erforderlich

    Öffentlicher Schlüssel im Klartext.

    titlestringmax length: 128Erforderlich
    datestring (date-time)read-onlyErforderlich
    defaultboolean
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/ssh_keys/"
Antwort200
[
  {
    "id": 1,
    "key": "ssh-rsa tt3BPrBTUCGXsCXmiF03LD/f9 test@test",
    "title": "Dev Laptop",
    "date": "2019-08-24T14:15:22Z",
    "default": true
  }
]
#

Schlüssel hinzufügen

Wenn Sie einen neuen Schlüssel hinzufügen, wird dieser automatisch mit all Ihren VPS verknüpft. Der Schlüssel wird nur beim Erstellen oder Neuinstallieren direkt auf den VPS übertragen.

post/ssh_keys/

Body

Erforderlich
keystringlength 1…16384Erforderlich

Öffentlicher Schlüssel im Klartext.

titlestringlength 1…128Erforderlich
defaultboolean

Antworten

  • 201application/json
    idintegerread-onlyErforderlich
    userstringread-onlyErforderlich
    keystringmax length: 16384Erforderlich

    Öffentlicher Schlüssel im Klartext.

    titlestringmax length: 128Erforderlich
    datestring (date-time)read-onlyErforderlich
    defaultboolean
Fornex API Key
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"key": "ssh-rsa tt3BPrBTUCGXsCXmiF03LD/f9 test@test", "title": "Dev Laptop", "default": true}' \
  "https://fornex.com/api/ssh_keys/"
Antwort201
{
  "id": 1,
  "key": "ssh-rsa tt3BPrBTUCGXsCXmiF03LD/f9 test@test",
  "title": "Dev Laptop",
  "date": "2019-08-24T14:15:22Z",
  "default": true
}
#

Schlüssel löschen

delete/ssh_keys/{key_id}/

Pfad-Parameter

  • key_idintegerErforderlich

    Ein eindeutiger Ganzzahl-Wert, das diesen user ssh key identifiziert.

Antworten

  • 204

    No response body

Fornex API Key
KEY_ID='1'

curl -X DELETE \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/ssh_keys/$KEY_ID/"

VPS SSH Keys

#

Liste der Bestellschlüssel

get/vps/{order_id}/ssh_keys/

Pfad-Parameter

  • order_idstringErforderlich

    Bestellnummer (einschließlich Präfix 34-...)

Antworten

  • 200application/json
    array object[]SshKey[]
    idintegerread-onlyErforderlich
    userstringread-onlyErforderlich
    keystringmax length: 16384Erforderlich

    Öffentlicher Schlüssel im Klartext.

    titlestringmax length: 128Erforderlich
    datestring (date-time)read-onlyErforderlich
    defaultboolean
Fornex API Key
ORDER_ID='34-1234'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vps/$ORDER_ID/ssh_keys/"
Antwort200
[
  {
    "id": 1,
    "key": "ssh-rsa tt3BPrBTUCGXsCXmiF03LD/f9 test@test",
    "title": "Dev Laptop",
    "date": "2019-08-24T14:15:22Z",
    "default": true
  }
]
#

Schlüssel zur Bestellung hinzufügen

post/vps/{order_id}/ssh_keys/add/

Pfad-Parameter

  • order_idstringErforderlich

    Bestellnummer (einschließlich Präfix 34-...)

Body

Erforderlich
key_pkintegerwrite-onlyErforderlich

Antworten

  • 200

    No response body

Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"key_pk": 1}' \
  "https://fornex.com/api/vps/$ORDER_ID/ssh_keys/add/"
#

Bestellschlüssel löschen

post/vps/{order_id}/ssh_keys/delete/

Pfad-Parameter

  • order_idstringErforderlich

    Bestellnummer (einschließlich Präfix 34-...)

Body

Erforderlich
key_pkintegerwrite-onlyErforderlich

Antworten

  • 200

    No response body

Fornex API Key
ORDER_ID='34-1234'

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"key_pk": 1}' \
  "https://fornex.com/api/vps/$ORDER_ID/ssh_keys/delete/"

S3 Storage

#

Liste der S3-Bestellungen

Rufen Sie eine Liste aller verfügbaren S3-Bestellungen ab. Informationen zu den Parametern jeder Bestellung werden auch in der Antwort enthalten sein

get/orders/s3/

Query-Parameter

  • cancel_markboolean

    Filtern Sie die Bestellungen, die storniert werden.

  • orderingstring

    Feld, nach dem die Ergebnisse sortiert werden.

    default: id
    expiredid
  • pageinteger

    Eine Seitennummer innerhalb des paginierten Ergebnissatzes.

    default: 1
  • page_sizeinteger

    Anzahl der Ergebnisse pro Seite.

    default: 10

Antworten

  • 200application/json
    countintegerErforderlichexample: 123
    nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
    previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
    resultsarray object[]S3Order[]Erforderlich
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/s3/"
Antwort200
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "results": [
    {
      "id": "34-1234",
      "name": "DB Host",
      "hostname": "srv-123.fornex.org",
      "status": "active",
      "cost_month": 148,
      "expiration_date": "2015-12-18T17:21:46",
      "tags": [
        "Database"
      ],
      "access_key": "user.8cab052ag4",
      "secret_key": "hisQNeOv2ZgjzSCSA1JJDLOhwAcA8s17",
      "bucket_name": "user.8cab052ag4.main",
      "space_used": "18"
    }
  ]
}
#

S3-Bestelldetails

Rufen Sie alle verfügbaren Daten zur Bestellung nach ihrer ID ab.

get/orders/s3/{order_id}/

Pfad-Parameter

  • order_idstringErforderlich

    Bestellnummer im Format NNN-NN.

Antworten

  • 200application/json
    idstringread-onlyErforderlich
    namestringread-onlyErforderlich
    hostnamestringErforderlich
    access_keystringread-onlyErforderlich
    secret_keystringread-onlyErforderlich
    bucket_namestringread-onlyErforderlich
    space_usedintegerErforderlich
    cost_monthnumber (double)read-onlyErforderlich
    expiration_datestring (date-time)read-onlyErforderlich
    tagsarray string[]Erforderlich
    cancel_markbooleanread-onlyErforderlich

    Ein Marker, der anzeigt, dass die Bestellung storniert wird.

    projectobjectnullableread-onlyErforderlich
Fornex API Key
ORDER_ID='664-7'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/orders/s3/$ORDER_ID/"
Antwort200
{
  "id": "34-1234",
  "name": "DB Host",
  "hostname": "srv-123.fornex.org",
  "status": "active",
  "cost_month": 148,
  "expiration_date": "2015-12-18T17:21:46",
  "tags": [
    "Database"
  ],
  "access_key": "user.8cab052ag4",
  "secret_key": "hisQNeOv2ZgjzSCSA1JJDLOhwAcA8s17",
  "bucket_name": "user.8cab052ag4.main",
  "space_used": "18"
}
#

S3-Benachrichtigungsschwelle für wenig Speicherplatz

Legen Sie die Schwelle für verfügbaren Speicherplatz fest, bei der eine Warnung gesendet wird. Übergeben Sie 0, um die Benachrichtigung zu deaktivieren.

put/orders/s3/{order_id}/notification_threshold/

Pfad-Parameter

  • order_idintegerErforderlich

    Ein eindeutiger Ganzzahl-Wert, das diesen S3-Bestellung identifiziert.

Body

Erforderlich
space_warning_notify_gbintegermin: 0Erforderlich

Antworten

Fornex API Key
ORDER_ID='1'

curl -X PUT \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"space_warning_notify_gb":0}' \
  "https://fornex.com/api/orders/s3/$ORDER_ID/notification_threshold/"
Antwort200
{
  "type": "object",
  "properties": {
    "space_warning_notify_gb": {
      "type": "integer",
      "minimum": 0
    }
  },
  "required": [
    "space_warning_notify_gb"
  ]
}

VPN

#

OpenVPN-Konfiguration

get/vpn/{order_id}/config-{proto}.ovpn

Pfad-Parameter

  • order_idstringErforderlich

    Bestellungsnummer

  • protostringErforderlich

    Protokoll

    tcpudp

Antworten

  • 200text/plain

    OpenVPN profile

    string
Fornex API Key
ORDER_ID='301-12312'
PROTO='udp'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vpn/$ORDER_ID/config-$PROTO.ovpn"
Antwort200
{
  "type": "string"
}
#

IKEv2-Konfiguration für macOS/iOS

get/vpn/{order_id}/config-ikev2.mobileconfig

Pfad-Parameter

  • order_idstringErforderlich

    Bestellungsnummer

Antworten

  • 200text/plain

    IKEv2 mobileconfig

    string
Fornex API Key
ORDER_ID='301-12312'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vpn/$ORDER_ID/config-ikev2.mobileconfig"
Antwort200
{
  "type": "string"
}
#

IKEv2-Konfiguration für Android

get/vpn/{order_id}/config-ikev2.sswan

Pfad-Parameter

  • order_idstringErforderlich

    Bestellungsnummer

Antworten

  • 200application/json

    IKEv2 sswan

    string
Fornex API Key
ORDER_ID='301-12312'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vpn/$ORDER_ID/config-ikev2.sswan"
Antwort200
{
  "type": "string"
}
#

WireGuard-Konfiguration

get/vpn/{order_id}/config-wireguard.conf

Pfad-Parameter

  • order_idstringErforderlich

    Bestellungsnummer

Antworten

  • 200text/plain

    WireGuard config

    string
Fornex API Key
ORDER_ID='301-12312'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vpn/$ORDER_ID/config-wireguard.conf"
Antwort200
{
  "type": "string"
}
#

Outline VPN-Konfiguration

get/vpn/{order_id}/config_outline

Pfad-Parameter

  • order_idstringErforderlich

    Bestellungsnummer

Antworten

  • 200application/json
    access_urlstring (uri)Erforderlich
Fornex API Key
ORDER_ID='301-12312'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vpn/$ORDER_ID/config_outline"
Antwort200
{
  "type": "object",
  "properties": {
    "access_url": {
      "type": "string",
      "format": "uri"
    }
  },
  "required": [
    "access_url"
  ]
}
#

Xray VPN-Konfiguration

get/vpn/{order_id}/config_xray

Pfad-Parameter

  • order_idstringErforderlich

    Bestellungsnummer

Antworten

  • 200application/json
    access_urlstring (uri)Erforderlich
Fornex API Key
ORDER_ID='301-12312'

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/vpn/$ORDER_ID/config_xray"
Antwort200
{
  "type": "object",
  "properties": {
    "access_url": {
      "type": "string",
      "format": "uri"
    }
  },
  "required": [
    "access_url"
  ]
}

IP Addresses

IP-Adressen, die Ihren Diensten zugeordnet sind.

#

IP-Adressen auflisten

get/network/ip-address/

Query-Parameter

  • orderingstring

    Feld, das zum Sortieren der Ergebnisse verwendet werden soll.

  • searchstring
  • typestring

Antworten

  • 200application/json
    idintegerread-onlyErforderlich
    ipstringErforderlich
    locationLocationChoiceErforderlich
    rdnsstringErforderlich
    orderobjectnullableread-onlyErforderlich
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/network/ip-address/"
Antwort200
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "readOnly": true
      },
      "ip": {
        "type": "string",
        "title": "IP Address"
      },
      "location": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "icon": {
            "type": "string"
          }
        },
        "required": [
          "icon",
          "label",
          "value"
        ]
      },
      "rdns": {
        "type": "string"
      },
      "order": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "name": {
                "type": "string"
              },
              "type": {
                "type": "string"
              },
              "link": {
                "type": "string",
                "readOnly": true
              },
              "unique_number": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "link",
              "name",
              "type",
              "unique_number"
            ]
          }
        ],
        "nullable": true,
        "readOnly": true
      }
    },
    "required": [
      "id",
      "ip",
      "location",
      "order",
      "rdns"
    ]
  }
}

Tickets

Dieser Abschnitt beschreibt API-Anfragen, mit denen Sie die Remote-Arbeit mit unserem Ticketing-System einrichten können. Dieser Abschnitt behandelt die wichtigsten und zusätzlichen API-Endpunkte, die zum Verwalten des Remote-Zugriffs auf das Fornex-Ticketing-System verwendet werden.

#

Ticket erstellen

Um ein Ticket zu erstellen, geben Sie Betreff und Text Ihrer Anfrage ein. Zusätzlich können Sie die Priorität festlegen und die Bestellung angeben, auf die sich Ihre Anfrage bezieht.

post/tickets/ticket/

Body

Erforderlich

Создание тикета пользователем

subjectstringlength 1…64Erforderlich

Die Hauptidee Ihrer Anfrage in Kürze.

messagestringlength 1…49152Erforderlich

Eine detaillierte Beschreibung Ihres Problems und weitere Details der Anfrage.

priorityintegerdefault: 1
Werte
  • 0
  • 1
  • 2
  • 3
  • 4

Eine der Optionen, die die Dringlichkeit Ihrer Anfrage widerspiegelt:

  • 0 - Nicht dringend (bis zu 24 Stunden)
  • 1 - Normal (bis zu 8 Stunden)
  • 2 - Wichtig (bis zu 6 Stunden)
  • 3 - Dringend (bis zu 1 Stunde)
  • 4 - Sehr dringend (so schnell wie möglich)

Standardmäßig wird ein Ticket mit normaler Priorität erstellt.

Die Priorität sehr dringend kann nur für Bestellungen mit erweiterter Verwaltung gesetzt werden.

Bitte setzen Sie die Priorität "sehr dringend" nicht für Anfragen, die nicht mit technischen Problemen Ihrer Bestellungen oder Ausfällen zusammenhängen. Erhöhen Sie die Priorität eines Tickets nicht unnötig, wenn es nicht erforderlich ist – dies erschwert nur die Bearbeitung Ihrer Anfragen.

orderstringmin length: 1nullable

ID der Bestellung im Format "34-NNNN", auf die sich Ihre Anfrage bezieht. Derzeit kann ein Ticket nur mit einer Bestellung verknüpft werden. Standardmäßig wird ein Ticket ohne verknüpfte Bestellung erstellt.

credentialsobjectwrite-only

Antworten

  • 201application/json

    Создание тикета пользователем

    subjectstringmax length: 64Erforderlich

    Die Hauptidee Ihrer Anfrage in Kürze.

    messagestringmax length: 49152Erforderlich

    Eine detaillierte Beschreibung Ihres Problems und weitere Details der Anfrage.

    priorityintegerdefault: 1
    Werte
    • 0
    • 1
    • 2
    • 3
    • 4

    Eine der Optionen, die die Dringlichkeit Ihrer Anfrage widerspiegelt:

    • 0 - Nicht dringend (bis zu 24 Stunden)
    • 1 - Normal (bis zu 8 Stunden)
    • 2 - Wichtig (bis zu 6 Stunden)
    • 3 - Dringend (bis zu 1 Stunde)
    • 4 - Sehr dringend (so schnell wie möglich)

    Standardmäßig wird ein Ticket mit normaler Priorität erstellt.

    Die Priorität sehr dringend kann nur für Bestellungen mit erweiterter Verwaltung gesetzt werden.

    Bitte setzen Sie die Priorität "sehr dringend" nicht für Anfragen, die nicht mit technischen Problemen Ihrer Bestellungen oder Ausfällen zusammenhängen. Erhöhen Sie die Priorität eines Tickets nicht unnötig, wenn es nicht erforderlich ist – dies erschwert nur die Bearbeitung Ihrer Anfragen.

    orderstringnullable

    ID der Bestellung im Format "34-NNNN", auf die sich Ihre Anfrage bezieht. Derzeit kann ein Ticket nur mit einer Bestellung verknüpft werden. Standardmäßig wird ein Ticket ohne verknüpfte Bestellung erstellt.

    urlstringread-onlyErforderlich
    idstringread-onlyErforderlich
    statusstringread-onlyErforderlich
Fornex API Key
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"subject": "Hello, we need some help", "message": "We need some help with updating software..."}' \
  "https://fornex.com/api/tickets/ticket/"
Antwort201
{
  "subject": "Hello, we need some help",
  "message": "We need some help with updating software...",
  "priority": 1,
  "order": null,
  "url": "https://fornex.com/my/tickets/66a8968a01027a2c2f241e6c/",
  "id": "66a8968a01027a2c2f241e6c",
  "status": "new"
}
#

Webhook-Status

get/tickets/webhook_info/

Antworten

  • 200application/json
    urlstring (uri)max length: 512

    URL zum Absenden der Anfrage, lassen Sie das Feld leer zum Deaktivieren

    last_error_datestring (date-time)nullableread-onlyErforderlich
    last_error_messagestringnullableread-onlyErforderlich
Fornex API Key
curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  "https://fornex.com/api/tickets/webhook_info/"
Antwort200
{
  "last_error_date": null,
  "last_error_message": null,
  "url": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"
}
#

Webhook konfigurieren

An die angegebene URL wird eine POST-Anfrage gesendet

ContentType: 'application/json'

{"text": "Neuer Kommentar zum Ticket hinzugefügt..."}

Standardmäßig funktioniert es mit Slack, aber Sie können Ihren eigenen Webhook angeben und die Benachrichtigung selbst verarbeiten.

post/tickets/webhook_set/

Body

urlstring (uri)max length: 512

URL zum Absenden der Anfrage, lassen Sie das Feld leer zum Deaktivieren

Antworten

  • 201application/json
    urlstring (uri)max length: 512

    URL zum Absenden der Anfrage, lassen Sie das Feld leer zum Deaktivieren

    last_error_datestring (date-time)nullableread-onlyErforderlich
    last_error_messagestringnullableread-onlyErforderlich
Fornex API Key
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Api-Key $FORNEX_API_KEY" \
  --data '{"last_error_date": null, "last_error_message": null, "url": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"}' \
  "https://fornex.com/api/tickets/webhook_set/"
Antwort201
{
  "last_error_date": null,
  "last_error_message": null,
  "url": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"
}

Schemas

#AccountBalance
object
balancenumber (double)Erforderlich
currencystringErforderlich
#AccountInfo
object
emailstring (email)max length: 254
namestringErforderlich
#AccountInvoices
object
unpaid_invoices_countintegerErforderlich
unpaid_invoices_amountnumber (double)Erforderlich
currencystringErforderlich
#AppTemplate
object
idintegerread-onlyErforderlich

ID der Anwendung.

namestringmax length: 64Erforderlich

Name der Anwendung.

osstringread-onlyErforderlich
#BackupTariff
object
spaceintegerErforderlich
pricenumber (double)Erforderlich
unitsstringread-onlyErforderlichdefault: GB
#BandwidthEnum
Werte
  • 10
  • 15
  • 20
  • 25
  • 40
#BillingTypeEnum
string
Werte
  • single
  • periodic
#BlankEnum
Werte
#CancelOrder
object
statusstringread-onlyErforderlich
Werte
  • canceled
  • cancel_pending
messagestringread-onlyErforderlich
#CancelOrderRequest
object
whenstringwrite-onlydefault: expired
Werte
  • now
  • expired

Der Parameter beschreibt, wann die Bestellung storniert werden soll - jetzt oder nach Ablauf der bezahlten Periode.

save_backupbooleanwrite-onlydefault: true

Der Parameter beschreibt, ob vor dem Löschen der virtuellen Maschine ein Snapshot des VPS erstellt werden soll oder nicht.

#CancelOrderStatusEnum
string
Werte
  • canceled
  • cancel_pending
#CpuArchEnum
string
Werte
  • x86_64
  • arm
#DedicatedTariff
object
idintegerread-onlyErforderlich
namestringmax length: 128Erforderlich

Der Tarifname erscheint auf Rechnungen, daher sollte er kurz und in lateinischen Zeichen geschrieben sein — z. B. Cloud NVMe 1.

cpu_modelstringread-onlyErforderlich
cpu_countintegermin: 0max: 65535
ramstringErforderlich
diskstringErforderlich
bandwidthstringErforderlich
pricenumber (double)Erforderlich
locationsarray array[]Erforderlich
#DiskTypeEnum
string
Werte
  • hdd
  • nvme
  • ssd
  • sas
#DnsOrderNameservers
object
nssstringErforderlich

Liste der NS, durch Komma getrennt

#DnsOrderNameserversRequest
object
nssstringmin length: 1Erforderlich

Liste der NS, durch Komma getrennt

#Domain
object
namestringmax length: 128Erforderlich
createdstring (date-time)read-onlyErforderlich
updatedstring (date-time)read-onlyErforderlich
tagsarray string[]read-onlyErforderlich
entry_setarray object[]Entry[]read-onlyErforderlich
#DomainRequest
object
namestringlength 1…128Erforderlich
ipstring (ipv4)min length: 1write-onlyErforderlich
#DomainTags
object
tagsarray string[]Erforderlich
#DomainTagsRequest
object
tagsarray string[]Erforderlich
#DSConfiguration
object
cpu_countintegermin: 0max: 65535
cpustringErforderlich
motherboardstringErforderlich
chassisstringErforderlich
raid_controllerstringErforderlich
network_adapterstringErforderlich
bandwidthnullable
Einer von
memoryinteger (int64)min: 0max: 4294967295Erforderlich
disksstringread-onlyErforderlich
#DSOrder
object
idstringread-onlyErforderlich
namestringmax length: 64
tariffstringread-onlyErforderlich
tariff_pricenumber (double)nullableread-onlyErforderlich
typestringread-onlyErforderlich
hostnamestringnullableread-onlyErforderlich
ipaddress_setarray string[]nullableread-onlyErforderlich
statusstringread-onlyErforderlich
Werte
  • unpaid
  • pending
  • active
  • expired
  • disabled
  • canceled
  • blocked
  • noprolong
cost_monthnumber (double)read-onlyErforderlich
expiration_datestring (date-time)read-onlyErforderlich
tagsarray string[]Erforderlich
cancel_markbooleanread-onlyErforderlich

Ein Marker, der anzeigt, dass die Bestellung storniert wird.

projectobjectnullableread-onlyErforderlich
configurationobjectread-onlyErforderlich

Serverkonfiguration

#DSTraffic
object
dataarrayErforderlich
orderstringErforderlich
periodstringErforderlich
#DSTrafficUsed
object
orderstringErforderlich
limitintegerErforderlich
range_startstring (date)Erforderlich
range_endstring (date)Erforderlich
usedintegerErforderlich
used_ratenumber (double)Erforderlich
#Entry
object
idintegerread-onlyErforderlich
hoststringmax length: 255default:

Eintrag-Hostname: '@, *, Subdomain'

typestringErforderlich
Werte
  • A
  • AAAA
  • TXT
  • CNAME
  • NS
  • MX
  • SRV
  • CAA

Eintragstyp

priointeger (int64)min: 0max: 4294967295nullable

Priorität, wird nur für SRV und MX verwendet

valuestringmax length: 1024Erforderlich

Einragswert gemäß Typ, zum Beispiel IP für A-Einträge

ttlnullable

Eintrag-TTL (optional, Standard: 3600 Sek.)

Einer von
#EntryRequest
object
hoststringmax length: 255default:

Eintrag-Hostname: '@, *, Subdomain'

typestringErforderlich
Werte
  • A
  • AAAA
  • TXT
  • CNAME
  • NS
  • MX
  • SRV
  • CAA

Eintragstyp

priointeger (int64)min: 0max: 4294967295nullable

Priorität, wird nur für SRV und MX verwendet

valuestringlength 1…1024Erforderlich

Einragswert gemäß Typ, zum Beispiel IP für A-Einträge

ttlnullable

Eintrag-TTL (optional, Standard: 3600 Sek.)

Einer von
#EntryTypeEnum
string
Werte
  • A
  • AAAA
  • TXT
  • CNAME
  • NS
  • MX
  • SRV
  • CAA
#JobStateEnum
string
Werte
  • ready
  • error
  • done
#LocationChoice
object
valuestringErforderlich
labelstringErforderlich
iconstringErforderlich
#NetworkOrder
object
idintegerErforderlich
namestringErforderlich
typestringErforderlich
linkstringread-onlyErforderlich
unique_numberstringErforderlich
#NullEnum
Werte
  • null
#Order
object
idstringread-onlyErforderlich
namestringmax length: 64
tariffstringread-onlyErforderlich
tariff_pricenumber (double)nullableread-onlyErforderlich
typestringread-onlyErforderlich
hostnamestringnullableread-onlyErforderlich
ipaddress_setarray string[]nullableread-onlyErforderlich
statusstringread-onlyErforderlich
Werte
  • unpaid
  • pending
  • active
  • expired
  • disabled
  • canceled
  • blocked
  • noprolong
cost_monthnumber (double)read-onlyErforderlich
expiration_datestring (date-time)read-onlyErforderlich
tagsarray string[]Erforderlich
cancel_markbooleanread-onlyErforderlich

Ein Marker, der anzeigt, dass die Bestellung storniert wird.

projectobjectnullableread-onlyErforderlich
#OrderCredentials
object
usernamestring
passwordstring
commentstring
#OrderCredentialsRequest
object
usernamestringmin length: 1
passwordstringmin length: 1
commentstringmin length: 1
#OrderServiceCreate
object
serviceintegerErforderlich

Die ID der Zusatzleistung.

countintegermin: 1default: 1

Die Menge dieser Zusatzleistung.

#OrderServiceCreateRequest
object
serviceintegerErforderlich

Die ID der Zusatzleistung.

countintegermin: 1default: 1

Die Menge dieser Zusatzleistung.

#OrderSSHKeyAddRequest
object
key_pkintegerwrite-onlyErforderlich
#OrderSSHKeyRemoveRequest
object
key_pkintegerwrite-onlyErforderlich
#OrderStatus
string
Werte
  • unpaid
  • pending
  • active
  • expired
  • disabled
  • canceled
  • blocked
  • noprolong
#OrderUpdate
object
namestringmax length: 64default:

Benutzerdefinierter Name für die Bestellung.

tagsarray string[]Erforderlich

Tags für die Bestellung.

projectintegernullableErforderlich

Projekt der Bestellung.

#PaginatedAppTemplateList
object
countintegerErforderlichexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]AppTemplate[]Erforderlich
#PaginatedDomainList
object
countintegerErforderlichexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]Domain[]Erforderlich
#PaginatedDSOrderList
object
countintegerErforderlichexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]DSOrder[]Erforderlich
#PaginatedOrderList
object
countintegerErforderlichexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]Order[]Erforderlich
#PaginatedPrivateNetworkList
object
countintegerErforderlichexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]PrivateNetwork[]Erforderlich
#PaginatedPrivateNetworkLocationList
object
countintegerErforderlichexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]PrivateNetworkLocation[]Erforderlich
#PaginatedProjectList
object
countintegerErforderlichexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]Project[]Erforderlich
#PaginatedS3OrderList
object
countintegerErforderlichexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]S3Order[]Erforderlich
#PaginatedSnapshotList
object
countintegerErforderlichexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]Snapshot[]Erforderlich
#PaginatedTemplateList
object
countintegerErforderlichexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]Template[]Erforderlich
#PaginatedVPSOrderList
object
countintegerErforderlichexample: 123
nextstring (uri)nullableexample: http://api.example.org/accounts/?page=4
previousstring (uri)nullableexample: http://api.example.org/accounts/?page=2
resultsarray object[]VPSOrder[]Erforderlich
#PanelEnum
Werte
  • vesta
  • hestia
  • aapanel
  • brainycp
  • cloudpanel
  • cyberpanel
  • beadmin
  • openpanel
#PatchedOrderUpdateRequest
object
namestringlength 1…64default:

Benutzerdefinierter Name für die Bestellung. Geben Sie einen leeren String ein, wenn Sie den Namen entfernen möchten.

tagsarray string[]

Tags für die Bestellung. Neue Tags ersetzen alte Tags vollständig, falls vorhanden. Legen Sie eine leere Liste fest, wenn Sie alle Tags entfernen möchten.

projectintegernullable

Projekt der Bestellung. Geben Sie einen leeren String ein, wenn Sie das Projekt entfernen möchten.

#PatchedProjectRequest
object
namestringlength 1…40
commentstringmax length: 256
#PatchedVpsUpdateRequest
object
private_network_enabledboolean

Verbinden Sie die Bestellung mit einem privaten Netzwerk. Dies ermöglicht den direkten Datenaustausch mit anderen Bestellungen im selben Netzwerk und verbessert Geschwindigkeit und Sicherheit. Derzeit wird nur ein privates Netzwerk pro Konto erstellt.

#PlacementPolicyEnum
string
Werte
  • STRICT
  • OPTIONAL
#PriorityEnum
integer
Werte
  • 0
  • 1
  • 2
  • 3
  • 4
#PrivateNetwork
object
idintegerread-onlyErforderlich
#PrivateNetworkLocation
object
idintegerread-onlyErforderlich
locationLocationChoiceErforderlich
#Project
object
idintegerread-onlyErforderlich
namestringmax length: 40Erforderlich
commentstringmax length: 256
logostring (uri)read-onlyErforderlich
#ProjectAddOrdersRequest
object
ordersarray string[]write-onlyErforderlich
#ProjectLogoRequest
object
logostring (binary)

Pfad zur Datei.

#ProjectRemoveOrdersRequest
object
ordersarray string[]write-onlyErforderlich
#ProjectRequest
object
namestringlength 1…40Erforderlich
commentstringmax length: 256
#PublicChart
object
seriesarray object[]PublicChartSeries[]Erforderlich
subtitlestringErforderlich
#PublicChartSeries
object
namestringErforderlich
dataarrayErforderlich
typestring
colorstring
#PublicNetworkAddress
object
idintegerread-onlyErforderlich
ipstringErforderlich
locationLocationChoiceErforderlich
rdnsstringErforderlich
orderobjectnullableread-onlyErforderlich
#PublicReinstallRequest
object

Public API version: exposes template instead of ostemplate.

display_namestringread-onlyErforderlich
statusstringread-onlyErforderlich
datestring (date-time)read-onlyErforderlich
#PublicReinstallRequestRequest
object

Public API version: exposes template instead of ostemplate.

appintegernullablewrite-only
templateintegerwrite-only
snapshotintegernullablewrite-only
#PublicTicket
object

Создание тикета пользователем

subjectstringmax length: 64Erforderlich

Die Hauptidee Ihrer Anfrage in Kürze.

messagestringmax length: 49152Erforderlich

Eine detaillierte Beschreibung Ihres Problems und weitere Details der Anfrage.

priorityintegerdefault: 1
Werte
  • 0
  • 1
  • 2
  • 3
  • 4

Eine der Optionen, die die Dringlichkeit Ihrer Anfrage widerspiegelt:

  • 0 - Nicht dringend (bis zu 24 Stunden)
  • 1 - Normal (bis zu 8 Stunden)
  • 2 - Wichtig (bis zu 6 Stunden)
  • 3 - Dringend (bis zu 1 Stunde)
  • 4 - Sehr dringend (so schnell wie möglich)

Standardmäßig wird ein Ticket mit normaler Priorität erstellt.

Die Priorität sehr dringend kann nur für Bestellungen mit erweiterter Verwaltung gesetzt werden.

Bitte setzen Sie die Priorität "sehr dringend" nicht für Anfragen, die nicht mit technischen Problemen Ihrer Bestellungen oder Ausfällen zusammenhängen. Erhöhen Sie die Priorität eines Tickets nicht unnötig, wenn es nicht erforderlich ist – dies erschwert nur die Bearbeitung Ihrer Anfragen.

orderstringnullable

ID der Bestellung im Format "34-NNNN", auf die sich Ihre Anfrage bezieht. Derzeit kann ein Ticket nur mit einer Bestellung verknüpft werden. Standardmäßig wird ein Ticket ohne verknüpfte Bestellung erstellt.

urlstringread-onlyErforderlich
idstringread-onlyErforderlich
statusstringread-onlyErforderlich
#PublicTicketRequest
object

Создание тикета пользователем

subjectstringlength 1…64Erforderlich

Die Hauptidee Ihrer Anfrage in Kürze.

messagestringlength 1…49152Erforderlich

Eine detaillierte Beschreibung Ihres Problems und weitere Details der Anfrage.

priorityintegerdefault: 1
Werte
  • 0
  • 1
  • 2
  • 3
  • 4

Eine der Optionen, die die Dringlichkeit Ihrer Anfrage widerspiegelt:

  • 0 - Nicht dringend (bis zu 24 Stunden)
  • 1 - Normal (bis zu 8 Stunden)
  • 2 - Wichtig (bis zu 6 Stunden)
  • 3 - Dringend (bis zu 1 Stunde)
  • 4 - Sehr dringend (so schnell wie möglich)

Standardmäßig wird ein Ticket mit normaler Priorität erstellt.

Die Priorität sehr dringend kann nur für Bestellungen mit erweiterter Verwaltung gesetzt werden.

Bitte setzen Sie die Priorität "sehr dringend" nicht für Anfragen, die nicht mit technischen Problemen Ihrer Bestellungen oder Ausfällen zusammenhängen. Erhöhen Sie die Priorität eines Tickets nicht unnötig, wenn es nicht erforderlich ist – dies erschwert nur die Bearbeitung Ihrer Anfragen.

orderstringmin length: 1nullable

ID der Bestellung im Format "34-NNNN", auf die sich Ihre Anfrage bezieht. Derzeit kann ein Ticket nur mit einer Bestellung verknüpft werden. Standardmäßig wird ein Ticket ohne verknüpfte Bestellung erstellt.

credentialsobjectwrite-only
#S3NotificationThreshold
object
space_warning_notify_gbintegermin: 0Erforderlich
#S3NotificationThresholdRequest
object
space_warning_notify_gbintegermin: 0Erforderlich
#S3Order
object
idstringread-onlyErforderlich
namestringread-onlyErforderlich
hostnamestringErforderlich
access_keystringread-onlyErforderlich
secret_keystringread-onlyErforderlich
bucket_namestringread-onlyErforderlich
space_usedintegerErforderlich
cost_monthnumber (double)read-onlyErforderlich
expiration_datestring (date-time)read-onlyErforderlich
tagsarray string[]Erforderlich
cancel_markbooleanread-onlyErforderlich

Ein Marker, der anzeigt, dass die Bestellung storniert wird.

projectobjectnullableread-onlyErforderlich
#ServerBandwidthTariff
object
min_valuestring (decimal)^-?\d{0,5}(?:\.\d{0,2})?$Erforderlich
max_valuestring (decimal)^-?\d{0,5}(?:\.\d{0,2})?$Erforderlich
stepstring (decimal)^-?\d{0,5}(?:\.\d{0,2})?$Erforderlich

Unterschied zwischen zwei aufeinanderfolgenden Bandbreitenwerten

pricestring (decimal)^-?\d{0,5}(?:\.\d{0,2})?$Erforderlich
Werte
  • gbps
  • mbps
#Service
object
idintegerread-onlyErforderlich

ID der Dienstleistung.

namestringmax length: 128Erforderlich

Name der Dienstleistung.

descriptionstringmax length: 255

Beschreibung der Dienstleistung.

pricestring (decimal)^-?\d{0,8}(?:\.\d{0,2})?$Erforderlich

Preis der Dienstleistung.

billing_typestringErforderlich
Werte
  • single
  • periodic

Einmalige oder monatliche Gebühr.

#Snapshot
object
idintegerread-onlyErforderlich

ID des Snapshots.

namestringmax length: 64Erforderlich

Name des Snapshots.

size_gbnumber (double)read-onlyErforderlich

Größe des Snapshots in GB.

created_atstring (date-time)Erforderlich
#SshKey
object
idintegerread-onlyErforderlich
userstringread-onlyErforderlich
keystringmax length: 16384Erforderlich

Öffentlicher Schlüssel im Klartext.

titlestringmax length: 128Erforderlich
datestring (date-time)read-onlyErforderlich
defaultboolean
#SshKeyRequest
object
keystringlength 1…16384Erforderlich

Öffentlicher Schlüssel im Klartext.

titlestringlength 1…128Erforderlich
defaultboolean
#Template
object
idintegerread-onlyErforderlich

ID der Vorlage.

namestringmax length: 64Erforderlich

Name der Vorlage.

osstringread-onlyErforderlich
panelnullable

In der Vorlage verwendetes Admin-Panel, kann leer sein.

Einer von
archstring
Werte
  • x86_64
  • arm

CPU-Architekturtyp, der für diese Vorlage erforderlich ist.

min_storage_spaceinteger (int64)min: 0max: 4294967295nullable

Minimaler Speicherplatz, der für diese Vorlage erforderlich ist.

min_ram_volumeintegermin: 0max: 65535nullable

Minimales RAM-Volumen, das für diese Vorlage erforderlich ist.

min_cpu_coresinteger (int64)min: 0max: 4294967295nullable

Minimale Anzahl von CPU-Kernen, die für diese Vorlage erforderlich sind.

#TermEnum
integer
Werte
  • 1
  • 3
  • 6
  • 12
#TicketsWebhook
object
urlstring (uri)max length: 512

URL zum Absenden der Anfrage, lassen Sie das Feld leer zum Deaktivieren

last_error_datestring (date-time)nullableread-onlyErforderlich
last_error_messagestringnullableread-onlyErforderlich
#TicketsWebhookRequest
object
urlstring (uri)max length: 512

URL zum Absenden der Anfrage, lassen Sie das Feld leer zum Deaktivieren

#TtlEnum
Werte
  • 120
  • 300
  • 600
  • 900
  • 1800
#UnitEnum
string
Werte
  • gbps
  • mbps
#VHTariff
object
idintegerread-onlyErforderlich
namestringmax length: 128Erforderlich

Der Tarifname erscheint auf Rechnungen, daher sollte er kurz und in lateinischen Zeichen geschrieben sein — z. B. Cloud NVMe 1.

sitesintegermin: 0max: 65535nullable
pricenumber (double)Erforderlich
cpu_coresintegermin: 0max: 65535nullable
hdd_spaceinteger (int64)min: 0max: 4294967295nullable

GB

available_locationsarray string[]read-onlyErforderlich
#VpnConfig
object
access_urlstring (uri)Erforderlich
#VpnTariff
object
idintegerread-onlyErforderlich
pricenumber (double)Erforderlich
Werte
  • shared
  • dedicated
  • multi-hop
available_locationsarray string[]read-onlyErforderlich
#VpnTariffTypeEnum
string
Werte
  • shared
  • dedicated
  • multi-hop
#VpsConfiguration
object
cpu_countintegermin: 1max: 16

Die Anzahl der Kerne.

ram_sizeintegermin: 2max: 32

Der RAM-Speicherplatz in Gigabyte (GB).

disk_classintegernullable

Festplattenklasse.

disk_sizeintegermin: 20max: 300

Der Speicherplatz in Gigabyte (GB).

cpu_archstring
Werte
  • x86_64
  • arm

CPU-Architektur.

min_cpu_freqstring (decimal)^-?\d{0,2}(?:\.\d{0,1})?$

Minimale CPU-Kernfrequenz in Gigahertz (GHz). Beeinflusst die Kosten der Bestellung (höhere Frequenz - höherer Preis) und die Wahl des Hypervisors beim Erstellen eines VPS. Wir empfehlen, genaue Werte aus dem VPS-Konfigurator festzulegen, da bei Nichtübereinstimmung die nächst höhere Frequenz angewendet wird (z. B. wird eine Bestellung mit 2,4 GHz als 3,0 GHz verarbeitet).

#VpsConfigurationRequest
object
cpu_countintegermin: 1max: 16

Die Anzahl der Kerne.

ram_sizeintegermin: 2max: 32

Der RAM-Speicherplatz in Gigabyte (GB).

disk_classintegernullable

Festplattenklasse.

disk_sizeintegermin: 20max: 300

Der Speicherplatz in Gigabyte (GB).

cpu_archstring
Werte
  • x86_64
  • arm

CPU-Architektur.

min_cpu_freqstring (decimal)^-?\d{0,2}(?:\.\d{0,1})?$

Minimale CPU-Kernfrequenz in Gigahertz (GHz). Beeinflusst die Kosten der Bestellung (höhere Frequenz - höherer Preis) und die Wahl des Hypervisors beim Erstellen eines VPS. Wir empfehlen, genaue Werte aus dem VPS-Konfigurator festzulegen, da bei Nichtübereinstimmung die nächst höhere Frequenz angewendet wird (z. B. wird eine Bestellung mit 2,4 GHz als 3,0 GHz verarbeitet).

#VpsDiskClass
object
idintegerread-onlyErforderlich
namestringmax length: 64Erforderlich
limit_total_mbytes_secintegermin: 0max: 65535Erforderlich

Мb/sec

limit_read_iops_secintegermin: 0max: 65535Erforderlich

Op/sec

limit_write_iops_secintegermin: 0max: 65535Erforderlich

Op/sec

price_per_gbstring (decimal)^-?\d{0,2}(?:\.\d{0,4})?$Erforderlich

Kosten pro 1 GB

disk_typeDiskTypeEnum
Werte
  • hdd
  • nvme
  • ssd
  • sas
disk_type_displaystringErforderlich
#VpsLocation
object
valuestringErforderlich
labelstringErforderlich
location_os_typesarray string[]Erforderlich
bandwidth_tariffobjectnullable
disabled_by_slotsbooleandefault: true
disabled_by_cpu_freqbooleandefault: true
disabled_by_osbooleandefault: false
disabled_by_cpu_typebooleandefault: false
available_frequenciesobjectErforderlich
#VpsLogEntry
object
pkintegerread-onlyErforderlich
actionstringread-onlyErforderlich
notestringread-onlyErforderlich
userstringread-onlyErforderlich
timestring (date-time)read-onlyErforderlich
completedbooleanread-onlyErforderlich
job_statestringread-onlyErforderlich
Werte
  • ready
  • error
  • done
job_actionstringread-onlyErforderlich
#VPSOrder
object
idstringread-onlyErforderlich
namestringmax length: 64
tariffstringread-onlyErforderlich
tariff_pricenumber (double)nullableread-onlyErforderlich
typestringread-onlyErforderlich
hostnamestringnullableread-onlyErforderlich
ipaddress_setarray string[]nullableread-onlyErforderlich
statusstringread-onlyErforderlich
Werte
  • unpaid
  • pending
  • active
  • expired
  • disabled
  • canceled
  • blocked
  • noprolong
cost_monthnumber (double)read-onlyErforderlich
expiration_datestring (date-time)read-onlyErforderlich
tagsarray string[]Erforderlich
cancel_markbooleanread-onlyErforderlich

Ein Marker, der anzeigt, dass die Bestellung storniert wird.

projectobjectnullableread-onlyErforderlich
configurationobjectread-onlyErforderlich

Serverkonfiguration

#VpsOrderCreate
object
order_idstringread-onlyErforderlich
#VpsOrderCreateRequest
object
tariffintegernullablewrite-only

Die ID des vordefinierten Tarifs. Die verfügbaren Optionen für tariff erhalten Sie unter VPS-Tarife.

Zum Erstellen einer benutzerdefinierten Konfiguration verwenden Sie den Parameter configuration. Verwenden Sie nicht beide Parameter gleichzeitig.

configurationobjectnullablewrite-only

Die benutzerdefinierten Konfigurationsparameter als Objekt (öffnen Sie den ausklappbaren Bereich für weitere Details). Verwenden Sie den VPS-Konfigurator, um eine angemessene Kombination von Parametern gemäß dynamischer Einschränkungen zu erhalten.

Anstelle einer benutzerdefinierten Konfiguration können Sie einen vordefinierten Tarif auswählen, der normalerweise günstiger ist. Verwenden Sie dazu den Parameter tariff. Verwenden Sie nicht beide Parameter gleichzeitig.

templateintegerwrite-only

Template-ID zum Installieren eines Betriebssystems und optional eines Hosting-Kontrollpanels. Die verfügbaren Optionen für template erhalten Sie unter VPS-Vorlagen.

Anstelle eines Betriebssystems können Sie eine Anwendung installieren (Parameter app) oder VPS aus einem Snapshot wiederherstellen (Parameter snapshot). Verwenden Sie dazu den entsprechenden Parameter. Verwenden Sie nur einen Parameter pro Bestellung.

appintegerwrite-only

Anwendungs-ID, die Sie installieren möchten. Die verfügbaren Optionen für app erhalten Sie unter VPS-Anwendungen.

Anstelle einer Anwendung können Sie ein Betriebssystem installieren (Parameter template) oder VPS aus einem Snapshot wiederherstellen (Parameter snapshot). Verwenden Sie dazu den entsprechenden Parameter. Verwenden Sie nur einen Parameter pro Bestellung.

snapshotintegerwrite-only

Snapshot-ID, aus der Sie VPS wiederherstellen möchten. Die verfügbaren Optionen für snapshot erhalten Sie unter VPS-Snapshots.

Sie können einen Snapshot aus einem beliebigen bereits erstellten VPS in Ihrem Dashboard auf der Seite der Bestellung erstellen und ihn zum Wiederherstellen (als Sicherung) oder zum Erstellen von Kopien der Bestellung (als Vorlage) verwenden.

Anstelle der Wiederherstellung aus einem Snapshot können Sie ein Betriebssystem installieren (Parameter template) oder eine Anwendung installieren (Parameter app). Verwenden Sie dazu den entsprechenden Parameter. Verwenden Sie nur einen Parameter pro Bestellung.

locationstringmin length: 1write-onlyErforderlich

Der Zweizeichenländercode des Bestellungsstandorts. Die verfügbaren Optionen für location erhalten Sie unter VPS-Standorte.

termintegerwrite-onlydefault: 1
Werte
  • 1
  • 3
  • 6
  • 12

Die Anzahl der Monate, für die die Bestellung nach der Erstellung erneuert wird (z. B. 3).

servicesarray object[]OrderServiceCreateRequest[]write-only

Zusatzleistungen und deren Menge als Liste (öffnen Sie den ausklappbaren Bereich für weitere Details). Die verfügbaren Optionen für services erhalten Sie unter VPS-Zusatzleistungen.

ssh_keysarray integer[]write-only

IDs der SSH-Schlüssel als Liste, die während der Installation zum Server hinzugefügt werden. Die verfügbaren Optionen für ssh_keys erhalten Sie unter SSH-Schlüssel. Übergeben Sie die Schlüsselliste explizit. Standardmäßig wird eine leere Liste übergeben, auch wenn in Ihrem Dashboard Schlüssel mit der Markierung "standardmäßig hinzufügen" vorhanden sind.

namestringlength 1…25write-onlydefault:

Benutzerdefinierter Name für den VPS. Standardmäßig ist für den Server kein Name festgelegt.

projectintegernullablewrite-only

Projekt-ID. Die verfügbaren Optionen für project können in der Projektliste abgerufen werden.

disk_classintegernullablewrite-only

Die ID der VPS-Festplattenklasse. Die verfügbaren Optionen für tariff erhalten Sie unter VPS-Laufwerke.

Bei Verwendung einer benutzerdefinierten Konfiguration verwenden Sie das Attribut im Parameter configuration. Verwenden Sie nicht beide Parameter gleichzeitig.

bandwidthintegernullablewrite-only

Bandbreitenlimit für die VPS-Bestellung. Der Preis pro Einheit ist im Wert bandwidth_tariff definiert

webhookobjectwrite-only

Webhook-Konfiguration als Objekt (öffnen Sie den ausklappbaren Bereich für weitere Details). Dies ist erforderlich, um eine POST-Anfrage mit Bestellungsdetails und Zugriffsanmeldeinformationen nach der Erstellung des VPS zu erhalten.

placement_policystringwrite-onlydefault: OPTIONAL
Werte
  • STRICT
  • OPTIONAL
placement_groupintegernullablewrite-only
private_networkintegernullablewrite-only
tagsarray string[]write-only

Tags für den VPS. Standardmäßig sind für den Server keine Tags festgelegt.

#VpsOrderCreateWebhook
object
urlstring (uri)max length: 512Erforderlich

Die URL, an die die POST-Anfrage gesendet wird.

Vollständige Bestellungsdetails werden gesendet (wie in der Methode Bestellungsdetails), aber mit einem zusätzlichen Feld namens credentials:

{
  "credentials": {
    "ip_address": "127.0.0.1",
    "username": "root",
    "password": "root_pass"
  }
}
secretstringmax length: 64Erforderlich

Geheime Phrase zur Signierung.

Verwenden Sie bei der Verarbeitung einer Webhook-Anfrage den Header "Fornex-Signature" zur Validierung.

Beispiel in Python:

import hmac
from hashlib import sha256
import json

from django.views.decorators.csrf import csrf_exempt
from django.http import HttpRequest, HttpResponse

@csrf_exempt
def webhook_handler(request: HttpRequest):
    signature = request.headers["Fornex-Signature"]
    secret = "secret"
    expected_signature = hmac.new(secret.encode(), request.body, sha256).hexdigest()
    if signature != expected_signature:
        raise ValueError("Invalid signature.")
    print(json.loads(request.body.decode()))
    return HttpResponse()
#VpsOrderCreateWebhookRequest
object
urlstring (uri)length 1…512Erforderlich

Die URL, an die die POST-Anfrage gesendet wird.

Vollständige Bestellungsdetails werden gesendet (wie in der Methode Bestellungsdetails), aber mit einem zusätzlichen Feld namens credentials:

{
  "credentials": {
    "ip_address": "127.0.0.1",
    "username": "root",
    "password": "root_pass"
  }
}
secretstringlength 1…64Erforderlich

Geheime Phrase zur Signierung.

Verwenden Sie bei der Verarbeitung einer Webhook-Anfrage den Header "Fornex-Signature" zur Validierung.

Beispiel in Python:

import hmac
from hashlib import sha256
import json

from django.views.decorators.csrf import csrf_exempt
from django.http import HttpRequest, HttpResponse

@csrf_exempt
def webhook_handler(request: HttpRequest):
    signature = request.headers["Fornex-Signature"]
    secret = "secret"
    expected_signature = hmac.new(secret.encode(), request.body, sha256).hexdigest()
    if signature != expected_signature:
        raise ValueError("Invalid signature.")
    print(json.loads(request.body.decode()))
    return HttpResponse()
#VpsResetPassword
object
passwdstringread-onlyErforderlich

Ihr neues Passwort.

resp_idintegerread-onlyErforderlich

ID der Operation, um deren Status zu überprüfen. Weitere Details finden Sie unter vps_log_details

#VpsStatus
object
statusstringErforderlich

on | off | unknown

#VpsTariff
object
idintegerread-onlyErforderlich
namestringmax length: 128Erforderlich

Der Tarifname erscheint auf Rechnungen, daher sollte er kurz und in lateinischen Zeichen geschrieben sein — z. B. Cloud NVMe 1.

cpu_countintegerErforderlich
ramstringErforderlich
diskstringErforderlich
bandwidthstringErforderlich
pricenumber (double)Erforderlich
disk_classVpsDiskClassErforderlich
#VpsUpdate
object
private_network_enabledbooleanErforderlich

Verbinden Sie die Bestellung mit einem privaten Netzwerk. Dies ermöglicht den direkten Datenaustausch mit anderen Bestellungen im selben Netzwerk und verbessert Geschwindigkeit und Sicherheit. Derzeit wird nur ein privates Netzwerk pro Konto erstellt.

#WhenEnum
string
Werte
  • now
  • expired