In production and CI, read the gateway URL and API key from environment variables or a secret manager — never hard-code them.
Recommended variables
| Variable | Description | Example |
|---|---|---|
ROUTERBRAIN_API_KEY | Inference API key | From console |
ROUTERBRAIN_BASE_URL | OpenAI-compatible base, must include /v1 | Same shape as https://51kik.com/v1 |
For a separate Anthropic integration:
| Variable | Description |
|---|---|
ROUTERBRAIN_ANTHROPIC_BASE_URL | https://51kik.com/anthropic/v1 |
Names are conventions; adjust to your org standard.
shell / curl
export ROUTERBRAIN_API_KEY="YOUR_API_KEY"
export ROUTERBRAIN_BASE_URL="https://51kik.com/v1"
curl -sS "$ROUTERBRAIN_BASE_URL/chat/completions" \
-H "Authorization: Bearer $ROUTERBRAIN_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"model\":\"YOUR_MODEL_ID\",\"messages\":[{\"role\":\"user\",\"content\":\"ping\"}]}"
Official SDK (Node)
import { createRouterBrainFromEnv } from "@routerbrain/sdk/node";
const client = createRouterBrainFromEnv();
Or explicit:
import { RouterBrain } from "@routerbrain/sdk";
const client = new RouterBrain({
apiKey: process.env.ROUTERBRAIN_API_KEY!,
baseURL: process.env.ROUTERBRAIN_BASE_URL ?? "https://51kik.com/v1",
});
See Initialization.
OpenAI SDK
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: process.env.ROUTERBRAIN_API_KEY,
baseURL: process.env.ROUTERBRAIN_BASE_URL,
});
Covers the OpenAI-compatible surface only. For Anthropic SDK, point baseURL to the Anthropic path (From Anthropic).
CI notes
- Inject via secrets; never print keys in logs.
- Use a dedicated test key with limited models/quota when possible.
- On failure, check 401/403 against Errors.