Erste Schritte mit der API
API-Schnellstart
Erstellen Sie einen API-Schlüssel, wählen Sie Tarif und Rechenzentrum, bestellen und bezahlen Sie einen Bare-Metal-Server und installieren Sie sein Betriebssystem über die API.
Sieben Anfragen führen von einem neuen API-Schlüssel zu einem Server mit Ihrem gewählten Betriebssystem. Jede Anfrage ist in cURL, Node.js, Python, Go, PHP, Ruby, Java, C# und PowerShell ausgeführt. Die bei einer Anfrage gewählte Sprache gilt für alle anderen, hier und auf den Seiten der API-Referenz.
API-Schlüssel erstellen
Öffnen Sie in der Cloud-Konsole die Einstellungen Ihrer Organisation und wählen Sie unter Manage API Keys die Option Create an API Key. Die Konsole zeigt den Schlüssel nur einmal bei seiner Erstellung; kopieren Sie ihn daher vor dem Schließen des Dialogs.
Jede Anfrage in der Dokumentation zeigt ihn als <api-key> im Header Authorization: Bearer. Setzen Sie dort Ihren Schlüssel ein und ersetzen Sie die anderen <...>-Werte sowie {serviceId} durch die in den jeweiligen Schritten zurückgegebenen Werte.
Tarif und Rechenzentrum wählen
Listen Sie die Bare-Metal-Tarife auf:
curl --request GET \
--url https://api.serverside.com/v1/baremetal/plans \
--header 'Authorization: Bearer <api-key>'Die Liste ist paginiert, mit 25 Tarifen pro Seite, sofern pageSize nicht mehr anfordert, maximal 1000. Jeder Tarif in data enthält id und slug, seine Hardware unter specs und zwei für die Bestellung entscheidende Felder:
availabilityenthält einen Eintrag pro Rechenzentrum mit dessencode(etwaams1),cityundfacilitysowie dem dort verfügbaren Bestandquantity.pricingenthält diecurrencyund unterrateseinen Eintrag für jeden angebotenen Abrechnungszyklus.priceMillicentsist der Preis einer Periode dieses Zyklus undeffectiveMonthlyMillicentsderselbe Preis pro Monat, beide in Tausendstel Cent (Geldbeträge).
Wählen Sie einen Tarif und ein Rechenzentrum mit quantity größer null und merken Sie sich den slug des Tarifs sowie den code des Rechenzentrums. Um stattdessen vom Standort auszugehen, nennt Regionen auflisten jedes bestellbare Rechenzentrum mit code, Stadt und Einrichtung.
Server bestellen
Erstellen Sie eine Bestellung für diesen Tarif im gewählten Rechenzentrum mit dem gewünschten Abrechnungszyklus:
curl --request POST \
--url https://api.serverside.com/v1/billing/orders \
--header 'Authorization: Bearer <api-key>' \
--header 'Idempotency-Key: <idempotency-key>' \
--header 'Content-Type: application/json' \
--data '
{
"cycle": "MONTHLY",
"items": [
{
"type": "BAREMETAL",
"plan": "<plan-slug>",
"datacenter": "<datacenter-code>",
"name": "<hostname>"
}
]
}
'plan und datacenter akzeptieren neben Slug und Code auch IDs. name ist optional, umfasst 2 bis 64 Zeichen und wird bei der Bereitstellung zum Hostnamen des Betriebssystems; ein Name wie web1.example.com setzt somit beides.
cycle ist erforderlich und akzeptiert HOURLY, MONTHLY, QUARTERLY, SEMI_ANNUALLY oder ANNUALLY. Der weitere Ablauf hängt von Ihrer Wahl ab:
- Eine Laufzeit (
MONTHLYbisANNUALLY): Die Bestellung wird mit einer Rechnung gespeichert, noch ohne Bereitstellung. Die Antwort ist201; bewahren Siedata.order.idunddata.invoiceIdfür den nächsten Schritt auf. HOURLY: Der Server wird innerhalb der Anfrage bereitgestellt, ohne Rechnungserstellung.data.provisionedItems[0].provisionedIdist die Server-ID, die{serviceId}der letzten beiden Schritte. Springen Sie daher zur Betriebssystemwahl. Stündliche Abrechnung erfordert, dassbilling.isUsageBasedbei Berechtigte Funktionen abrufentrueist. Neue Organisationen haben dies nicht; derzeit erfolgt die Freischaltung auf Anfrage über den Support in der Cloud-Konsole. Ohne sie antwortet die Bestellung mit422USAGE_BILLING_DISABLED.
Der Server erhält ein IPv4-/30 und ein IPv6-/120, beide im Tarifpreis enthalten; IPv6 entfällt, wenn das Rechenzentrum keinen IPv6-Adressraum vergeben kann. Abrechnung beschreibt größere IPv4-Präfixe und das Weglassen einer Adressfamilie.
Der Header Idempotency-Key ist optional. Erzeugen Sie einen Wert pro Bestellung und senden Sie bei einer Wiederholung nach Zeitüberschreitung denselben Wert, damit die erste Bestellung zurückgegeben wird, statt eine zweite aufzugeben; Idempotenz erklärt die Regeln.
Rechnung bezahlen
Ein Server mit Laufzeit wird nach vollständiger Bezahlung seiner Rechnung bereitgestellt; keine Zahlung einer Bestellrechnung erfolgt automatisch. Eine unbezahlte Bestellung wird innerhalb von 24 Stunden storniert. Ein Skript kann sie über Rechnung bezahlen aus Kontoguthaben begleichen:
curl --request POST \
--url https://api.serverside.com/v1/billing/invoices/{invoiceId}/pay \
--header 'Authorization: Bearer <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"providerType": "ACCOUNT_CREDIT"
}
'Die Zahlung verwendet das verfügbare Guthaben bis zum offenen Betrag und zeigt status SUCCEEDED. Reicht das Guthaben nicht aus, bleibt ein Teil der Rechnung offen und der Server wartet auf den Rest. Rufen Sie die Rechnung ab und lesen Sie amountDue in Cent. Ohne Guthaben antwortet der Aufruf mit 422 PAYMENT_FAILED.
providerType STRIPE mit der ID einer gespeicherten Karte in methodId belastet stattdessen diese Karte. Die API listet gespeicherte Karten nur in den Organisationseinstellungen auf, die eine Konsolensitzung erfordern. Ein Schlüssel hat daher keinen Aufruf zum Ermitteln der ID. Ohne methodId startet STRIPE eine Zahlung, die im Browser bestätigt werden muss (Abrechnung).
Rufen Sie dann die Bestellung etwa alle 20 Sekunden ab, bis ihr Posten in items den status COMPLETED hat:
curl --request GET \
--url https://api.serverside.com/v1/billing/orders/{orderId} \
--header 'Authorization: Bearer <api-key>'Die Bestellung selbst zeigt bis zur Bereitstellung UNPAID, danach COMPLETE. Die provisionedId des Postens ist die neue Server-ID, die {serviceId} aller späteren Aufrufe. Ein Posten mit FAILED wird nicht von selbst bereitgestellt: Auch die Bestellung zeigt FAILED, und der Support benötigt deren id, um sie abzuschließen.
Betriebssystem wählen
Listen Sie die Images auf, die zum neuen Server passen:
curl --request GET \
--url https://api.serverside.com/v1/baremetal/{serviceId}/deploy/images \
--header 'Authorization: Bearer <api-key>'Jedes Image hat id, name, einen slug wie ubuntu-24.04, eine platform (LINUX oder WINDOWS), den erstellten defaultUser und die unterstützten raidVariants.
Bereitstellen
Starten Sie die Bereitstellung. image akzeptiert die id oder den slug des Images; sshKeyIds akzeptiert IDs aus SSH-Schlüssel auflisten.
curl --request POST \
--url https://api.serverside.com/v1/baremetal/{serviceId}/deploy \
--header 'Authorization: Bearer <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"image": "<image-id>",
"sshKeyIds": [
"<ssh-key-id>"
],
"raidVariant": "RAID1"
}
'Eine Linux-Bereitstellung benötigt eine Anmeldemöglichkeit: SSH-Schlüssel, password oder eigenes cloudInit. Windows benötigt ein password. username verwendet standardmäßig den defaultUser des Images. Unter Linux gelten username und password zusätzlich zu den Schlüsseln; ein dort benannter Benutzer erhält passwortloses sudo. raidVariant ist standardmäßig NONE; jeder andere Wert muss vom Image aufgeführt werden.
Die Antwort ist 201 mit dem nun laufenden Vorgang vom type DEPLOYMENT. Verfolgen Sie ihn über Dienststatus abrufen:
curl --request GET \
--url https://api.serverside.com/v1/baremetal/{serviceId}/status \
--header 'Authorization: Bearer <api-key>'operation enthält die laufende Bereitstellung mit progress und lastProgressMessage; nach Abschluss zeigt lastOperation.state COMPLETED oder FAILED. Eine Bereitstellung startet nur im Dienst-state ACTIVE. Läuft noch ein anderer Vorgang, antwortet die API mit 409 und dem Code OPERATION_IN_PROGRESS. Sobald COMPLETED erscheint, melden Sie sich an der von Bare-Metal-Dienst abrufen zurückgegebenen primaryIpv4 an.
Nächste Schritte
- Ersten Server bereitstellen: derselbe Ablauf mit SSH-Schlüssel, Erststartkonfiguration, Ergebnisabfragen und Hinweisen zu fehlgeschlagenen Bereitstellungen.
- IP-Adressen verwalten: zusätzliche Adressen und Reverse DNS für den neuen Server.
- Abrechnung: Abrechnungszyklen, Bestellungen, Rechnungen, Kontoguthaben und Karten.
- API-Konventionen: Benennung, Geldeinheiten, Erfolgs- und Fehlerformate, Paginierung, Fehlercodes, Ratenlimits und Idempotenz.