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/.
사이언 코드를 표시하는 부유 홀로그램 터미널 모니터, 사이언으로 빛나는 키캡의 기계식 키보드, 옆에 기대어 있는 사이언 N-shield가 있는 전술 미션 컨트롤 워크스테이션에 앉아 있는 NordBastion 북극곰 마스코트, 오로라가 비치는 창문이 있는 노출된 Nordic 석재 콘솔실 내부
API.v1 · REST · 70개 이상 엔드포인트 · 5개 SDK

코드에서 NordBastion을 운영하세요.
KYC 없음, 암호화폐 결제, 완전한 스크립팅 지원.

서버 프로비저닝, 스냅샷 생성, 암호화폐 충전, 모든 거점에서의 ping 실행이 가능합니다. 모든 패널 작업에는 REST 엔드포인트와 4종의 SDK가 제공됩니다. 신원 정보의 최저선은 패널과 동일합니다. 이메일과 비밀번호 외에는 아무것도 요구하지 않습니다.

버전
v1
엔드포인트
70+
SDK
4 + CLI
거점
4 Nordic
속도 제한
1000/min read
KYC
없음
빠른 시작

가입된 계정에서 코드로 부팅된 서버까지 3단계.

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"}'
SDK & CLI

4개 언어, 하나의 바이너리.

각 SDK는 MIT 라이선스, 소스 공개, v1.0부터 semver 안정적입니다. 모두 동일한 인증된 클라이언트 인터페이스를 공유합니다 — 어떤 언어에서든 서버 목록 조회 가능.

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 bearer 또는 범위가 지정된 API 키, 웹훅 페이로드는 서명된 형식입니다. 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시간 만료

POST /v1/auth/login에 의해 발급되는 단기 JWT입니다. 범위 클레임과 세션 폐기 ID를 포함합니다. /v1/auth/token/refresh를 통해 30일간 갱신 가능합니다.

Authorization: Bearer eyJhbGciOi••••
범위가 지정된 API 키 LIVE

장기 사용 · 범위 지정 · 취소 가능

스코프: read-only, billing-read, billing-write, servers-read, servers-write, full. 선택적 IP 허용 목록(CIDR), 선택적 만료. CI 및 인프라 스크립트에 권장됩니다.

Authorization: Bearer nb_live_3f9c2a••••
Mutual 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을 설정하세요. 응답 본문은 NordBastion 키(지문은 /pgp/에 게시)를 사용한 분리형 PGP 평문 서명으로 래핑됩니다. TLS 체인 단독으로는 신뢰하지 않는 컴플라이언스 파이프라인에서 사용됩니다.

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

NordBastion은 가입 시 신원을 수집하지 않으며, API도 그 기준선을 변경하지 않습니다. SMS 인증 웹훅도, 이메일 확인 플로우도, 신분증 업로드 엔드포인트도 존재하지 않습니다. API는 자금, 머신, 메타데이터를 노출하며, 그것이 전체 노출 면적입니다.

속도 제한

키별, 분당 게시

읽기 엔드포인트
1000 / min
쓰기 엔드포인트
100 / min
인증 민감
10 / min
429 재시도
Retry-After

모든 응답에는 X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset이 포함됩니다. 더 높은 티어는 패널에서 요청 시 이용 가능합니다.

버전 관리

12개월 사용 중단 최소 기간

엔드포인트는 /v1/ 하위에 URL 버전 관리됩니다. 중단 변경 사항은 새로운 주 버전에서만 제공됩니다. 이전 주 버전은 최소 12개월간 지원됩니다. 더 이상 사용되지 않는 엔드포인트는 Sunset 및 Deprecation 응답 헤더를 포함합니다.

Sunset: Wed, 01 Jul 2027 00:00:00 GMT Deprecation: true
오류 형식

안정적인 envelope, 기계 판독 가능한 코드

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

서명된 이벤트, 백오프와 함께 재시도.

모든 이벤트 페이로드는 웹훅 시크릿으로 HMAC 서명됩니다. 지수 백오프로 1시간에 걸쳐 3번 재시도 후 삭제됩니다. 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.

투명성 엔드포인트

Canary, 사건 로그, 피어링 기록에 대한 프로그래밍 방식 접근.

대부분의 클라우드 API는 제품과 결제 기능만 노출합니다. NordBastion은 자체 투명성 영역도 프로그래밍 방식으로 노출합니다. /warrant-canary/에 공개된 동일한 워런트 카나리아는 /v1/transparency/canary에서 서명된 JSON 페이로드로 제공됩니다. /status/를 구동하는 동일한 인시던트 이력은 /v1/transparency/incidents에 있습니다. /peering/에 게시된 동일한 피어링 기록은 /v1/transparency/peering에 있습니다. 동일한 AS213232 프리픽스 공시는 실시간으로 조회할 수 있습니다.

canary.updated 웹훅을 구독하면 매월 1일에 푸시 알림을 받습니다. 알림이 더 이상 전송되지 않으면 canary가 깨진 것이며, 폴링 없이도 이를 알 수 있습니다. 자체 인프라에서 직접 알림을 구축하고, 공개된 PGP 키로 오프라인에서 검증 가능한 암호학적 서명과 함께 사용하세요.

이는 어떤 상용 클라우드도 갖추지 못한 API의 영역입니다. 이를 뒷받침할 원칙을 가진 상용 클라우드가 없기 때문입니다.

FAQ · API

개발자 질문, 답변 드립니다.

개발자가 인프라를 호스트의 API에 위탁하기 전에 던지는 질문.

정말 API가 있으며 KYC-free입니까?

예 — 제어판에서 수행할 수 있는 모든 작업은 오늘날 또는 게시된 로드맵에서 동등한 API를 가지고 있으며, API 자체는 동일한 인증된 패널 계정인 이메일과 비밀번호로 게이트됩니다. API 자격 증명을 얻거나 사용하는 데 신원 확인이 필요하지 않습니다.

어떤 프로그래밍 언어에 공식 SDK가 있나요?

4개의 공식 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) 및 curl로 설치 가능한 단일 바이너리 크로스플랫폼 CLI (nb). 모든 SDK는 MIT 라이선스이며 소스 공개입니다.

코드에서 암호화폐로 잔액을 충전할 수 있나요?

예. POST /v1/billing/topups는 충전 의도를 생성하고 코인별 목적지 주소, QR 코드, 만료 타임스탬프를 반환합니다. 네트워크가 결제를 확인하면 선불 잔액이 자동으로 충전되고 topup.confirmed 웹훅이 발생합니다. 12종의 암호화폐가 지원되며 /v1/billing/coins에 나열되어 있습니다.

API 엔드포인트는 Tor를 통해 접근 가능한가요?

Clearnet 엔드포인트 api.nordbastion.com은 현재 Tor 친화적이며 특별한 속도 제한이나 anti-Tor 차단이 없습니다. API 표면의 v3 onion 미러는 패널 로드맵에 포함되어 있으며, 출시 시 Onion-Location 응답 헤더를 통해 동일한 TLS 인증 자료를 공유할 것입니다.

"PGP 서명된 응답"은 무슨 의미인가요?

API 키를 PGP 서명된 응답 본문에 옵트인할 수 있습니다. 각 JSON 응답은 NordBastion 키(지문은 /pgp/에 있음)를 사용한 분리 평문 PGP 서명으로 감쌉니다. 이 래핑은 오프라인에서 검증 가능하며, TLS 체인만으로는 신뢰가 부족한 환경에서 규정 준수와 출처 입증에 유용합니다.

속도 제한은 어떻게 집행됩니까?

API 키당입니다. 게시된 기준은 분당 읽기 요청 1000개와 쓰기 요청 100개, 그리고 인증 민감 엔드포인트(로그인, 비밀번호 재설정, 키 생성)에서 분당 10개 요청입니다. 모든 응답에는 X-RateLimit-Limit, X-RateLimit-Remaining 및 X-RateLimit-Reset 헤더가 포함되며, 429 응답에는 Retry-After 헤더가 포함됩니다. 검증된 개발자 계정은 패널에서 더 높은 등급을 요청할 수 있습니다.

버전 관리는 어떻게 작동합니까?

엔드포인트는 /v1/ 하위에 URL 버전 관리됩니다. 중단 변경 사항은 새로운 주 버전(/v2/, /v3/)에서만 제공되며 이전 주 버전은 다음 버전 출시 후 최소 12개월간 지원됩니다. 더 이상 사용되지 않는 엔드포인트는 모든 응답에 종료 날짜가 있는 Sunset 헤더와 Deprecation: true 헤더를 포함합니다.

감사 로그는 왜 옵트인입니까?

NordBastion의 원칙은 반드시 필요한 것만 기록한다고 말하기 때문입니다. 운영 요청 메트릭은 속도 제한기가 필요한 롤링 윈도우 동안만 유지되다 만료됩니다. 고객별 API 작업 감사 로그는 플랫폼 운영에 필요한 것 이상의 데이터이므로 기본적으로 비활성화되어 있습니다. 원하는 고객은 /v1/account/audit-log를 활성화할 수 있으며, 활성화되면 패널+API를 동등하게 커버하고 내보낼 수 있습니다.

스크립트로 작성할 준비 완료

패널에서 API 키를 얻으세요.

패널과 동일한 이메일 및 비밀번호 기준. 신원 확인 없음. 암호화폐로 결제. Stockholm, Helsinki, Oslo 또는 Reykjavík 서버를 약 90초 내에 부팅합니다.

기본 URL · https://nordbastion.com/v1/ · 상태 · 실시간 운영 상태 · 루킹 글라스 · ping/MTR을 실시간으로 실행