Documentation

Build with OmniStrat.

Reference for every public surface. OmniStrat Foundry for AI, the Terminal for markets, Agora for attestation, and the Passport that identifies you at every door.

For Builders · AI Gateway

OmniStrat Foundry

One endpoint across seventeen US and Western-allied providers. Every call cryptographically signed. Cost caps enforced with strong consistency, edge-deployed worldwide, tamper-evident audit chain on every request, MCP-discoverable at /.well-known/mcp/server-card.json.

OpenAI-compatible. One-line switch. Point any OpenAI SDK at baseURL: "https://api.omnistrat.ai/v1" and existing code works unchanged: /v1/chat/completions (streaming included), /v1/embeddings, /v1/models. Every response carries a receipt, a chained, content-blind Proof of Decision anyone can verify at /api/decision/verify/<receipt_id> with no account.

https://api.omnistrat.ai/v1/chat/completions
For Traders · Markets

OmniStrat Terminal

Live broker integration (Alpaca shipped; more coming). Strategy backtests, real-time ticks via WebSocket, AI co-pilot with personal cost budget. Every order signed to an immutable archive. Compliance built into the stack, not bolted on top.

https://api.omnistrat.ai/api/portfolio
For Signers · Attestation, Cohorts & Matchmaking

OmniStrat Agora

Cryptographic attestation for NDAs, MSAs, KYC, board resolutions. Encrypted-identity matchmaking with tri-party signed Match Certificates. Peer cohorts with shared reputation. Every signature Ed25519, hash-chained, publicly verifiable at the edge, no account required to verify.

https://api.omnistrat.ai/api/attest/verify/<cert_id>
Agora Feature · Peer Groups

Agora Cohorts

Peer cohorts of similar tier convene inside Agora. Shared Taskforce quests, private guild channels, and reputation that compounds across the group. Every attestation any member signs chains to the same cohort ledger, the group’s record is portable, provable, and cryptographically the sum of its members.

/api/agora/cohorts
Agora Feature · Enterprise Hiring

Agora Matchmaking

Encrypted-identity introductions between candidates and enterprises. Candidates stay anonymous until both parties sign a Match Certificate. Every match is a tri-party Ed25519 signature (candidate, enterprise, OmniStrat), hash-chained to the same public ledger as attestations. Placements are verifiable evidence, not screenshots.

/api/agora/matchmaking
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

Install the TypeScript SDK or hit the API directly. Once you have a Passport and an API key, route any AI model with one call:

# TypeScript SDK
npm install @omnistrat/sdk

// then
import { OmniStrat } from "@omnistrat/sdk";
const client = new OmniStrat({ apiKey: "ost_...", orgId: "org_..." });
const r = await client.route({ prompt: "Hello" });
console.log(r.result);

Or hit the API directly. Two shapes are supported, the native endpoint takes credentials in the body, and the OpenAI-compatible endpoint derives your org from the bearer key:

# Native endpoint - credentials in the body
curl -X POST https://api.omnistrat.ai/api/route \
  -H "content-type: application/json" \
  -d '{
    "org_id": "org_...",
    "api_key": "sk_live_...",
    "prompt": "Hello",
    "model": "claude-sonnet-4-6"
  }'
# -> { ok, provider, model, result, tokens_in, tokens_out, cost_usd, receipt }

# OpenAI-compatible - drop-in for any OpenAI SDK or curl snippet
curl -X POST https://api.omnistrat.ai/v1/chat/completions \
  -H "content-type: application/json" \
  -H "authorization: Bearer sk_live_..." \
  -d '{
    "model": "claude-sonnet-4-6",
    "messages": [{"role": "user", "content": "Hello"}]
  }'

Your org_id and api_key are on your keys page after sign-in. On the OpenAI-compatible endpoint the org is derived from the key, so base_url and the key are the only two things you change.

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.

Keys, rotation and revocation

Rotate from the Keys & BYOK tab of the admin console, or over the API.

# Rotate the org API key. Owner-level org key only.
curl -X POST https://api.omnistrat.ai/api/rotate-key \
  -H "content-type: application/json" \
  -d '{ "org_id": "org_...", "api_key": "sk_live_..." }'
# -> { "ok": true, "new_api_key": "sk_live_..." }
Rotation is a cutover, not an overlap
The old key stops working immediately. An org holds one API key; rotation replaces it and the previous key's auth cache is invalidated in the same request rather than being left to expire. There is no grace window, so deploy the new key to your callers before you rotate, or rotate during a maintenance window. Use per-member keys if you need to roll credentials independently.
Only an owner can rotate
A member key cannot rotate the org key regardless of its role, and is refused with ROTATE_FORBIDDEN (403) before authentication is even attempted.
Every rotation is on the record
A key_rotated event is emitted to your audit chain. It appears in the Audit log and in /api/audit/search.
Revoking a session is separate
Passport sessions are revoked individually and do not depend on the org key. Rotating the API key does not sign anyone out; ending a session does not invalidate the API key.
BYOK provider keys rotate independently
POST /api/byok with op: "add-to-rotation" keeps up to 20 provider keys in a rotation set. Past that the call is refused with BYOK_ROTATION_FULL (413) rather than silently dropping the oldest.

Usage & pricing schedule

Every meter is per-tier and public. Overages are capped by policy you control. BYOK bypasses the token meter entirely, you settle directly with your provider.

Attestation · Simple
$2 each above tier bundle. Single-party signature. Sliding rate by tier: $2 Solo · $1.50 Team · $1 Growth · $0.50 Scale.
Attestation · Standard
$5 each. Multi-party signature.
Attestation · Compound
$50 each. Bundled with a verified 1:1 call.
Attestation · Legal-grade
$250 each. Identity verification + witnesses. Notary-of-record replacement.
Verified calls
$25 / call above tier bundle. Pack: $500 / mo for 30. Enterprise: $2,000 / mo unlimited.
Match Certificates
$1,000 per certified hire. Subscription: $5,000 / mo unlimited.
Foundry tokens
$2 / 1M input · $6 / 1M output above tier bundle. BYOK bypasses the meter.
Additional seats
Team +$250 · Growth +$350 · Scale +$600 per seat / mo. Each tier caps at 2× base seats before upgrade.
Compliance modules
Foundation from $1,500 / mo. Broker-Dealer, Investment Adviser, Insurance, AI Governance, and Attestation Compliance priced per vertical. Included at Enterprise.

More

The full OpenAPI spec is mounted at /openapi.json. The status page is at /status.html. Questions go to hello@omnistrat.ai.