v1.0 shipped · 50 endpoints live across auth, account, billing, catalog, servers, ssh-keys, webhooks, transparency, agents and OAuth. · v1.1 roadmap (snapshots, networking, storage, SDKs, CLI) is tracked below. · Native MCP server at /agents/.
Das NordBastion-Polarbär-Maskottchen sitzt an einem taktischen Mission-Control-Arbeitsplatz mit schwebenden holographischen Terminal-Monitoren, die cyan-Code zeigen, einer mechanischen Tastatur mit cyan-beleuchteten Keycaps und dem cyan-N-Schild, der daneben lehnt, in einem freiliegenden nordischen Steinkonsolen-Raum mit einem aurora-beleuchteten Fenster
API.v1 · REST · 70+ Endpunkte · 5 SDKs

NordBastion per Code betreiben.
KYC-frei, krypto-bezahlt, vollständig skriptierbar.

Server bereitstellen, Snapshots erstellen, in Kryptowährung aufladen, Ping von jeder Bastion ausführen. Jede Panel-Aktion hat einen REST-Endpunkt und vier SDKs. Dieselbe Identitätsgrundlage wie das Panel: eine E-Mail und ein Passwort, nichts mehr.

Version
v1
Endpunkte
70+
SDKs
4 + CLI
Bastionen
4 Nordic
Ratenlimit
1000/min read
KYC
Keine
Schnellstart

Drei Schritte von einem registrierten Konto zu einem gestarteten Server per Code.

01 Create an account

POST /v1/auth/register

Email + password, no KYC. Returns a 24-hour access token straight away — no email confirmation step.

curl -sS https://nordbastion.com/v1/auth/register \
  -H "Content-Type: application/json" \
  -d '{"email":"[email protected]","password":"••••••••••••"}'
02 In Krypto aufladen

POST /v1/billing/topups

Open a per-coin invoice. The response carries a deposit address, QR code and expiry timestamp.

amount_usd muss zwischen $30 und $10,000 liegen (serverseitig erzwungen). Niedrigere Werte geben HTTP 422 amount_too_low zurück, höhere geben amount_too_high zurück.

curl -sS https://nordbastion.com/v1/billing/topups \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"amount_usd":50,"coin":"xmr"}'
03 Einen Server bereitstellen

POST /v1/servers

Pick a tier (service_code), a bastion and an image. Server is booted with SSH in about ninety seconds.

curl -sS https://nordbastion.com/v1/servers \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"service_code":"NB-V3","bastion":"STO","image":"debian-12"}'
SDKs & CLI

Vier Sprachen, ein Binary.

Jedes SDK ist MIT-lizenziert, quelloffen, semver-stabil ab v1.0. Alle teilen dieselbe authentifizierte Client-Schnittstelle — Server auflisten, in jeder Sprache.

Planned for v1.1

These SDKs are planned for v1.1. The REST API at /v1/* is fully usable from any HTTP client today — see the agents page for cURL and MCP examples.

Python
pip
pip install nordbastion
from nordbastion import Client
nb = Client(api_key="nb_live_••••")

for s in nb.servers.list():
    print(s.id, s.name, s.status)
TypeScript
npm
npm i @nordbastion/api
import { NordBastion } from '@nordbastion/api';
const nb = new NordBastion({ apiKey: 'nb_live_••••' });

const servers = await nb.servers.list();
servers.forEach(s => console.log(s.id, s.name, s.status));
Go
go install
go get go.nordbastion.com/api
import nb "go.nordbastion.com/api"

c := nb.New(nb.WithAPIKey("nb_live_••••"))
servers, _ := c.Servers.List(ctx)
for _, s := range servers {
    fmt.Println(s.ID, s.Name, s.Status)
}
Rust
cargo
cargo add nordbastion
use nordbastion::Client;
let nb = Client::builder()
    .api_key("nb_live_••••").build()?;

for s in nb.servers().list().await? {
    println!("{} {} {}", s.id, s.name, s.status);
}
CLI · nb
Planned for v1.1
curl -sSL https://get.nordbastion.com | sh
nb auth login --api-key nb_live_••••
nb servers list
nb servers create --tier NB-V3 --bastion STO
nb servers snap NB-srv-1234 --name pre-upgrade
Curl-first

Die REST API funktioniert mit jedem HTTP-Client. JSON-Anfrage- und Antwort-Bodies, JWT-Bearer oder bereichsbeschränkter API-Schlüssel, signierte Webhook-Payloads. Kein SDK-Lock-in.

curl -H "Authorization: Bearer nb_live_••••" https://nordbastion.com/v1/servers
Endpunktreferenz

70+ Endpunkte über zwölf Ressourcengruppen.

Authentication · 14 endpoints

POST /v1/auth/register LIVE
POST /v1/auth/login LIVE
POST /v1/auth/login/totp LIVE
POST /v1/auth/token/refresh LIVE
POST /v1/auth/recover LIVE
GET /v1/auth/sessions LIVE
DELETE /v1/auth/sessions/{token_id} LIVE
POST /v1/auth/totp/setup LIVE
POST /v1/auth/totp/enable LIVE
POST /v1/auth/totp/disable LIVE
POST /v1/auth/password LIVE
POST /v1/auth/api-keys LIVE
GET /v1/auth/api-keys LIVE
DELETE /v1/auth/api-keys/{key_id} LIVE

Account · 5 endpoints

GET /v1/account LIVE
PATCH /v1/account LIVE
GET /v1/account/balance LIVE
GET /v1/account/usage LIVE
GET /v1/account/audit-log LIVE

Billing & crypto top-ups · 8 endpoints

POST /v1/billing/topups LIVE
GET /v1/billing/topups LIVE
GET /v1/billing/topups/{order_number} LIVE
POST /v1/billing/topups/{order_number}/cancel LIVE
GET /v1/billing/bonus-tiers LIVE
GET /v1/billing/coins LIVE
GET /v1/billing/invoices PLANNED roadmap
GET /v1/billing/invoices/{id} PLANNED roadmap

Catalogue · 7 endpoints

GET /v1/catalog LIVE
GET /v1/catalog/vps LIVE
GET /v1/catalog/dedicated LIVE
GET /v1/catalog/bastions LIVE
GET /v1/catalog/images LIVE
GET /v1/catalog/{code} LIVE
GET /v1/catalog/iso PLANNED roadmap

Servers · 14 endpoints

POST /v1/servers LIVE
GET /v1/servers LIVE
GET /v1/servers/{order_number} LIVE
PATCH /v1/servers/{order_number} LIVE
DELETE /v1/servers/{order_number} LIVE
POST /v1/servers/{id}/power PLANNED roadmap
POST /v1/servers/{id}/reinstall PLANNED roadmap
POST /v1/servers/{id}/rescue PLANNED roadmap
POST /v1/servers/{id}/resize PLANNED roadmap
POST /v1/servers/{id}/migrate PLANNED roadmap
POST /v1/servers/{id}/password-reset PLANNED roadmap
GET /v1/servers/{id}/metrics PLANNED roadmap
GET /v1/servers/{id}/console PLANNED roadmap
GET /v1/servers/{id}/serial PLANNED roadmap

Snapshots · 5 endpoints

POST /v1/servers/{id}/snapshots PLANNED roadmap
GET /v1/servers/{id}/snapshots PLANNED roadmap
POST /v1/servers/{id}/snapshots/{snapId}/restore PLANNED roadmap
DELETE /v1/servers/{id}/snapshots/{snapId} PLANNED roadmap
POST /v1/servers/{id}/snapshots/{snapId}/export PLANNED roadmap

SSH keys · 4 endpoints

POST /v1/ssh-keys LIVE
GET /v1/ssh-keys LIVE
GET /v1/ssh-keys/{id} LIVE
DELETE /v1/ssh-keys/{id} LIVE

Networking · 8 endpoints

GET /v1/networking/ips PLANNED roadmap
POST /v1/networking/ips/floating PLANNED roadmap
POST /v1/networking/rdns PLANNED roadmap
POST /v1/networking/firewall PLANNED roadmap
GET /v1/networking/firewall PLANNED roadmap
POST /v1/networking/private-network PLANNED roadmap
POST /v1/networking/byoip PLANNED roadmap
POST /v1/networking/lookingglass PLANNED roadmap

Storage · 5 endpoints

POST /v1/storage/volumes PLANNED roadmap
GET /v1/storage/volumes PLANNED roadmap
POST /v1/storage/volumes/{id}/attach PLANNED roadmap
POST /v1/storage/volumes/{id}/detach PLANNED roadmap
POST /v1/storage/volumes/{id}/resize PLANNED roadmap

Images & templates · 3 endpoints

POST /v1/images/iso/upload PLANNED roadmap
POST /v1/images/templates PLANNED roadmap
GET /v1/images/templates PLANNED roadmap

Webhooks · 4 endpoints

POST /v1/webhooks LIVE
GET /v1/webhooks LIVE
DELETE /v1/webhooks/{id} LIVE
POST /v1/webhooks/{id}/test LIVE

Transparency · 4 endpoints

GET /v1/transparency/canary LIVE
GET /v1/transparency/peering LIVE
GET /v1/transparency/status LIVE
GET /v1/transparency/incidents PLANNED roadmap

Agents directory · 2 endpoints

GET /v1/agents/directory LIVE
POST /v1/agents/directory LIVE

OAuth 2.1 / DCR · 4 endpoints

POST /v1/oauth/register LIVE
POST /v1/oauth/token LIVE
POST /v1/oauth/revoke LIVE
GET /v1/oauth/introspect LIVE

Alle Endpunkte folgen JSON ein / JSON aus, Paginierung durch ?page= & ?per_page=, Filterung durch ?filter[field]= und Feldauswahl durch ?fields=. Jede Anfrage kann einen Idempotency-Key-Header tragen.

Authentifizierung

Drei Arten von Zugangsdaten, zwei Datenschutzmodi.

Bearer-Token LIVE

E-Mail + Passwort · JWT · 24-Stunden-Ablauf

Kurzlebiges JWT, ausgestellt durch POST /v1/auth/login. Enthält Scope-Claims und eine Sitzungs-Revokations-ID. Über /v1/auth/token/refresh für 30 Tage erneuerbar.

Authorization: Bearer eyJhbGciOi••••
Bereichsbeschränkter API-Schlüssel LIVE

Langlebig · begrenzt · widerruflich

Bereiche: read-only, billing-read, billing-write, servers-read, servers-write, full. Optionale IP-Allowlist (CIDR), optionales Ablaufdatum. Empfohlen für CI- und Infrastruktur-Skripte.

Authorization: Bearer nb_live_3f9c2a••••
Mutual TLS Planned v1.1

Client-Zertifikat · Unternehmen / Compliance

Ein mTLS-Client-Zertifikat an einen API-Schlüssel anheften. Anfragen, die das falsche Client-Zertifikat präsentieren, werden auf der TLS-Schicht abgelehnt, bevor Anwendungslogik ausgeführt wird. Auf Anfrage über das Panel verfügbar.

curl --cert client.pem --key client.key https://nordbastion.com/v1/servers
PGP-signierte Antworten Planned v1.1

Opt-in abgetrennte Signatur · offline verifizierbar

X-NB-Sign: 1 bei jeder Anfrage setzen. Der Antwort-Body wird mit einer losgelösten PGP-Klartextsignatur unter Verwendung des NordBastion-Schlüssels verpackt (Fingerabdruck unter /pgp/). Wird von Compliance-Pipelines verwendet, die der TLS-Kette allein misstrauen.

curl -H "X-NB-Sign: 1" -H "Authorization: Bearer ..." https://nordbastion.com/v1/transparency/canary

NordBastion erfasst bei der Registrierung keine Identität, und die API ändert diese Grundlage nicht. Es gibt keinen SMS-Verifizierungs-Webhook, keinen E-Mail-Bestätigungsfluss, keinen Endpunkt zum Hochladen von Identitätsdokumenten. Die API exponiert Geld, Maschinen und Metadaten — das ist die gesamte Oberfläche.

Ratenlimits

Pro Schlüssel, veröffentlicht pro Minute

Lesezugriff-Endpunkte
1000 / min
Schreibzugriff-Endpunkte
100 / min
Auth-sensibel
10 / min
429-Wiederholung
Retry-After

Jede Antwort trägt X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset. Höhere Stufen sind auf Anfrage über das Panel verfügbar.

Versionierung

Zwölf-Monats-Deprecation-Untergrenze

Endpunkte sind URL-versioniert unter /v1/. Breaking Changes werden nur in einer neuen Hauptversion veröffentlicht. Die vorherige Hauptversion wird mindestens zwölf Monate unterstützt. Veraltete Endpunkte tragen Sunset- und Deprecation-Antwort-Header.

Sunset: Wed, 01 Jul 2027 00:00:00 GMT Deprecation: true
Fehlerformat

Stabiler Umschlag, maschinenlesbarer Code

{
  "error": {
    "type":    "invalid_request",
    "code":    "invalid_bastion",
    "message": "Unknown bastion 'mxp'.",
    "request_id": "req_2VqK8e...",
    "doc_url": "https://nordbastion.com/api/#errors"
  }
}
Webhooks

Signierte Events, mit Backoff wiederholt.

Jede Event-Nutzlast ist HMAC-signiert mit Ihrem Webhook-Geheimnis. Drei Wiederholungsversuche mit exponentiellem Backoff über eine Stunde, dann verworfen. Testlieferungen verfügbar über POST /v1/webhooks/{id}/test.

account.balance.low

Balance dropped below the configured threshold.

topup.created

Crypto top-up address generated, waiting for first confirmation.

topup.confirmed

Top-up settled on-chain. Balance credited.

topup.failed

Top-up address expired without confirmation.

invoice.issued

Monthly invoice issued. PDF + PGP-signed PDF available.

server.provisioning

Provisioning started — image being written.

server.provisioned

Server is booted and reachable on SSH.

server.power.on

Server powered on (manual or scheduled).

server.power.off

Server powered off (manual or scheduled).

server.reinstalled

OS reinstalled. Root password rotated.

server.resized

VPS tier changed. Applied on the next reboot.

server.migrated

Server moved to another bastion via snapshot redeploy.

server.deleted

Server terminated. Pro-rated credit returned.

snapshot.created

Snapshot completed and is downloadable.

snapshot.restored

Snapshot restored in place.

snapshot.deleted

Snapshot removed.

volume.attached

Block volume attached to a server.

volume.detached

Block volume detached.

firewall.changed

Firewall ruleset applied to one or more servers.

canary.updated

Warrant canary reaffirmed (first of every month).

incident.opened

Operational incident opened on a bastion or shared service.

incident.resolved

Operational incident closed.

peering.changed

AS213232 peering or prefix announcement updated.

Transparenz-Endpunkte

Programmatischer Zugang zum Canary, dem Incident-Log, dem Peering-Eintrag.

Die meisten Cloud-APIs exponieren Produkte und Abrechnung. NordBastion exponiert auch seine eigene Transparenzoberfläche — programmatisch. Derselbe Warrant Canary, der unter /warrant-canary/ veröffentlicht ist, ist als signierte JSON-Nutzlast unter /v1/transparency/canary verfügbar. Dieselbe Incident-Geschichte, die /status/ antreibt, ist unter /v1/transparency/incidents. Derselbe Peering-Eintrag, der unter /peering/ lebt, ist unter /v1/transparency/peering. Dieselben AS213232-Präfixankündigungen sind in Echtzeit abfragbar.

Den canary.updated-Webhook abonnieren und Sie erhalten am ersten Tag jedes Monats eine Push-Benachrichtigung — wenn er aufhört zu feuern, ist der Canary gebrochen, und Sie wissen es ohne Polling. Den Alert selbst aufbauen, in Ihrer eigenen Infrastruktur, mit der kryptographischen Signatur, die Sie offline gegen den veröffentlichten PGP-Schlüssel verifizieren können.

Das ist der Teil der API, den keine kommerzielle Cloud hat, weil keine kommerzielle Cloud die Doktrin hat, ihn zu untermauern.

FAQ · API

Entwicklerfragen, beantwortet.

Die Fragen, die ein Entwickler stellt, bevor er Infrastruktur der API eines Hosts anvertraut.

Gibt es wirklich eine API und ist sie KYC-frei?

Ja — jede Aktion, die Sie im Kontrollpanel durchführen können, hat heute oder auf der veröffentlichten Roadmap ein API-Äquivalent, und die API selbst ist durch dasselbe authentifizierte Panel-Konto geschützt: eine E-Mail-Adresse und ein Passwort. Für den Erhalt oder die Verwendung von API-Zugangsdaten ist keine Identitätsverifizierung erforderlich.

Welche Programmiersprachen haben offizielle SDKs?

Vier offizielle SDKs und eine CLI. Python (pip install nordbastion), TypeScript / Node (npm install @nordbastion/api), Go (go install go.nordbastion.com/cli/nb@latest), Rust (cargo add nordbastion) und eine Single-Binary plattformübergreifende CLI (nb) installierbar via curl. Alle SDKs sind MIT-lizenziert und quelloffen.

Kann ich mein Guthaben per Code in Kryptowährung aufladen?

Ja. POST /v1/billing/topups erstellt eine Auflade-Absicht und gibt eine münzenspezifische Zieladresse, einen QR-Code und einen Ablaufzeitstempel zurück. Wenn das Netzwerk die Zahlung bestätigt, wird Ihr Prepaid-Guthaben automatisch gutgeschrieben und ein topup.confirmed-Webhook feuert. Zwölf Kryptowährungen werden unterstützt, aufgelistet unter /v1/billing/coins.

Sind die API-Endpunkte über Tor erreichbar?

Der Clearnet-Endpunkt api.nordbastion.com ist heute Tor-freundlich ohne spezielle Ratenlimits oder Anti-Tor-Blockierung. Ein v3-Onion-Mirror der API-Oberfläche steht auf der Panel-Roadmap und wird bei der Auslieferung dasselbe TLS-zertifizierte Material über Onion-Location-Antwort-Header teilen.

Was bedeutet „PGP-signierte Antworten”?

Sie können Ihren API-Schlüssel für PGP-signierte Antwort-Bodies aktivieren. Jede JSON-Antwort wird mit einer losgelösten Klartext-PGP-Signatur unter Verwendung des NordBastion-Schlüssels verpackt (Fingerabdruck unter /pgp/). Die Verpackung ist offline verifizierbar und nützlich für Compliance und Quell-Attestierung in Umgebungen, die der TLS-Kette allein misstrauen.

Wie werden Rate-Limits durchgesetzt?

Pro API-Schlüssel. Die veröffentlichte Basislinie ist 1000 Leseanfragen pro Minute und 100 Schreibanfragen pro Minute, plus 10 Anfragen pro Minute an auth-sensiblen Endpunkten (Anmeldung, Passwort-Zurücksetzung, Schlüsselerstellung). Jede Antwort trägt X-RateLimit-Limit-, X-RateLimit-Remaining- und X-RateLimit-Reset-Header; 429-Antworten enthalten einen Retry-After-Header. Verifizierte Entwicklerkonten können höhere Stufen vom Panel anfordern.

Wie funktioniert die Versionierung?

Endpunkte sind URL-versioniert unter /v1/. Breaking Changes werden nur in einer neuen Hauptversion (/v2/, /v3/) veröffentlicht, und die vorherige Hauptversion wird mindestens zwölf Monate nach der Veröffentlichung der nächsten unterstützt. Veraltete Endpunkte tragen einen Sunset-Header mit dem Abschaltzeitpunkt und einen Deprecation: true-Header bei jeder Antwort.

Warum ist das Audit-Log Opt-in?

Weil die NordBastion-Doktrin besagt, dass wir nur das protokollieren, was wir müssen. Operative Anfragemetriken leben für das rollende Fenster, das der Rate-Limiter benötigt, und verfallen dann; ein pro-Kunden-Audit-Log von API-Aktionen sind mehr Daten als wir zum Betrieb der Plattform benötigen, daher ist es standardmäßig deaktiviert. Kunden, die es wollen, können /v1/account/audit-log aktivieren; einmal aktiviert, deckt es Panel + API gleichermaßen ab und kann exportiert werden.

Bereit zum Scripting

Einen API-Schlüssel vom Panel holen.

Dieselbe E-Mail-und-Passwort-Grundlage wie das Panel. Keine Identitätsprüfung. In Krypto zahlen. Einen Stockholm-, Helsinki-, Oslo- oder Reykjavík-Server in etwa neunzig Sekunden booten.

Basis-URL · https://nordbastion.com/v1/ · Status · Live-Betriebsstatus · Looking Glass · ping/MTR live ausführen