Developer Ecosystem

Built by engineers, for engineers.

Access the Nubis stack via our unified API, powerful CLI, or production-ready SDKs. Our platform is designed to be programmable from the ground up, giving you the same tools our internal teams use to manage infrastructure at scale.

REST API · GraphQL · CLI · SDKs · Terraform

Design Philosophy

Infrastructure as code, done right.

We believe infrastructure management should be automated, version-controlled, and reviewable. That's why every Nubis feature is available through our API before it appears in the console. This API-first approach ensures you can integrate Nubis into your existing DevOps workflows, CI/CD pipelines, and configuration management systems.

Whether you're provisioning thousands of instances for a machine learning workload or managing a complex multi-region deployment, our APIs provide the granularity and control you need. Build custom dashboards, automate incident response, or create your own abstraction layers — the infrastructure is yours to command.

  • 100% API coverage — if it exists in the console, it's in the API
  • WebSocket support for real-time events and metrics streaming
  • Consistent resource naming and addressing across all endpoints
  • Idempotent operations for safe retry logic in automated systems
example.tf
# Configure the Nubis Provider
terraform {
  required_providers {
    nubis = {
      source = "nubis-cloud/nubis"
      version = "~> 2.0"
    }
  }
}

# Create a high-performance instance
resource "nubis_instance" "api_server" {
  name     = "api-prod-01"
  type     = "bare-metal.gen3"
  region   = "ng-ibadan-1"

  cpu_cores = 32
  memory_gb = 128

  storage {
    type = "nvme"
    size = 2000
  }

  networking {
    vpc_id = nubis_vpc.production.id
    subnet_id = nubis_subnet.private.id
    assign_public_ip = false
  }

  tags = {
    Environment = "production"
    Team = "platform"
  }
}

Command Line Interface

A CLI that feels like home.

The Nubis CLI is designed for developers who live in the terminal. It's fast, scriptable, and speaks your language — JSON output for piping into jq, interactive prompts when you need them, and sensible defaults that get out of your way.

01$nubisinstances create --type bare-metal.gen3 --region ng-ibadan-1
02[ INFO ] Provisioning 3 nodes in ng-ibadan-1...
03[ INFO ] Encrypting storage volumes (AES-256-GCM)...
04[ INFO ] VPC "main-mesh" established.
05$nubisstatus --rack-id rack-042
06
READYRack rack-042: Thermal 34°C, Load 12%, Substrate ACTIVE
Install:curl -sSL https://get.nubis.dev | bashorbrew install nubis-cliornpm install -g @nubis/cli

API Design

Built for scale and reliability.

Our API is designed with developer experience in mind. Consistent patterns, comprehensive documentation, and robust error handling make integration straightforward.

RESTful Architecture

Our API follows REST principles with predictable resource-oriented URLs. Use standard HTTP methods (GET, POST, PUT, DELETE) and receive JSON responses with consistent error handling.

Authentication

Secure your API requests with Bearer tokens. Generate API keys from the console with scoped permissions. Support for short-lived tokens and service accounts for automated workflows.

Rate Limiting

Generous rate limits with clear headers (X-RateLimit-Remaining, X-RateLimit-Reset). Contact us for increased limits on enterprise workloads.

Pagination

List endpoints support cursor-based pagination for efficient handling of large datasets. Use 'next_cursor' and 'limit' parameters to traverse collections without duplicates or missing items.

Common Workflows

Get started in minutes.

Here are common patterns for interacting with the Nubis API. These examples use our Python SDK, but the concepts apply across all language implementations.

Provision Infrastructure

Create instances, configure networking, and deploy storage volumes through simple API calls. Define infrastructure as code using our Terraform provider or SDKs.

# Create a high-performance compute instance
instance = nubis.instances.create(
    type="bare-metal.gen3",
    region="ng-ibadan-1",
    spec={
        "cpu": 32,
        "memory": "128GB",
        "storage": [{"type": "nvme", "size": 2000}]
    }
)

Configure Networking

Set up VPCs, subnets, firewalls, and load balancers programmatically. Define security groups, route tables, and DNS records through our unified networking API.

# Configure a secure VPC with firewall rules
vpc = nubis.networking.vpcs.create(
    name="production-mesh",
    cidr="10.0.0.0/16",
    subnets=[
        {"cidr": "10.0.1.0/24", "zone": "a"},
        {"cidr": "10.0.2.0/24", "zone": "b"}
    ]
)

Monitor & Observe

Stream metrics, logs, and events to your observability stack. Query instance status, resource utilization, and platform health through dedicated endpoints.

# Query metrics for capacity planning
metrics = nubis.monitoring.query(
    metric="cpu.utilization",
    instance="i-12345abc",
    time_range="1h",
    aggregation="avg"
)

Open Source Substrate

We believe in transparency. Explore our firmware, substrate drivers, and orchestration tools on GitHub. Fork, contribute, or audit the code that runs your infrastructure.

Licensed under Apache 2.0 · Community contributions welcome

Browse Repositories

Join the Consensus

Connect with thousands of developers building on Nubis. Get help from our engineering team, discuss best practices, and share your projects with the community.

Active channels: #general, #api-help, #showcase, #rust, #go

Enter Discord

Zero latency.
Zero lock-in.

Reclaim your infrastructure. Deploy to our Lagos edge in under 60 seconds and experience what cloud performance actually feels like.

Simple pricing · No lock-in