Smart routing across upstream accounts
Every call is scored and sent to a healthy account. Pool your own subscriptions and let Relay pick the best path per request.
Point Codex, Cursor, and any OpenAI-compatible client at one endpoint — backed by your own ChatGPT/Codex subscription, with per-request token accounting.
# Same request your agent already sends.
# Just point it at Relay.
curl https://relay.adxztech.com/v1/chat/completions \
-H "Authorization: Bearer $RELAY_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.4",
"messages": [{"role":"user","content":"Refactor this handler"}],
"reasoning_effort": "high",
"stream": true
}'
from openai import OpenAI
client = OpenAI(
base_url="https://relay.adxztech.com/v1", # change this
api_key=os.environ["RELAY_KEY"], # and this
)
resp = client.chat.completions.create(
model="gpt-5.5",
messages=[{"role": "user", "content": "Write tests for utils.py"}],
reasoning_effort="high",
stream=True,
)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://relay.adxztech.com/v1", // change this
apiKey: process.env.RELAY_KEY, // and this
});
const resp = await client.chat.completions.create({
model: "gpt-5.5",
messages: [{ role: "user", content: "Write tests for utils.js" }],
reasoning_effort: "high",
});
Point the OpenAI-compatible agents your team already runs at one base URL.
Requests route across multiple upstream accounts. When one degrades, Relay fails over without dropping your stream. No fabricated uptime badge, just the mechanics that keep calls flowing.
Every call is scored and sent to a healthy account. Pool your own subscriptions and let Relay pick the best path per request.
A 429 or 5xx on one account reroutes to the next without a client-side retry.
Server-sent tokens pass straight through. Time-to-first-token stays low.
A public status view for the gateway and its subsystems.
Pin a conversation to one upstream so multi-turn context stays coherent.
Per-key limits smooth bursts and keep one runaway job from starving the rest.
Transient failures retry with backoff before an error ever reaches your agent.
Every request is logged with the model that actually ran, token counts, cost, and latency. Click any request to open the full breakdown. Same data in the dashboard and the API.
Example data. Numbers are illustrative.
Relay speaks both OpenAI protocols — Chat Completions and Responses. Change the base URL and the API key, keep everything else. The highlighted lines are the only edits.
from openai import OpenAI
client = OpenAI(
base_url="https://relay.adxztech.com/v1",
api_key="sk-...",
)
client.chat.completions.create(
model="gpt-5.4",
reasoning_effort="high",
messages=[{"role": "user", "content": "Add a null check"}],
)
from openai import OpenAI
client = OpenAI(
base_url="https://relay.adxztech.com/v1",
api_key="sk-...",
)
client.responses.create(
model="gpt-5.5",
reasoning={"effort": "high"},
input="Add a null check",
)
Create a key, point your base URL, send a request. Pick your language and copy the three steps.
# relay.adxztech.com > Keys > Create
export RELAY_KEY="sk-..."
// relay.adxztech.com > Keys > Create
export RELAY_KEY="sk-..."
# relay.adxztech.com > Keys > Create
export RELAY_KEY="sk-..."
from openai import OpenAI
client = OpenAI(base_url="https://relay.adxztech.com/v1",
api_key=os.environ["RELAY_KEY"])
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://relay.adxztech.com/v1",
apiKey: process.env.RELAY_KEY,
});
BASE="https://relay.adxztech.com/v1"
resp = client.chat.completions.create(
model="gpt-5.4",
messages=[{"role": "user", "content": "Ship it"}],
stream=True,
)
const resp = await client.chat.completions.create({
model: "gpt-5.4",
messages: [{ role: "user", content: "Ship it" }],
stream: true,
});
curl $BASE/chat/completions \
-H "Authorization: Bearer $RELAY_KEY" \
-d '{"model":"gpt-5.4","messages":[{"role":"user","content":"Ship it"}]}'
Scoped keys, rotation, and per-key limits.
Spend, tokens, and latency over any window.
Every failure with status, upstream, and reason.
Budgets per member and per project.
Reference, guides, and copy-paste recipes.
Runnable examples for every endpoint.
Get a key, change your base URL, and keep shipping.