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.
// same client for every model
const res = await client.chat.completions.create({
model: "anthropic/claude-sonnet-5",
messages: [{ role: "user", content: "Hello" }],
stream: true,
});
Hello from anthropic/claude-sonnet-5. Same client, same code — only the model string changed.
One stack. Fewer integrations.
One key for every model.
OpenAI and Anthropic formats, one account, one balance — no separate provider sign-ups.
Switch models, keep the code.
Changing models is a string, not a migration. Routing and failover keep requests flowing.
Open models on your GPUs.
Deploy a Hugging Face model on nusapod and get an OpenAI-compatible endpoint back.
More models per card.
Fractional GPU slices let several deployments share one GPU instead of leaving it half-empty.
Keep data yours.
Zero Data Retention on nusarouter, and nusapod can run hosted, on your GPUs, or fully self-hosted.
Pay locally.
Prepaid balance in rupiah on local payment rails — no card-in-dollars required.
Same SDK. Two backends.
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.NUSAROUTER_API_KEY,
baseURL: "https://api.nusarouter.com/v1",
});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,
});Ship on your own terms.
One API today. Your own compute when you're ready.