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 جالس أمام محطة عمل تحكم مهمات تكتيكية مع شاشات طرفية هولوغرافية عائمة تعرض كوداً فيروزياً، ولوحة مفاتيح ميكانيكية بأغطية مضاءة بالفيروزي ودرع N الفيروزي مسنود بجانبه، داخل غرفة وحدة تحكم حجرية Nordic مكشوفة مع نافذة مضاءة بشفق قطبي
API.v1 · REST · أكثر من 70 نقطة نهاية · 5 SDKs

شغِّل NordBastion من الكود.
خالٍ من KYC، مدفوع بالعملات المشفرة، قابل للبرمجة النصية بالكامل.

وفّر الخوادم، خذ لقطات، اشحن الرصيد بالعملات المشفرة، شغّل ping من أي حصن. كل إجراء للوحة لديه نقطة نهاية REST وأربعة SDK. نفس أرضية الهوية كاللوحة: بريد إلكتروني وكلمة مرور، لا أكثر.

الإصدار
v1
النقاط الطرفية
70+
SDKs
4 + CLI
الحصون
4 Nordic
حد معدل الطلبات
1000/min read
KYC
لا شيء
بداية سريعة

ثلاث خطوات من حساب مسجَّل إلى سيرفر مُقلَع في الكود.

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 وفّر خادمًا

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

أربع لغات، ثنائي واحد.

كل SDK مرخص بترخيص MIT، مفتوح المصدر، مستقر semver من الإصدار v1.0. تتشارك جميعها نفس واجهة العميل المصادَق — إدارة الخوادم، بأي لغة.

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. أجسام طلب واستجابة JSON، حامل JWT أو مفتاح API محدد النطاق، حمولات webhook موقَّعة. لا إقفال على SDK.

curl -H "Authorization: Bearer nb_live_••••" https://nordbastion.com/v1/servers
مرجع النقطة الطرفية

أكثر من 70 نقطة نهاية عبر اثنتي عشرة مجموعة موارد.

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

جميع نقاط النهاية تتبع JSON مدخلاً / JSON مخرجاً، مع ترقيم الصفحات عبر ?page= و?per_page=، والتصفية عبر ?filter[field]= واختيار الحقول عبر ?fields=. يمكن لكل طلب حمل ترويسة Idempotency-Key.

المصادقة

ثلاثة أنواع من بيانات الاعتماد، وضعان للخصوصية.

رمز Bearer LIVE

البريد الإلكتروني + كلمة المرور · JWT · انتهاء صلاحية بعد 24 ساعة

JWT قصير الأمد يُصدَر عبر POST /v1/auth/login. يحمل ادعاءات النطاق ومعرِّف إلغاء الجلسة. قابل للتجديد لمدة 30 يوماً عبر /v1/auth/token/refresh.

Authorization: Bearer eyJhbGciOi••••
مفتاح API محدد النطاق LIVE

طويل الأمد · محدود النطاق · قابل للإلغاء

النطاقات: للقراءة فقط، billing-read، billing-write، servers-read، servers-write، كامل. قائمة سماح IP اختيارية (CIDR)، انتهاء صلاحية اختياري. يُنصح به لسكريبتات CI والبنية التحتية.

Authorization: Bearer nb_live_3f9c2a••••
TLS المتبادل Planned v1.1

شهادة العميل · المؤسسات / الامتثال

اربط شهادة عميل mTLS بمفتاح API. تُرفض الطلبات التي تُقدّم شهادة عميل خاطئة عند طبقة TLS قبل تشغيل أي منطق تطبيق. متاح عند الطلب عبر اللوحة.

curl --cert client.pem --key client.key https://nordbastion.com/v1/servers
ردود موقَّعة بـ PGP Planned v1.1

توقيع منفصل اختياري · قابل للتحقق دون اتصال

عيِّن X-NB-Sign: 1 على أي طلب. يُلفّ جسم الاستجابة في توقيع PGP نص واضح منفصل باستخدام مفتاح NordBastion (البصمة في /pgp/). يُستخدم من قِبَل خطوط الامتثال التي لا تثق بسلسلة TLS وحدها.

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

لا تجمع NordBastion الهوية عند التسجيل، ولا يغير API ذلك الأساس. لا يوجد webhook للتحقق بالرسائل النصية، ولا تدفق تأكيد البريد الإلكتروني، ولا نقطة نهاية لتحميل وثيقة الهوية. يكشف API المال والآلات والبيانات الوصفية — هذا هو نطاق السطح بأكمله.

حدود معدل الطلبات

لكل مفتاح، منشور في الدقيقة

نقاط نهاية القراءة
1000 / min
نقاط نهاية الكتابة
100 / min
حساس للمصادقة
10 / min
إعادة محاولة 429
Retry-After

تحمل كل استجابة X-RateLimit-Limit وX-RateLimit-Remaining وX-RateLimit-Reset. الفئات الأعلى متاحة عند الطلب من اللوحة.

الإصدار والتوثيق

حد إيقاف الاستخدام لاثني عشر شهراً

النقاط الطرفية مُعنوَنة بالإصدار تحت /v1/. تُشحَن التغييرات الجذرية فقط في نسخة رئيسية جديدة. تبقى النسخة الرئيسية السابقة مدعومة لمدة اثني عشر شهرًا على الأقل. تحمل النقاط الطرفية المُهمَلة ترويسات استجابة Sunset وDeprecation.

Sunset: Wed, 01 Jul 2027 00:00:00 GMT Deprecation: true
تنسيق الخطأ

غلاف مستقر، كود قابل للقراءة آلياً

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

أحداث موقَّعة، مُعاد المحاولة مع تأخير تدريجي.

كل حمولة حدث موقَّعة بـ HMAC بسر webhook الخاص بك. ثلاث محاولات إعادة مع تراجع أسي على مدى ساعة، ثم تُهمَل. تسليمات اختبار متاحة عبر 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.

نقاط نهاية الشفافية

وصول برمجي إلى الشارة، سجل الحوادث، سجل التبادل.

تكشف معظم cloud APIs المنتجات والفوترة. تكشف NordBastion أيضًا سطح شفافيتها الخاص — برمجيًا. شارة الاستدعاء ذاتها المنشورة على /warrant-canary/ متاحة كحمولة JSON موقَّعة على /v1/transparency/canary. تاريخ الحوادث ذاته الذي يُشغّل /status/ على /v1/transparency/incidents. سجل التبادل ذاته الموجود على /peering/ على /v1/transparency/peering. إعلانات البادئة AS213232 ذاتها قابلة للاستعلام في الوقت الفعلي.

اشترك في webhook الخاص بـ canary.updated وستحصل على إشعار فوري في اليوم الأول من كل شهر — إذا توقف عن الإطلاق، فالكناري معطوب، وستعلم دون الحاجة للاستطلاع. أنشئ التنبيه بنفسك، في بنيتك التحتية الخاصة، مع التوقيع التشفيري الذي يمكنك التحقق منه دون اتصال مقابل مفتاح PGP المنشور.

هذا هو الجزء من API الذي لا تمتلكه أي سحابة تجارية، لأنه لا توجد سحابة تجارية لديها العقيدة لدعمه.

الأسئلة الشائعة · API

أسئلة المطورين، مُجابة.

الأسئلة التي يطرحها مطوِّر قبل تخصيص بنيته التحتية لـ API مضيف.

هل يوجد API فعلًا وهل هو خالٍ من KYC؟

نعم — لكل إجراء يمكنك اتخاذه في لوحة التحكم مكافئ API اليوم أو على خارطة الطريق المنشورة، وAPI نفسه مُقيَّد بنفس حساب اللوحة المُصادَق: بريد إلكتروني وكلمة مرور. لا يُشترط التحقق من الهوية للحصول على بيانات اعتماد API أو استخدامها.

أي لغات البرمجة لديها SDKs رسمية؟

أربعة SDK رسمية وواجهة CLI واحدة. Python (pip install nordbastion) وTypeScript / Node (npm install @nordbastion/api) وGo (go install go.nordbastion.com/cli/nb@latest) وRust (cargo add nordbastion) وCLI ثنائي واحد متعدد المنصات (nb) قابل للتثبيت عبر curl. جميع SDK مرخصة بترخيص MIT ومفتوحة المصدر.

هل يمكنني شحن رصيدي برمجيًا بالعملات المشفرة؟

نعم. POST /v1/billing/topups يُنشئ نية شحن ويُعيد عنوان وجهة لكل عملة وكود QR وطابع زمني للانتهاء. عندما تُؤكِّد الشبكة الدفع، يُضاف رصيدك المدفوع مسبقاً تلقائياً ويُطلَق webhook الخاص بـ topup.confirmed. اثنتا عشرة عملة مشفرة مدعومة، مُدرَجة في /v1/billing/coins.

هل نقاط نهاية API يمكن الوصول إليها عبر Tor؟

نقطة نهاية clearnet الخاصة بـ api.nordbastion.com صديقة لـ Tor اليوم دون حدود معدل خاصة أو حجب مضاد لـ Tor. مرآة onion v3 لواجهة API على خارطة طريق اللوحة وستشارك المواد المعتمدة بـ TLS ذاتها عبر رؤوس استجابة Onion-Location عند شحنها.

ما الذي تعنيه "الاستجابات الموقَّعة بـ PGP"؟

يمكنك الاشتراك بمفتاح API في أجسام استجابة موقَّعة بـ PGP. كل استجابة JSON مُلفَّفة في توقيع PGP نص واضح منفصل باستخدام مفتاح NordBastion (البصمة في /pgp/). الغلاف قابل للتحقق دون اتصال ومفيد للامتثال وإثبات المصدر في البيئات التي لا تثق بسلسلة TLS وحدها.

كيف تُطبَّق حدود المعدل؟

لكل مفتاح API. الخط الأساسي المنشور هو 1000 طلب قراءة في الدقيقة و100 طلب كتابة في الدقيقة، بالإضافة إلى 10 طلبات في الدقيقة على النقاط الطرفية الحساسة للمصادقة (تسجيل الدخول وإعادة تعيين كلمة المرور وإنشاء المفتاح). تحمل كل استجابة ترويسات X-RateLimit-Limit وX-RateLimit-Remaining وX-RateLimit-Reset؛ وتتضمن استجابات 429 ترويسة Retry-After. يمكن لحسابات المطورين المتحقق منها طلب فئات أعلى من اللوحة.

كيف يعمل الإصدار؟

النقاط الطرفية مُعنوَنة بالإصدار تحت /v1/. تُشحَن التغييرات الجذرية فقط في نسخة رئيسية جديدة (/v2/ أو /v3/) وتبقى النسخة الرئيسية السابقة مدعومة لمدة اثني عشر شهرًا على الأقل بعد إطلاق التالية. تحمل النقاط الطرفية المُهمَلة ترويسة Sunset مع تاريخ الإيقاف وترويسة Deprecation: true في كل استجابة.

لماذا سجل التدقيق اشتراكي؟

لأن مبدأ NordBastion يقضي بعدم تسجيل إلا ما هو ضروري. تُحفظ مقاييس طلبات التشغيل طوال النافذة الزمنية الدوارة التي يحتاجها محدد المعدل ثم تنتهي صلاحيتها؛ وسجل التدقيق لكل عميل على حدة لإجراءات API يمثل بيانات أكثر مما نحتاجه لتشغيل المنصة، لذا هو معطل بالإعداد الافتراضي. يمكن للعملاء الراغبين في ذلك تفعيل /v1/account/audit-log؛ وعند التفعيل يغطي اللوحة + API بالتساوي ويمكن تصديره.

جاهز لبرمجته نصياً

احصل على مفتاح API من اللوحة.

نفس الحد الأدنى من البريد الإلكتروني وكلمة المرور كاللوحة. لا فحص هوية. ادفع بالعملة المشفرة. أقلِع سيرفراً في Stockholm أو Helsinki أو Oslo أو Reykjavík في حوالي تسعين ثانية.

عنوان URL الأساسي · https://nordbastion.com/v1/ · الحالة · الحالة التشغيلية الحية · نافذة المراقبة · شغِّل ping/MTR مباشرةً