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/.
La mascota oso polar de NordBastion sentada en un puesto de trabajo de control de misión táctico con monitores de terminal holográficos flotantes que muestran código cian, un teclado mecánico con teclas iluminadas en cian y el escudo N cian apoyado a su lado, dentro de una sala de consola de piedra nórdica expuesta con una ventana iluminada por la aurora
API.v1 · REST · más de 70 endpoints · 5 SDK

Gestione NordBastion desde código.
Sin KYC, pagado en criptomoneda, completamente scriptable.

Aprovisione servidores, tome instantáneas, recargue en criptomoneda, ejecute ping desde cualquier bastión. Cada acción del panel tiene un endpoint REST y cuatro SDK. El mismo suelo de identidad que el panel: un correo electrónico y una contraseña, nada más.

Versión
v1
Extremos
70+
SDK
4 + CLI
Bastiones
4 Nordic
Límite de velocidad
1000/min read
KYC
Ninguno
Inicio rápido

Tres pasos desde una cuenta registrada hasta un servidor arrancado en código.

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 Recargue en cripto

POST /v1/billing/topups

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

amount_usd debe estar entre $30 y $10,000 (aplicado por el servidor). Un valor inferior devuelve HTTP 422 amount_too_low; uno superior devuelve 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 Aprovisionar un servidor

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 y CLI

Cuatro idiomas, un binario.

Cada SDK tiene licencia MIT, código fuente disponible, semver estable desde v1.0. Todos comparten la misma interfaz de cliente autenticado — lista de servidores, en cualquier lenguaje.

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 primero

La API REST funciona con cualquier cliente HTTP. Cuerpos de solicitud y respuesta JSON, portador JWT o clave API con ámbito, cargas útiles de webhook firmadas. Sin dependencia de SDK.

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

Más de 70 endpoints distribuidos en doce grupos de recursos.

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

Todos los endpoints siguen JSON de entrada / JSON de salida, paginación por ?page= & ?per_page=, filtrado por ?filter[field]= y selección de campos por ?fields=. Cada solicitud puede llevar un encabezado Idempotency-Key.

Autenticación

Tres tipos de credenciales, dos modos de privacidad.

Token Bearer LIVE

Correo electrónico + contraseña · JWT · caducidad de 24 horas

JWT de corta duración emitido por POST /v1/auth/login. Contiene afirmaciones de ámbito y un ID de revocación de sesión. Renovable durante 30 días a través de /v1/auth/token/refresh.

Authorization: Bearer eyJhbGciOi••••
Clave API con ámbito restringido LIVE

Larga duración · con alcance · revocable

Ámbitos: solo lectura, lectura de facturación, escritura de facturación, lectura de servidores, escritura de servidores, completo. Lista de IP permitidas opcional (CIDR), vencimiento opcional. Recomendado para CI y scripts de infraestructura.

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

Certificado de cliente · empresarial / cumplimiento normativo

Fije un certificado de cliente TLS mutuo a una clave API. Las solicitudes que presentan el certificado de cliente incorrecto son rechazadas en la capa TLS antes de que se ejecute ninguna lógica de aplicación. Disponible bajo solicitud a través del panel.

curl --cert client.pem --key client.key https://nordbastion.com/v1/servers
Respuestas firmadas con PGP Planned v1.1

Firma separada opt-in · verificable sin conexión

Establezca X-NB-Sign: 1 en cualquier solicitud. El cuerpo de la respuesta se envuelve en una firma PGP de texto limpio separada usando la clave de NordBastion (huella digital en /pgp/). Usado por pipelines de cumplimiento que desconfían únicamente de la cadena TLS.

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

NordBastion no recopila identidad en el registro, y la API no cambia ese límite mínimo. No hay webhook de verificación por SMS, no hay flujo de confirmación por correo electrónico, no hay endpoint de carga de documentos de identidad. La API expone dinero, máquinas y metadatos — esa es toda la superficie.

Límites de velocidad

Por clave, publicado por minuto

Endpoints de lectura
1000 / min
Endpoints de escritura
100 / min
Sensible a la autenticación
10 / min
Reintento 429
Retry-After

Cada respuesta lleva X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset. Los niveles superiores están disponibles bajo solicitud desde el panel.

Versionado

Período mínimo de obsolescencia de doce meses

Los endpoints tienen versión en URL bajo /v1/. Los cambios incompatibles solo se incluyen en una nueva versión principal. La versión principal anterior permanece soportada durante al menos doce meses. Los endpoints obsoletos llevan encabezados de respuesta Sunset y Deprecation.

Sunset: Wed, 01 Jul 2027 00:00:00 GMT Deprecation: true
Formato de error

Envoltorio estable, código legible por máquina

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

Eventos firmados, reintentados con backoff.

Cada payload de evento está firmado con HMAC con su secreto de webhook. Tres intentos de reintento con backoff exponencial durante una hora, luego descartado. Las entregas de prueba están disponibles desde 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.

Endpoints de transparencia

Acceso programático al canario, el registro de incidentes, el registro de peering.

La mayoría de las API de nube exponen productos y facturación. NordBastion también expone su propia superficie de transparencia — programáticamente. El mismo canario de garantía que se publica en /warrant-canary/ está disponible como payload JSON firmado en /v1/transparency/canary. El mismo historial de incidentes que impulsa /status/ está en /v1/transparency/incidents. El mismo registro de peering que vive en /peering/ está en /v1/transparency/peering. Los mismos anuncios de prefijo AS213232 son consultables en tiempo real.

Suscríbase al webhook canary.updated y recibirá una notificación push el primer día de cada mes — si deja de dispararse, el canario está comprometido, y usted lo sabe sin necesidad de consultar. Construya la alerta usted mismo, en su propia infraestructura, con la firma criptográfica que puede verificar sin conexión contra la clave PGP publicada.

Esta es la parte de la API que ninguna nube comercial posee, porque ninguna nube comercial tiene la doctrina que la respalde.

FAQ · API

Preguntas de desarrolladores, respondidas.

Las preguntas que un desarrollador formula antes de comprometer infraestructura a la API de un proveedor.

¿Hay realmente una API y es sin KYC?

Sí — cada acción que puede realizar en el panel de control tiene un equivalente de API hoy o en la hoja de ruta publicada, y la propia API está protegida por la misma cuenta autenticada del panel: un correo electrónico y una contraseña. No se requiere verificación de identidad para obtener o usar credenciales de API.

¿Qué lenguajes de programación tienen SDK oficiales?

Cuatro SDK oficiales y un CLI. Python (pip install nordbastion), TypeScript / Node (npm install @nordbastion/api), Go (go install go.nordbastion.com/cli/nb@latest), Rust (cargo add nordbastion) y un CLI multiplataforma de binario único (nb) instalable vía curl. Todos los SDK tienen licencia MIT y código fuente disponible.

¿Puedo recargar mi saldo desde código, en criptomoneda?

Sí. POST /v1/billing/topups crea una intención de recarga y devuelve una dirección de destino por moneda, un código QR y una marca de tiempo de vencimiento. Cuando la red confirma el pago, su saldo prepago se acredita automáticamente y se activa el webhook topup.confirmed. Se admiten doce criptomonedas, listadas en /v1/billing/coins.

¿Los endpoints de la API son accesibles a través de Tor?

El endpoint de clearnet api.nordbastion.com es compatible con Tor hoy en día, sin límites de velocidad especiales ni bloqueo anti-Tor. Un espejo onion v3 de la superficie de la API está en la hoja de ruta del panel y compartirá el mismo material certificado por TLS a través de cabeceras de respuesta Onion-Location cuando se publique.

¿Qué significa «respuestas firmadas con PGP»?

Puede configurar su clave API para recibir cuerpos de respuesta firmados con PGP. Cada respuesta JSON se envuelve en una firma PGP de texto limpio separada usando la clave de NordBastion (huella digital en /pgp/). El envoltorio es verificable sin conexión y es útil para el cumplimiento normativo y la atestación de fuente en entornos que desconfían únicamente de la cadena TLS.

¿Cómo se aplican los límites de velocidad?

Por clave API. La línea base publicada es de 1000 solicitudes de lectura por minuto y 100 solicitudes de escritura por minuto, más 10 solicitudes por minuto en endpoints sensibles a la autenticación (inicio de sesión, restablecimiento de contraseña, creación de claves). Cada respuesta lleva encabezados X-RateLimit-Limit, X-RateLimit-Remaining y X-RateLimit-Reset; las respuestas 429 incluyen un encabezado Retry-After. Las cuentas de desarrollador verificadas pueden solicitar niveles superiores desde el panel.

¿Cómo funciona el versionado?

Los endpoints tienen versión en URL bajo /v1/. Los cambios incompatibles solo se incluyen en una nueva versión principal (/v2/, /v3/) y la versión principal anterior permanece soportada durante al menos doce meses después de que se lance la siguiente. Los endpoints obsoletos llevan un encabezado Sunset con la fecha de corte y un encabezado Deprecation: true en cada respuesta.

¿Por qué el registro de auditoría es opcional (opt-in)?

Porque la doctrina de NordBastion dice que registramos solo lo que debemos. Las métricas de solicitudes operativas existen durante la ventana de tiempo que necesita el limitador de tasa y luego expiran; un registro de auditoría de acciones API por cliente es más datos de los que necesitamos para operar la plataforma, por lo que está desactivado por defecto. Los clientes que lo deseen pueden habilitar /v1/account/audit-log; una vez habilitado cubre el panel y la API por igual y puede exportarse.

Listo para automatizarlo

Obtenga una clave API desde el panel.

El mismo mínimo de correo electrónico y contraseña que el panel. Sin verificación de identidad. Pague en criptomoneda. Arranque un servidor en Stockholm, Helsinki, Oslo o Reykjavík en unos noventa segundos.

URL base · https://nordbastion.com/v1/ · Estado · estado operacional en tiempo real · Looking glass · ejecutar ping/MTR en tiempo real