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/.
NordBastion polar-bear mascot एक tactical mission-control workstation पर बैठे, cyan code दिखाते floating holographic terminal monitors के साथ, cyan-lit keycaps वाला mechanical keyboard और पास में झुकी cyan-N shield, aurora-lit window वाले exposed Nordic stone console room के अंदर
API.v1 · REST · 70+ endpoints · 5 SDKs

कोड से NordBastion चलाएं.
KYC-free, crypto-paid, पूरी तरह scriptable.

Servers provision करें, snapshots लें, cryptocurrency में top up करें, किसी भी bastion से ping चलाएँ. हर panel action में एक REST endpoint और चार SDKs हैं. Panel के same identity floor: एक email और एक password, कुछ और नहीं.

Version
v1
Endpoints
70+
SDKs
4 + CLI
किले
4 Nordic
दर सीमा
1000/min read
KYC
कोई नहीं
त्वरित शुरुआत

एक signed-up खाते से कोड में booted सर्वर तक तीन चरण.

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 क्रिप्टो में टॉप-अप करें

POST /v1/billing/topups

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

amount_usd must be between $30 and $10,000 (server-enforced). Lower returns HTTP 422 amount_too_low, higher returns amount_too_high.

curl -sS https://nordbastion.com/v1/billing/topups \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"amount_usd":50,"coin":"xmr"}'
03 एक server provision करें

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

चार भाषाएँ, एक binary.

प्रत्येक SDK MIT-licensed, source-available, v1.0 से semver-stable है. सभी same authenticated client interface साझा करते हैं — किसी भी भाषा में servers list करें.

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-प्रथम

REST API किसी भी HTTP client के साथ काम करती है. JSON request और response bodies, JWT bearer या scoped API key, signed webhook payloads. कोई SDK lock-in नहीं.

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

70+ endpoints बारह resource groups में.

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

सभी endpoints JSON in / JSON out follow करते हैं, ?page= & ?per_page= द्वारा pagination, ?filter[field]= द्वारा filtering और ?fields= द्वारा field selection. प्रत्येक request एक Idempotency-Key header carry कर सकती है.

प्रमाणीकरण

तीन credential प्रकार, दो गोपनीयता modes.

Bearer token LIVE

Email + password · JWT · 24 घंटे की expiry

POST /v1/auth/login द्वारा जारी short-lived JWT. scope claims और session-revocation ID वहन करता है. /v1/auth/token/refresh के माध्यम से 30 दिनों के लिए refreshable.

Authorization: Bearer eyJhbGciOi••••
Scoped API key LIVE

Long-lived · scoped · revocable

Scopes: read-only, billing-read, billing-write, servers-read, servers-write, full. वैकल्पिक IP allowlist (CIDR), वैकल्पिक expiry. CI और infrastructure scripts के लिए अनुशंसित.

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

क्लाइंट प्रमाणपत्र · एंटरप्राइज़ / अनुपालन

एक API key पर एक mTLS client certificate pin करें. जो requests गलत client certificate present करते हैं उन्हें TLS layer पर reject किया जाता है इससे पहले कि कोई application logic चले. Panel के माध्यम से request पर उपलब्ध.

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

Opt-in detached signature · offline verifiable

किसी भी request पर X-NB-Sign: 1 सेट करें. response body NordBastion key का उपयोग करके एक detached PGP cleartext signature में लपेटी जाती है (fingerprint /pgp/ पर). compliance pipelines द्वारा उपयोग किया जाता है जो केवल TLS chain पर भरोसा नहीं करते.

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

NordBastion signup पर identity collect नहीं करता, और API उस floor को नहीं बदलता. कोई SMS verification webhook नहीं है, कोई email-confirmation flow नहीं, कोई identity-document upload endpoint नहीं. API money, machines और metadata expose करता है — यही पूरा surface area है.

दर सीमाएं

Per-key, per-minute publish

Read endpoints
1000 / min
Write endpoints
100 / min
Auth-sensitive
10 / min
429 पुनः प्रयास
Retry-After

हर response X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset carry करता है. Higher tiers panel से request पर उपलब्ध हैं.

Versioning

बारह-महीने deprecation न्यूनतम

Endpoints /v1/ के अंतर्गत URL-versioned हैं. Breaking changes केवल एक new major version में ship होती हैं. पिछला major कम से कम बारह महीनों तक supported रहता है. Deprecated endpoints Sunset और Deprecation response headers carry करते हैं.

Sunset: Wed, 01 Jul 2027 00:00:00 GMT Deprecation: true
Error format

स्थिर envelope, machine-readable code

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

हस्ताक्षरित events, backoff के साथ पुनः प्रयास.

प्रत्येक event payload आपके webhook secret से HMAC-signed है. एक घंटे में exponential backoff के साथ तीन retry attempts, फिर dropped. POST /v1/webhooks/{id}/test से test deliveries उपलब्ध हैं.

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.

Transparency endpoints

Canary तक Programmatic access, incident log, peering record.

अधिकतर cloud APIs products और billing expose करती हैं. NordBastion अपनी transparency surface भी expose करता है — programmatically. Same warrant canary जो /warrant-canary/ पर published है /v1/transparency/canary पर एक signed JSON payload के रूप में उपलब्ध है. Same incident history जो /status/ drive करती है /v1/transparency/incidents पर है. Same peering record जो /peering/ पर रहता है /v1/transparency/peering पर है. Same AS213232 prefix announcements real time में queryable हैं.

canary.updated webhook की सदस्यता लें और आपको हर महीने के पहले दिन एक push notification मिलती है — यदि यह firing बंद कर दे, तो canary टूट गया है, और आप बिना polling के जान जाते हैं. स्वयं alert बनाएं, अपने infrastructure में, उस cryptographic signature के साथ जिसे आप प्रकाशित PGP key के विरुद्ध offline verify कर सकते हैं.

यह API का वह हिस्सा है जो किसी भी commercial cloud के पास नहीं है, क्योंकि किसी भी commercial cloud के पास इसे समर्थन देने का सिद्धांत नहीं है.

FAQ · API

Developer प्रश्न, उत्तरित.

एक developer host की API को infrastructure सौंपने से पहले जो प्रश्न पूछता है.

क्या वास्तव में एक API है और क्या यह KYC-free है?

हां — control panel में आप जो भी action ले सकते हैं उसका API equivalent आज या published roadmap पर है, और API खुद उसी authenticated panel account द्वारा gated है: एक email और password. API credentials प्राप्त करने या उपयोग करने के लिए कोई identity verification आवश्यक नहीं है.

किन programming languages के official SDKs हैं?

चार official SDKs और एक CLI. Python (pip install nordbastion), TypeScript / Node (npm install @nordbastion/api), Go (go install go.nordbastion.com/cli/nb@latest), Rust (cargo add nordbastion) और एक single-binary cross-platform CLI (nb) curl के माध्यम से installable. सभी SDKs MIT-licensed और source-available हैं.

क्या मैं code से, cryptocurrency में अपना balance top up कर सकता हूँ?

हां. POST /v1/billing/topups एक top-up intent बनाता है और per-coin destination address, QR code और expiry timestamp लौटाता है. जब network payment confirm करता है, आपका prepaid balance स्वचालित रूप से credit होता है और topup.confirmed webhook fire होती है. बारह cryptocurrencies supported हैं, /v1/billing/coins पर listed.

क्या API endpoints Tor के माध्यम से reachable हैं?

clearnet endpoint api.nordbastion.com आज Tor-friendly है, बिना special-case rate limits या anti-Tor blocking के. API surface का एक v3 onion mirror panel roadmap पर है और जब यह जारी होगा तो Onion-Location response headers के माध्यम से वही TLS-certified material share करेगा.

"PGP-signed responses" का क्या अर्थ है?

आप अपनी API key को PGP-signed response bodies में opt कर सकते हैं. प्रत्येक JSON response NordBastion key का उपयोग करके एक detached cleartext PGP signature में लपेटा जाता है (fingerprint /pgp/ पर). wrapping offline verifiable है और TLS chain पर अकेले भरोसा न करने वाले environments में compliance और source-attestation के लिए उपयोगी है.

Rate limits कैसे enforce किए जाते हैं?

Per API key. Published baseline 1000 read requests प्रति मिनट और 100 write requests प्रति मिनट है, plus auth-sensitive endpoints (login, password reset, key creation) पर 10 requests प्रति मिनट. हर response X-RateLimit-Limit, X-RateLimit-Remaining और X-RateLimit-Reset headers carry करता है; 429 responses में Retry-After header शामिल है. Verified developer accounts panel से higher tiers request कर सकते हैं.

Versioning कैसे काम करता है?

Endpoints /v1/ के अंतर्गत URL-versioned हैं. Breaking changes केवल एक new major version (/v2/, /v3/) में ship होती हैं और अगला release होने के बाद पिछला major कम से कम बारह महीनों तक supported रहता है. Deprecated endpoints हर response पर cut-off date के साथ एक Sunset header और एक Deprecation: true header carry करते हैं.

audit-log opt-in क्यों है?

क्योंकि NordBastion doctrine कहता है कि हम केवल वही log करते हैं जो हमें करना होगा. Operational request metrics उस rolling window के लिए रहती हैं जो rate-limiter को चाहिए और फिर expire होती हैं; API actions का per-customer audit log platform चलाने के लिए हमें जितनी ज़रूरत है उससे अधिक data है, इसलिए यह default रूप से off है. जो customers इसे चाहते हैं वे /v1/account/audit-log enable कर सकते हैं; एक बार enable होने पर यह panel + API दोनों को समान रूप से cover करता है और export किया जा सकता है.

इसे script करने के लिए तैयार

Panel से एक API key प्राप्त करें.

panel जैसा ही email-और-password आधार. कोई पहचान जांच नहीं. crypto में भुगतान करें. Stockholm, Helsinki, Oslo या Reykjavík सर्वर लगभग नब्बे सेकंड में बूट करें.

Base URL · https://nordbastion.com/v1/ · स्थिति · live operational status · लुकिंग ग्लास · live ping/MTR चलाएं