Documentation

Build with OmniStrat.

Reference for every public surface in the ecosystem. The OmniStrat Router for AI, the Quant Terminal for markets, the Openworld for game integration, and the Passport SSO that connects them.

For Builders · AI Gateway

OmniStrat Router

One API across thirteen providers. Multi-tenant org keys, cost caps enforced in a Durable Object, semantic cache backed by Vectorize, sub-100ms p99 globally.

https://api.omnistrat.ai/api/route
For Traders · Markets

Quant Terminal

Python Flask + Dash. Live execution on Alpaca, Interactive Brokers, Tradovate, or paper. Strategy backtests, live signals, AI co-pilot with per-user cost budget. Fintech Tavern multiplayer floor.

github.com/stevenstoofresh/omnistrat-terminal
For Explorers · Openworld

Chronicles of Faith Backend

Cloudflare Workers + Durable Objects. 23 scripture eras, 24 vocations, 44 OT witness events. AI orchestrator, persistent NPC memory, confession deadline workflows, multiplayer factions.

https://game.omnistrat.ai
For Everyone · Identity

OmniStrat Passport

Cross-product SSO. EdDSA (Ed25519) signed JWTs. Public JWKS served at /auth/jwks for local verification by every consumer, no shared secret.

https://api.omnistrat.ai/auth/jwks

Quickstart — Router

Once you have a Passport and an API key from your org settings, route any AI model with one call:

# Bash
curl -X POST https://api.omnistrat.ai/api/route \
  -H "content-type: application/json" \
  -H "authorization: Bearer ost_..." \
  -d '{
    "model": "claude-sonnet-4-6",
    "messages": [{"role": "user", "content": "Hello"}],
    "max_tokens": 200
  }'

The Router picks the best provider, applies your org's cost cap, signs into the upstream API on your behalf (or uses your BYOK), and streams the response. Switching models is a single string change.

Quickstart — Passport

Sign a user in from your application. Browser-side JavaScript:

const r = await fetch('https://api.omnistrat.ai/auth/login', {
  method: 'POST',
  headers: { 'content-type': 'application/json' },
  body: JSON.stringify({ email, password })
});
const { token, user } = await r.json();
localStorage.setItem('omnistrat-token', token);

Verify the token in your own service using the public JWKS (no shared secret leaves the Router):

// TypeScript / any service
import { verifyPassport } from './passport-client';
const claims = await verifyPassport(req, env.PASSPORT_JWT_SECRET, {
  routerUrl: 'https://api.omnistrat.ai',  // for revocation check
});
if (!claims) return new Response('unauthorised', { status: 401 });

Authentication patterns

Different surfaces support different auth methods:

Bearer ost_*
Org-scoped API key. Used for /api/route, /api/embed, server-to-server.
Bearer (Passport JWT)
User-scoped Passport. Used for /auth/me, /api/billing/subscribe, dashboard endpoints.
X-Admin-Key
Internal admin operations. Constant-time compared. Time-rate-limited.
No auth
Public surfaces: /auth/jwks, /api/catalogs/version, /api/public/pricing, /health, /api/waitlist.

More

The full OpenAPI spec is mounted at /openapi.json. The status page is at /status.html. Source code lives on github.com/stevenstoofresh. Questions go to hello@omnistrat.ai.