Skip to main content
Create an OpenAI-compatible provider pointed at the gateway, then use it as your model with generateText / streamText.

Install

npm install orbitrage@latest ai @ai-sdk/openai

Generate text

Pass your end-user id via the provider’s headers. Use provider.chat(...) so calls go to the /chat/completions endpoint Orbitrage routes.
import { orbitrage } from "orbitrage";
await orbitrage.init({ apiKey: process.env.ORBITRAGE_API_KEY, userId: "customer_42" });

import { createOpenAI } from "@ai-sdk/openai";
import { generateText } from "ai";

const provider = createOpenAI({
  baseURL: "https://api.orbitrage.ai/v1",
  apiKey: process.env.ORBITRAGE_API_KEY,
  headers: { "x-orbitrage-end-user-id": "customer_42" },
});

const { text } = await generateText({
  model: provider.chat("claude-sonnet-4-6"),     // direct model — or "grok-4-fast"; "auto" to route
  prompt: "Explain routing in one line.",
  maxOutputTokens: 512,
});
console.log(text);

Stream text

import { streamText } from "ai";

const result = streamText({
  model: provider.chat("grok-4-fast"),
  prompt: "Count from 1 to 5.",
  maxOutputTokens: 64,
});
for await (const delta of result.textStream) process.stdout.write(delta);
Tool calling works exactly as the AI SDK documents — Orbitrage doesn’t change the API. For hosted managed tools, call the gateway directly or via the raw OpenAI client.
Pin a direct model (claude-sonnet-4-6, grok-4-fast) for predictable behavior; switch the string to "auto" to let Orbitrage route.