OpenAI compatible API. Attested gateway. Public status.

TrustedRouter Compared With OpenRouter

Keep the same API shape and add a verifiable prompt path.

Verify gateway
1 URLbase_url migration
100smodels and routes
0prompt logs by default
Switch in 1 line

OpenRouter, but you can verify the prompt path.

Change base_url. Keep your OpenAI SDK. Keep your model IDs. Keep your code.

What you add: a hardware-attested gateway, open-source source-to-binary, no prompt or output logs, and a public status page with continuous SLO probes.

Try the playground Verify gateway

Before / after — PythonOpenAI SDK
from openai import OpenAI

# Before
client = OpenAI(
    base_url="https://openrouter.ai/api/v1",
    api_key="sk-or-..."
)

# After
client = OpenAI(
    base_url="https://api.trustedrouter.com/v1",
    api_key="sk-tr-v1-..."
)

# Everything else stays the same:
resp = client.chat.completions.create(
    model="anthropic/claude-sonnet-4.6",
    messages=[{"role": "user", "content": "hi"}],
)
Same API

OpenAI-compatible.

Drop into any OpenRouter integration. Streaming, tool calls, vision, structured output — all supported.

Verifiable

Attested gateway.

Cross-cloud confidential VMs sign their boot measurement. You check the image hash against the published artifact.

No logging

Zero by construction.

Prompt and output paths never touch persistent storage. The binary you can verify is the binary that handles your traffic.

OpenRouterTrustedRouter
API shapeOpenAI compatibleOpenAI compatible
Prompt loggingOperator-controlled retentionNone — verifiable in source
Trust modelHosted policyHardware attestation + open source
SourceClosedOpen — every line that touches your prompt
Provider fallbackYesYes — across 30+ providers
Status SLOsPublic status pagePublic 99.99% SLO + 30-day burn rates
Best fitBroad model marketplacePrivacy-sensitive workloads, regulated industries, audited routing
Verify the gatewaycurl + jq
# 1. Get a nonce-bound attestation
NONCE=$(openssl rand -hex 16)
curl -s "https://api.trustedrouter.com/attestation?nonce=$NONCE" \
  | jq .

# Response includes:
#   eat_nonce     — your nonce, replay-protected
#   image_digest  — SHA-256 of the running container
#   pcrs          — platform measurements at boot

# 2. Compare image_digest against the published artifact:
#    https://trustedrouter.com/security
#
# If they match, the code processing your prompts is
# the code on GitHub.
60-second proof

Don't trust. Check.

The gateway exposes a live attestation endpoint that returns a JWT signed by the CPU's hardware root key. You match the image digest to the open-source binary, and you know — not assume — what code is running.

Everyone else publishes a privacy policy. We publish the hash.

How attestation works Migration guide

Common questions

The boring details that make this real.

Do my existing keys work? No — TR keys are a different prefix (sk-tr-v1-…). Issuance takes 30 seconds after sign-up.

Same model catalog? Yes — every OpenRouter model id resolves on TR, plus 30+ providers including DeepSeek, Kimi, MiniMax, GLM, and Together.

Pricing? Provider cost + 10% markup, $0.01/M floor. Published per-model on every catalog page. No hidden margin on inference.

BYOK? Yes — bring your own provider keys for billing isolation. Routing code stays attested.

Self-host? The full control plane and gateway are open source. Run it yourself; the attestation story still works because the image hash you build is the hash your enclave reports.

Why build this? The full argument is in the essay “Attestation is All You Need”.

Sign in

Choose a sign in method.