Developers

SNG Hosting API · v1

Steuern Sie Ihre Server aus Ihrem eigenen Code

Power, Auslastung, IP-Adressen, Reverse DNS, Traffic, Firewall und DDoS-Schutz für jeden SNG VPS und dedizierten Server – mit einem Token und einer einheitlichen API.

Anfrage
curl -X POST https://api.snghosting.com/api/v1/servers/ded_6a4b…/actions \
  -H "Authorization: Bearer $SNG_API_TOKEN" \
  -H "Idempotency-Key: 5f0c…" \
  -d '{"action":"reboot"}'
202 Accepted
{
  "data": {
    "operation": {
      "id": "6a4b2a40-6d0e-4c1b-9c1d-1c7c8f3f0a11",
      "action": "reboot",
      "status": "running",
      "requestedAt": "2026-10-07T12:00:00.000Z"
    }
  }
}

Einführung

Die SNG API ist eine JSON-API über HTTPS. Alle Endpunkte liegen unter der unten genannten Basis-URL und liefern entweder ein data- oder ein error-Objekt, nie beides.

Alles, was Sie im Control Panel für einen Server, sein Netzwerk und seinen DDoS-Schutz tun können, steht hier zur Verfügung – mit denselben Eigentumsprüfungen: Ein Token sieht nur die Server des Kontos, das ihn erstellt hat.

Basis-URLhttps://api.snghosting.com/api/v1

Schnellstart

  1. Öffnen Sie API & MCP im SNG Control Panel und erstellen Sie einen persönlichen Zugriffstoken. Wählen Sie nur die Berechtigungen, die Ihre Integration benötigt.
  2. Kopieren Sie den Token. SNG zeigt ihn nur einmal an und speichert lediglich einen Hash.
  3. Rufen Sie GET /connect auf, um den Token zu prüfen, und danach GET /servers, um Ihre Server aufzulisten.
curl "https://api.snghosting.com/api/v1/servers" \
  -H "Authorization: Bearer $SNG_API_TOKEN"

Authentifizierung

Senden Sie den Token bei jeder Anfrage im Header Authorization: Authorization: Bearer sng_pat_v1_….

Tokens laufen ab (standardmäßig nach 30 Tagen, höchstens nach 90) und können jederzeit widerrufen werden. Sie können einen Token auf bis zu zehn Quell-IP-Adressen beschränken. Reseller-Tokens erfordern immer eine IP-Freigabeliste.

Legen Sie einen Token nie in Frontend-Code oder einem öffentlichen Repository ab. Falls er offengelegt wird, widerrufen Sie ihn im Control Panel; die nächste Anfrage damit wird abgelehnt.

Berechtigungen

Jeder Token hat ausdrückliche Berechtigungen. Eine Anfrage außerhalb davon wird mit insufficient_scope abgelehnt, und keine Berechtigung erlaubt alles.

BerechtigungErlaubt
servers:readServer auflisten sowie Details, Auslastung und Status von Vorgängen lesen.
servers:powerServer starten und neu starten.
servers:controlServer herunterfahren, hart ausschalten und zurücksetzen. Zusammen mit servers:power verwenden.
network:readIP-Adressen, Reverse DNS, Traffic, DDoS-Schutz, Angriffe, Filterregeln und die VPS-Firewall lesen.
network:writeReverse DNS, IP-Beschreibungen, den DDoS-Schutzmodus und die VPS-Firewall ändern.

Anfragen und Antworten

Senden Sie JSON mit Content-Type: application/json. Der Body ist auf 10 KB begrenzt.

Server-IDs haben die Form vps_1_4021 oder ded_<uuid>. Übernehmen Sie sie aus GET /servers, statt sie selbst zusammenzusetzen.

Jede Antwort enthält den Header X-Request-Id. Geben Sie ihn bei Supportanfragen an.

Idempotente Aktionen

Jede Anfrage, die etwas ändert, benötigt den Header Idempotency-Key: einen eindeutigen Wert mit 8–128 Zeichen je beabsichtigter Aktion, etwa eine UUID.

Bricht die Verbindung ab und Sie wiederholen die Anfrage mit demselben Schlüssel, liefert SNG das erste Ergebnis (mit Idempotent-Replayed: true), statt den Server zweimal neu zu starten. Derselbe Schlüssel mit anderem Body wird mit idempotency_key_reused abgelehnt.

Aktionen laufen asynchron. Eine 202-Antwort enthält einen Vorgang; fragen Sie GET /servers/{serverId}/operations/{operationId} ab, bis der Status succeeded, failed, timed_out oder outcome_unknown lautet. Die API meldet nie Erfolg, bevor der Server ihn bestätigt.

Ratenlimits

Jeder Token kann 120 Anfragen und 10 Aktionen pro Minute ausführen, ein Konto insgesamt 300 Anfragen pro Minute über alle Tokens. Jede Antwort meldet das engste geltende Budget:

RateLimit-LimitErlaubte Anfragen im Zeitfenster.
RateLimit-RemainingVerbleibende Anfragen im Zeitfenster.
RateLimit-ResetSekunden bis zum Zurücksetzen des Zeitfensters.
Retry-AfterNur bei 429: Sekunden bis zum nächsten Versuch.

Aktuelle und zwischengespeicherte Daten

Netzwerk- und Infrastrukturwerte werden einige Sekunden zwischengespeichert und zwischen Aufrufern geteilt, damit häufige Abfragen schnell bleiben und niemanden ausbremsen.

Sind Live-Daten kurzzeitig nicht verfügbar, liefert die API den letzten gültigen Wert mit meta.stale: true und meta.observedAt, statt fehlzuschlagen. Eine Ablehnung, etwa für einen Server, der Ihnen nicht mehr gehört, wird nie aus dem Zwischenspeicher beantwortet.

Fehler

Fehler verwenden stabile Codes, auf die sich Ihr Code verlassen kann. Die Meldung richtet sich an Menschen und kann sich ändern.

Error
{
  "error": {
    "code": "insufficient_scope",
    "message": "This API token does not have the network:read scope.",
    "requestId": "req_8f2kQ1mZx0aLr3Ts"
  }
}
HTTPCodeBedeutung
400validation_failedBody oder Parameter ungültig. fields nennt jedes Problem.
400idempotency_key_requiredEine Änderungsanfrage wurde ohne Idempotency-Key gesendet.
401unauthorizedDer Token fehlt, ist ungültig, abgelaufen oder widerrufen.
403insufficient_scopeDem Token fehlt die nötige Berechtigung.
403ip_not_allowedDie Anfrage kam von einer Adresse, die der Token nicht erlaubt.
403primary_owner_requiredDer Server wurde mit Ihnen geteilt; nur sein Eigentümer kann ihn ändern.
404not_foundServer, Adresse oder Vorgang existiert in diesem Konto nicht.
409action_unsupportedDieser Servertyp unterstützt die Anfrage nicht.
409idempotency_request_in_progressEine Anfrage mit diesem Schlüssel läuft noch.
422idempotency_key_reusedDer Schlüssel wurde bereits für eine andere Anfrage verwendet.
423service_lockedDer Dienst ist gesperrt.
429rate_limitedZu viele Anfragen. Warten Sie die Retry-After-Zeit ab.
502action_failedDer Server meldet, dass die Aktion fehlgeschlagen ist.
503outcome_unknownDie Aktion wurde gesendet, ihr Ergebnis konnte aber nicht bestätigt werden. Prüfen Sie den Server vor einem neuen Versuch.
503temporarily_unavailableBitte versuchen Sie es gleich erneut.
504action_timeoutDer Server hat die Aktion nicht rechtzeitig bestätigt.

API-Referenz

Konto

Token testen

GET/connect

Berechtigung Jeder gültige Token

Bestätigt, dass der Token funktioniert, und zeigt seine Berechtigungen. Benötigt keine Berechtigung.

Antwort 200

accountId
integer
token
object
token.name
string
token.type
string

personal_token reseller_token

token.scopes
string[]
sourceIp
string
apiVersion
string

v1

Fehler

400 401 403 404 429

curl -X GET "https://api.snghosting.com/api/v1/connect" \
  -H "Authorization: Bearer $SNG_API_TOKEN"
Beispielantwort
{
  "data": {
    "accountId": 0,
    "token": {
      "name": "game-01",
      "type": "personal_token",
      "scopes": [
        "string"
      ]
    },
    "sourceIp": "198.51.100.7",
    "apiVersion": "v1"
  }
}

Server

Server auflisten

GET/servers

Berechtigung servers:read

Alle VPS, VDS und dedizierten Server des Kontos, einschließlich geteilter Server.

Antwort 200

id
string

Server-ID aus GET /servers, z. B. vps_1_4021 oder ded_<uuid>.

type
string

vps vds dedicated

name
string
hostname
string oder null
status
string

Dienststatus. Aktionen werden nur im Status active angenommen.

active provisioning building suspended failed terminated

power
string

running stopped unknown

ipv4
string[]
ipv6
string[]
os
string oder null
resources
object
resources.cpuCores
number oder null
resources.memoryMb
number oder null
resources.storageGb
number oder null
resources.trafficGb
number oder null

Monatliches Traffic-Kontingent; null, wenn unbegrenzt.

accessRole
string

secondary bedeutet, dass der Server mit diesem Konto geteilt wurde: nur Lesezugriff.

primary secondary

serviceId
integer oder null

Dienst-ID in der SNG-Abrechnung.

createdAt
string oder null

Zeitstempel nach ISO 8601.

Fehler

400 401 403 404 429

curl -X GET "https://api.snghosting.com/api/v1/servers" \
  -H "Authorization: Bearer $SNG_API_TOKEN"
Beispielantwort
{
  "data": [
    {
      "id": "vps_1_4021",
      "type": "vps",
      "name": "game-01",
      "hostname": "game-01.example.com",
      "status": "active",
      "power": "running",
      "ipv4": [
        "string"
      ],
      "ipv6": [
        "string"
      ],
      "os": "Ubuntu 24.04",
      "resources": {
        "cpuCores": 0,
        "memoryMb": 0,
        "storageGb": 0,
        "trafficGb": 0
      },
      "accessRole": "primary",
      "serviceId": null,
      "createdAt": "2026-10-07T12:00:00.000Z"
    }
  ]
}

Server abrufen

GET/servers/{serverId}

Berechtigung servers:read

Enthält die Power-Aktionen, die dieser Token jetzt ausführen kann, und laufende Vorgänge.

Parameter

serverId Pfad · erforderlich
string

Server-ID aus GET /servers, z. B. vps_1_4021 oder ded_<uuid>.

Antwort 200

id
string

Server-ID aus GET /servers, z. B. vps_1_4021 oder ded_<uuid>.

type
string

vps vds dedicated

name
string
hostname
string oder null
status
string

Dienststatus. Aktionen werden nur im Status active angenommen.

active provisioning building suspended failed terminated

power
string

running stopped unknown

ipv4
string[]
ipv6
string[]
os
string oder null
resources
object
resources.cpuCores
number oder null
resources.memoryMb
number oder null
resources.storageGb
number oder null
resources.trafficGb
number oder null

Monatliches Traffic-Kontingent; null, wenn unbegrenzt.

accessRole
string

secondary bedeutet, dass der Server mit diesem Konto geteilt wurde: nur Lesezugriff.

primary secondary

serviceId
integer oder null

Dienst-ID in der SNG-Abrechnung.

createdAt
string oder null

Zeitstempel nach ISO 8601.

actions
string[]

Power-Aktionen, die dieser Token jetzt auf dem Server ausführen kann.

start shutdown power_off reboot reset

currentOperation
object oder null
currentOperation.id
string
currentOperation.serverId
string

Server-ID aus GET /servers, z. B. vps_1_4021 oder ded_<uuid>.

currentOperation.action
string
currentOperation.status
string

outcome_unknown bedeutet, dass die Anfrage gesendet, ihr Ergebnis aber nicht bestätigt wurde: Prüfen Sie den Serverstatus vor einem neuen Versuch.

queued running succeeded failed timed_out outcome_unknown

currentOperation.message
string oder null
currentOperation.requestedAt
string oder null

Zeitstempel nach ISO 8601.

currentOperation.completedAt
string oder null

Zeitstempel nach ISO 8601.

Fehler

400 401 403 404 429

curl -X GET "https://api.snghosting.com/api/v1/servers/vps_1_4021" \
  -H "Authorization: Bearer $SNG_API_TOKEN"
Beispielantwort
{
  "data": {
    "id": "vps_1_4021",
    "type": "vps",
    "name": "game-01",
    "hostname": "game-01.example.com",
    "status": "active",
    "power": "running",
    "ipv4": [
      "string"
    ],
    "ipv6": [
      "string"
    ],
    "os": "Ubuntu 24.04",
    "resources": {
      "cpuCores": 0,
      "memoryMb": 0,
      "storageGb": 0,
      "trafficGb": 0
    },
    "accessRole": "primary",
    "serviceId": null,
    "createdAt": "2026-10-07T12:00:00.000Z",
    "actions": [
      "start"
    ],
    "currentOperation": {
      "id": "q48211",
      "serverId": "vps_1_4021",
      "action": "reboot",
      "status": "queued",
      "message": null,
      "requestedAt": "2026-10-07T12:00:00.000Z",
      "completedAt": null
    }
  }
}

Auslastung abrufen

GET/servers/{serverId}/metrics

Berechtigung servers:read

CPU, Arbeitsspeicher, Datenträger und monatlicher Traffic. Dedizierte Server melden die Auslastung über den SNG-Agent.

Parameter

serverId Pfad · erforderlich
string

Server-ID aus GET /servers, z. B. vps_1_4021 oder ded_<uuid>.

Antwort 200

sampledAt
string oder null

Zeitstempel nach ISO 8601.

cpuPercent
number oder null
memory
object oder null
memory.totalBytes
number
memory.usedBytes
number
memory.usagePercent
number oder null
storage
object[]
storage.mount
string
storage.totalBytes
number
storage.usedBytes
number
storage.usagePercent
number oder null
bandwidth
object oder null

Im aktuellen Abrechnungsmonat genutzter Traffic, sofern der Server ihn meldet.

bandwidth.usedBytes
number
bandwidth.limitBytes
number oder null

Fehler

400 401 403 404 429

curl -X GET "https://api.snghosting.com/api/v1/servers/vps_1_4021/metrics" \
  -H "Authorization: Bearer $SNG_API_TOKEN"
Beispielantwort
{
  "data": {
    "sampledAt": "2026-10-07T12:00:00.000Z",
    "cpuPercent": 0,
    "memory": {
      "totalBytes": 0,
      "usedBytes": 0,
      "usagePercent": 0
    },
    "storage": [
      {
        "mount": "/",
        "totalBytes": 0,
        "usedBytes": 0,
        "usagePercent": 0
      }
    ],
    "bandwidth": {
      "usedBytes": 0,
      "limitBytes": 0
    }
  }
}

Power-Aktion ausführen

POST/servers/{serverId}/actions

Berechtigung servers:power

start und reboot benötigen servers:power; shutdown, power_off und reset zusätzlich servers:control. Startet die Aktion und liefert einen Vorgang. 202 bedeutet, dass sie noch läuft: Fragen Sie GET /servers/{serverId}/operations/{operationId} ab, bis ein Endstatus erreicht ist. Die API meldet nie Erfolg, bevor der Server ihn bestätigt.

Parameter

serverId Pfad · erforderlich
string

Server-ID aus GET /servers, z. B. vps_1_4021 oder ded_<uuid>.

Idempotency-Key Header · erforderlich
string

Ein eindeutiger Wert je beabsichtigter Aktion (8–128 Zeichen). Eine Wiederholung mit demselben Schlüssel liefert das erste Ergebnis, statt die Aktion erneut auszuführen.

Request-Body

action
string

shutdown und reboot wenden sich an das Betriebssystem; power_off und reset wirken sofort auf die Hardware.

start shutdown power_off reboot reset

Antwort 202

operation
object
operation.id
string
operation.serverId
string

Server-ID aus GET /servers, z. B. vps_1_4021 oder ded_<uuid>.

operation.action
string
operation.status
string

outcome_unknown bedeutet, dass die Anfrage gesendet, ihr Ergebnis aber nicht bestätigt wurde: Prüfen Sie den Serverstatus vor einem neuen Versuch.

queued running succeeded failed timed_out outcome_unknown

operation.message
string oder null
operation.requestedAt
string oder null

Zeitstempel nach ISO 8601.

operation.completedAt
string oder null

Zeitstempel nach ISO 8601.

Fehler

400 401 403 404 409 422 423 429 502 503 504

curl -X POST "https://api.snghosting.com/api/v1/servers/vps_1_4021/actions" \
  -H "Authorization: Bearer $SNG_API_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"action":"reboot"}'
Beispielantwort
{
  "data": {
    "operation": {
      "id": "q48211",
      "serverId": "vps_1_4021",
      "action": "reboot",
      "status": "queued",
      "message": null,
      "requestedAt": "2026-10-07T12:00:00.000Z",
      "completedAt": null
    }
  }
}

Vorgang abrufen

GET/servers/{serverId}/operations/{operationId}

Berechtigung servers:read

Parameter

serverId Pfad · erforderlich
string

Server-ID aus GET /servers, z. B. vps_1_4021 oder ded_<uuid>.

operationId Pfad · erforderlich
string

Von einer Aktion gelieferte Vorgangs-ID.

Antwort 200

id
string
serverId
string

Server-ID aus GET /servers, z. B. vps_1_4021 oder ded_<uuid>.

action
string
status
string

outcome_unknown bedeutet, dass die Anfrage gesendet, ihr Ergebnis aber nicht bestätigt wurde: Prüfen Sie den Serverstatus vor einem neuen Versuch.

queued running succeeded failed timed_out outcome_unknown

message
string oder null
requestedAt
string oder null

Zeitstempel nach ISO 8601.

completedAt
string oder null

Zeitstempel nach ISO 8601.

Fehler

400 401 403 404 429

curl -X GET "https://api.snghosting.com/api/v1/servers/vps_1_4021/operations/q48211" \
  -H "Authorization: Bearer $SNG_API_TOKEN"
Beispielantwort
{
  "data": {
    "id": "q48211",
    "serverId": "vps_1_4021",
    "action": "reboot",
    "status": "queued",
    "message": null,
    "requestedAt": "2026-10-07T12:00:00.000Z",
    "completedAt": null
  }
}

Netzwerk

IP-Adressen auflisten

GET/servers/{serverId}/ips

Berechtigung network:read

Parameter

serverId Pfad · erforderlich
string

Server-ID aus GET /servers, z. B. vps_1_4021 oder ded_<uuid>.

Antwort 200

address
string
version
string

ipv4 ipv6

primary
boolean

Fehler

400 401 403 404 429

curl -X GET "https://api.snghosting.com/api/v1/servers/vps_1_4021/ips" \
  -H "Authorization: Bearer $SNG_API_TOKEN"
Beispielantwort
{
  "data": [
    {
      "address": "203.0.113.20",
      "version": "ipv4",
      "primary": true
    }
  ]
}

IP-Einstellungen abrufen

GET/servers/{serverId}/ips/{ip}

Berechtigung network:read

Reverse DNS, Beschreibung und DDoS-Schutzmodus einer Adresse.

Parameter

serverId Pfad · erforderlich
string

Server-ID aus GET /servers, z. B. vps_1_4021 oder ded_<uuid>.

ip Pfad · erforderlich
string · ipv4

Eine dem Server zugewiesene IPv4-Adresse.

Antwort 200

address
string
rdns
string oder null
description
string oder null
protection
object oder null

DDoS-Schutzmodus. dynamic filtert nur während eines Angriffs, permanent dauerhaft. Auf Layer 7 filtert only ausschließlich Web-Traffic.

protection.layer4
string

dynamic permanent

protection.layer7
string

off permanent only

editable
object
editable.rdns
boolean
editable.description
boolean
editable.protection
boolean

Fehler

400 401 403 404 429 503

curl -X GET "https://api.snghosting.com/api/v1/servers/ded_6a4b2a40-6d0e-4c1b-9c1d-1c7c8f3f0a11/ips/203.0.113.20" \
  -H "Authorization: Bearer $SNG_API_TOKEN"
Beispielantwort
{
  "data": {
    "address": "203.0.113.20",
    "rdns": "mail.example.com",
    "description": "Game server",
    "protection": {
      "layer4": "dynamic",
      "layer7": "off"
    },
    "editable": {
      "rdns": true,
      "description": true,
      "protection": true
    }
  }
}

IP-Einstellungen ändern

PATCH/servers/{serverId}/ips/{ip}

Berechtigung network:write

Reverse DNS, Beschreibung oder DDoS-Schutzmodus einer Adresse eines dedizierten Servers ändern. Eine Änderung pro Anfrage.

Parameter

serverId Pfad · erforderlich
string

Server-ID aus GET /servers, z. B. vps_1_4021 oder ded_<uuid>.

ip Pfad · erforderlich
string · ipv4

Eine dem Server zugewiesene IPv4-Adresse.

Idempotency-Key Header · erforderlich
string

Ein eindeutiger Wert je beabsichtigter Aktion (8–128 Zeichen). Eine Wiederholung mit demselben Schlüssel liefert das erste Ergebnis, statt die Aktion erneut auszuführen.

Request-Body

Genau eine Änderung pro Anfrage: rdns, description oder protection.

Eines von · 1
rdns
string
Eines von · 2
description
string
Eines von · 3
protection
object
protection.layer4
string

dynamic permanent

protection.layer7
string

off permanent only

Antwort 200

address
string
rdns
string oder null
description
string oder null
protection
object oder null

DDoS-Schutzmodus. dynamic filtert nur während eines Angriffs, permanent dauerhaft. Auf Layer 7 filtert only ausschließlich Web-Traffic.

protection.layer4
string

dynamic permanent

protection.layer7
string

off permanent only

editable
object
editable.rdns
boolean
editable.description
boolean
editable.protection
boolean

Fehler

400 401 403 404 409 422 423 429 503

curl -X PATCH "https://api.snghosting.com/api/v1/servers/ded_6a4b2a40-6d0e-4c1b-9c1d-1c7c8f3f0a11/ips/203.0.113.20" \
  -H "Authorization: Bearer $SNG_API_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"rdns":"mail.example.com"}'
Beispielantwort
{
  "data": {
    "address": "203.0.113.20",
    "rdns": "mail.example.com",
    "description": "Game server",
    "protection": {
      "layer4": "dynamic",
      "layer7": "off"
    },
    "editable": {
      "rdns": true,
      "description": true,
      "protection": true
    }
  }
}

Traffic abrufen

GET/servers/{serverId}/traffic

Berechtigung network:read

Dedizierte Server liefern die Port-Raten der letzten 24 Stunden in Mbps (kind: rates). VPS liefern den Transfer pro Abrechnungsmonat (kind: monthly).

Parameter

serverId Pfad · erforderlich
string

Server-ID aus GET /servers, z. B. vps_1_4021 oder ded_<uuid>.

Antwort 200

Eines von · 1
kind
string

rates

from
string

Zeitstempel nach ISO 8601.

to
string

Zeitstempel nach ISO 8601.

totals
object oder null

Transfervolumen im Zeitfenster.

totals.incomingGb
number
totals.outgoingGb
number
interfaces
object[]
interfaces.incoming
object[]
interfaces.incoming.time
string

Zeitstempel nach ISO 8601.

interfaces.incoming.mbps
number
interfaces.outgoing
object[]
interfaces.outgoing.time
string

Zeitstempel nach ISO 8601.

interfaces.outgoing.mbps
number
Eines von · 2
kind
string

monthly

months
object[]
months.start
string

Zeitstempel nach ISO 8601.

months.end
string

Zeitstempel nach ISO 8601.

months.rxBytes
number
months.txBytes
number
months.totalBytes
number
months.limitGb
number oder null

Fehler

400 401 403 404 429 503

curl -X GET "https://api.snghosting.com/api/v1/servers/vps_1_4021/traffic" \
  -H "Authorization: Bearer $SNG_API_TOKEN"
Beispielantwort
{
  "data": {
    "kind": "rates",
    "from": "string",
    "to": "string",
    "totals": {
      "incomingGb": 0,
      "outgoingGb": 0
    },
    "interfaces": [
      {
        "incoming": [
          {
            "time": "string",
            "mbps": 0
          }
        ],
        "outgoing": [
          {
            "time": "string",
            "mbps": 0
          }
        ]
      }
    ]
  }
}

DDoS-Schutz

DDoS-Schutz und Angriffe

GET/servers/{serverId}/ddos

Berechtigung network:read

Schutzstatus und letzte Angriffe für eine Adresse des Servers (standardmäßig die primäre Adresse).

Parameter

serverId Pfad · erforderlich
string

Server-ID aus GET /servers, z. B. vps_1_4021 oder ded_<uuid>.

ip Query
string · ipv4

Zu prüfende Adresse.

Antwort 200

address
string oder null
status
string

protected unavailable

incidents
object[]
incidents.id
string
incidents.startedAt
string

Zeitstempel nach ISO 8601.

incidents.endedAt
string oder null

Zeitstempel nach ISO 8601.

incidents.durationSeconds
number oder null
incidents.peak
string oder null

Spitzenrate des Angriffs, z. B. 12.4 Gbps.

incidents.attackTypes
string[]
totalIncidents
integer
addresses
string[]

Alle Adressen des Servers, die Sie mit ip abfragen können.

Fehler

400 401 403 404 429 503

curl -X GET "https://api.snghosting.com/api/v1/servers/vps_1_4021/ddos" \
  -H "Authorization: Bearer $SNG_API_TOKEN"
Beispielantwort
{
  "data": {
    "address": "203.0.113.20",
    "status": "protected",
    "incidents": [
      {
        "id": "vps_1_4021",
        "startedAt": "2026-10-07T12:00:00.000Z",
        "endedAt": null,
        "durationSeconds": null,
        "peak": "12.4 Gbps",
        "attackTypes": [
          "string"
        ]
      }
    ],
    "totalIncidents": 0,
    "addresses": [
      "string"
    ]
  }
}

DDoS-Filterregeln auflisten

GET/servers/{serverId}/ips/{ip}/ddos/rules

Berechtigung network:read

Filterregeln für eine Adresse eines dedizierten Servers.

Parameter

serverId Pfad · erforderlich
string

Server-ID aus GET /servers, z. B. vps_1_4021 oder ded_<uuid>.

ip Pfad · erforderlich
string · ipv4

Eine dem Server zugewiesene IPv4-Adresse.

Antwort 200

address
string
available
boolean
rules
object[]
rules.protocol
string
rules.port
number
rules.state
string

Fehler

400 401 403 404 429 503

curl -X GET "https://api.snghosting.com/api/v1/servers/ded_6a4b2a40-6d0e-4c1b-9c1d-1c7c8f3f0a11/ips/203.0.113.20/ddos/rules" \
  -H "Authorization: Bearer $SNG_API_TOKEN"
Beispielantwort
{
  "data": {
    "address": "203.0.113.20",
    "available": true,
    "rules": [
      {
        "protocol": "tcp",
        "port": 30120,
        "state": "string"
      }
    ]
  }
}

Firewall

Firewall-Regelsätze auflisten

GET/firewall/rulesets

Berechtigung network:read

Regelsätze, die auf eine VPS-Firewall angewendet werden können.

Antwort 200

id
integer
name
string

Fehler

400 401 403 404 429

curl -X GET "https://api.snghosting.com/api/v1/firewall/rulesets" \
  -H "Authorization: Bearer $SNG_API_TOKEN"
Beispielantwort
{
  "data": [
    {
      "id": 0,
      "name": "game-01"
    }
  ]
}

VPS-Firewall abrufen

GET/servers/{serverId}/firewall

Berechtigung network:read

Parameter

serverId Pfad · erforderlich
string

Server-ID aus GET /servers, z. B. vps_1_4021 oder ded_<uuid>.

Antwort 200

enabled
boolean
rulesets
integer[]

IDs der angewendeten Regelsätze.

Fehler

400 401 403 404 429

curl -X GET "https://api.snghosting.com/api/v1/servers/vps_1_4021/firewall" \
  -H "Authorization: Bearer $SNG_API_TOKEN"
Beispielantwort
{
  "data": {
    "enabled": true,
    "rulesets": [
      0
    ]
  }
}

VPS-Firewall ändern

PUT/servers/{serverId}/firewall

Berechtigung network:write

Firewall ein- oder ausschalten und die angewendeten Regelsätze wählen.

Parameter

serverId Pfad · erforderlich
string

Server-ID aus GET /servers, z. B. vps_1_4021 oder ded_<uuid>.

Idempotency-Key Header · erforderlich
string

Ein eindeutiger Wert je beabsichtigter Aktion (8–128 Zeichen). Eine Wiederholung mit demselben Schlüssel liefert das erste Ergebnis, statt die Aktion erneut auszuführen.

Request-Body

enabled optional
boolean
rulesets optional
integer[]

Antwort 200

enabled
boolean
rulesets
integer[]

IDs der angewendeten Regelsätze.

Fehler

400 401 403 404 409 422 429

curl -X PUT "https://api.snghosting.com/api/v1/servers/vps_1_4021/firewall" \
  -H "Authorization: Bearer $SNG_API_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true,"rulesets":[3]}'
Beispielantwort
{
  "data": {
    "enabled": true,
    "rulesets": [
      0
    ]
  }
}

Mit Ihrem Token ausprobieren