For developers

Build on open AI infrastructure.

Call any model through nusarouter. Run open models on your own GPUs with nusapod. Both speak the OpenAI API — so the code you write today works on either.

nusarouter — terminalillustrative

// same client for every model

const res = await client.chat.completions.create({

model: "anthropic/claude-sonnet-5",

messages: [{ role: "user", content: "Hello" }],

stream: true,

});

200 OK · streaming

Hello from anthropic/claude-sonnet-5. Same client, same code — only the model string changed.

What you can build

One stack. Fewer integrations.

Everything below works with the SDKs and tools you already use.
01

One key for every model.

OpenAI and Anthropic formats, one account, one balance — no separate provider sign-ups.

02

Switch models, keep the code.

Changing models is a string, not a migration. Routing and failover keep requests flowing.

03

Open models on your GPUs.

Deploy a Hugging Face model on nusapod and get an OpenAI-compatible endpoint back.

04

More models per card.

Fractional GPU slices let several deployments share one GPU instead of leaving it half-empty.

05

Keep data yours.

Zero Data Retention on nusarouter, and nusapod can run hosted, on your GPUs, or fully self-hosted.

06

Pay locally.

Prepaid balance in rupiah on local payment rails — no card-in-dollars required.

Quickstart

Same SDK. Two backends.

Point the OpenAI SDK at nusarouter for hosted models, or at your own nusapod deployment for models on your GPUs.
nusarouter — any modeltypescript
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.NUSAROUTER_API_KEY,
  baseURL: "https://api.nusarouter.com/v1",
});
nusapod — your GPUstypescript
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.NUSAPOD_API_KEY,
  // your nusapod deployment's /v1 endpoint
  baseURL: process.env.NUSAPOD_BASE_URL,
});
Start building

Ship on your own terms.

One API today. Your own compute when you're ready.