Skip to content

ORBDevelopers

Change your endpoint. Keep building.

Orbit is OpenAI-compatible, documented with OpenAPI and reachable from agents over MCP. Your existing code works with two changed values.

Quickstart

Four steps to a first request.

  1. 01

    Create an account

    Connect your wallet (Solana Wallet Standard) and sign in — your organisation is created automatically.

    Sign in
  2. 02

    Fund your balance

    Deposit USDC on Solana Chain (when the deposit contract is deployed for your instance).

    Credits
  3. 03

    Create an API key

    Keys look like orb_live_… and are shown once. Optionally bind them to an agent, cap their spend or restrict models.

    Key API
  4. 04

    Make a request

    Point any OpenAI-compatible client at your Orbit base URL and use model orbit/auto.

    Chat API

SDKs

Use the clients you already have.

TypeScript · openai
import OpenAI from "openai";

const orbit = new OpenAI({
  apiKey: process.env.ORBIT_API_KEY, // orb_live_…
  baseURL: "https://<your-orbit-host>/v1",
});

const res = await orbit.chat.completions.create({
  model: "orbit/auto", // or a specific id, e.g. "anthropic/claude-sonnet-5.5"
  messages: [{ role: "user", content: "Summarise this incident report." }],
  max_tokens: 800,
});

console.log(res.choices[0]?.message.content);
// Orbit adds routing + cost metadata alongside the standard response:
console.log((res as unknown as { orbit?: unknown }).orbit);
Streaming (TypeScript)
const stream = await orbit.chat.completions.create({
  model: "orbit/auto",
  messages: [{ role: "user", content: "Draft a release note." }],
  stream: true,
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}
// If the client disconnects mid-stream, only generated tokens are billed.

Base URL

Replace <your-orbit-host> with the host of the Orbit instance you use. The API lives under /v1.

MCP

Give MCP clients Orbit's tools.

The orbit MCP server exposes built-in tools — ask_model, route_model, get_balance, find_tools, pay and more — to any MCP client. Financial administration (keys, withdrawals, policy edits) is deliberately not exposed.

Beta
Claude Code
# Remote (Streamable HTTP)
claude mcp add --transport http orbit https://<your-orbit-host>/mcp \
  --header "Authorization: Bearer orb_live_…"

# Local (stdio, from a checkout of the Orbit repo)
claude mcp add orbit \
  --env ORBIT_API_KEY=orb_live_… \
  --env ORBIT_BASE_URL=https://<your-orbit-host>/v1 \
  -- npx tsx apps/mcp/src/stdio.ts
Claude Desktop · claude_desktop_config.json
{
  "mcpServers": {
    "orbit": {
      "command": "npx",
      "args": ["tsx", "/absolute/path/to/orbit/apps/mcp/src/stdio.ts"],
      "env": {
        "ORBIT_API_KEY": "orb_live_…",
        "ORBIT_BASE_URL": "https://<your-orbit-host>/v1"
      }
    }
  }
}
Cursor · .cursor/mcp.json
{
  "mcpServers": {
    "orbit": {
      "url": "https://<your-orbit-host>/mcp",
      "headers": { "Authorization": "Bearer orb_live_…" }
    }
  }
}

Remote (Streamable HTTP)

Connect to https://<your-orbit-host>/mcp with Authorization: Bearer orb_live_…. Use an agent-bound key so the agent's policy applies to every tool call.

Local (stdio)

From a checkout of the Orbit repository run npx tsx apps/mcp/src/stdio.ts with ORBIT_API_KEY and ORBIT_BASE_URL set in its environment.