Docs / SDKs / TypeScript & Python

TypeScript & Python SDKs

There's nothing to install beyond the official OpenAI and Anthropic SDKs. Override the base URL and you're done.

The /v1 gotcha

The OpenAI base URL includes /v1 (.../oss/v1). The Anthropic base URL excludes it (.../oss) because the SDK appends /v1/messages.

OpenAI SDK

python
from openai import OpenAI

client = OpenAI(
    base_url="https://api.opengateway.one/oss/v1",  # includes /v1
    api_key="YOUR_KEY",
)
resp = client.chat.completions.create(
    model="claude-sonnet-4-7",
    messages=[{"role": "user", "content": "Hello!"}],
)
print(resp.choices[0].message.content)
typescript
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.opengateway.one/oss/v1", // includes /v1
  apiKey: process.env.OPENGATEWAY_API_KEY,
});
const resp = await client.chat.completions.create({
  model: "moonshotai/Kimi-K2.7-Code:preferred",
  messages: [{ role: "user", content: "Hello!" }],
});
console.log(resp.choices[0].message.content);

Anthropic SDK

python
from anthropic import Anthropic

client = Anthropic(
    base_url="https://api.opengateway.one/oss",  # NO /v1
    api_key="YOUR_KEY",
)
msg = client.messages.create(
    model="claude-sonnet-4-7",
    max_tokens=512,
    messages=[{"role": "user", "content": "Hello!"}],
)
print(msg.content[0].text)
typescript
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  baseURL: "https://api.opengateway.one/oss", // NO /v1
  apiKey: process.env.OPENGATEWAY_API_KEY,
});
const msg = await client.messages.create({
  model: "claude-sonnet-4-7",
  max_tokens: 512,
  messages: [{ role: "user", content: "Hello!" }],
});
console.log(msg.content);

Which base URL?

SDKBase URL
openai (Python & TS)https://api.opengateway.one/oss/v1
@anthropic-ai/sdk / anthropichttps://api.opengateway.one/oss

For routing policies and friendly aliases, see Lanes; for the reasoning dial, see Effort levels.